Notice
Recent Posts
Recent Comments
Link
투케이2K
443. (kotlin/코틀린) packageManager.getInstalledApplications 사용해 휴대폰에 설치 된 앱 패키지 명칭 목록 확인 본문
Kotlin
443. (kotlin/코틀린) packageManager.getInstalledApplications 사용해 휴대폰에 설치 된 앱 패키지 명칭 목록 확인
투케이2K 2023. 12. 4. 20:31[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Kotlin
[소스 코드]
// -----------------------------------------------------------------------------------------
// TODO [SEARCH FAST] : [RETURN] getAppInstallPackgesList : 휴대폰 기기에 설치 된 앱 패키지 목록 반환
// -----------------------------------------------------------------------------------------
fun getAppInstallPackgesList(mContext: Context): ArrayList<String> {
/**
* // -----------------------------------------
* [getAppInstallPackgesList 메소드 설명]
* // -----------------------------------------
* 1. 휴대폰 기기에 설치 된 앱 패키지 목록 반환
* // -----------------------------------------
* 2. 호출 방식 :
*
* C_App.getAppInstallPackgesList(A_Intro@this)
*
* // -----------------------------------------
* 3. 리턴 데이터 :
*
* [
* "com.google.android.networkstack.tethering",
* "com.samsung.android.provider.filterprovider",
* .......,
* ]
*
* // -----------------------------------------
* 4. 필요 권한 :
*
* <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
* // -----------------------------------------
*/
// [리턴 값 선언]
val returnData = ArrayList<String>()
var M_LOG = ""
// [로직 처리 실시]
try {
// [패키지 관리자 인스턴스 취득]
val packageManager = mContext.packageManager
// [설치된 앱 목록 확인]
var applicationInfoList: MutableList<ApplicationInfo>? = null
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU){
applicationInfoList = packageManager.getInstalledApplications(PackageManager.ApplicationInfoFlags.of(0L))
}
else {
applicationInfoList = packageManager.getInstalledApplications(PackageManager.GET_META_DATA)
}
M_LOG = if (applicationInfoList != null && applicationInfoList.size > 0) {
for (i in applicationInfoList.indices) {
returnData.add(applicationInfoList[i].packageName)
}
"[Success] [get] applicationInfoList"
} else {
"[Error] [get] applicationInfoList"
}
} catch (e: Exception) {
M_LOG = "[Exception] :: " + e.message.toString()
S_Log._printStackTrace_(mContext, S_FinalMsg.LOG_BUG_STATE, null, e)
}
// [로그 출력 실시]
///*
// ===============================================================
S_Log._D_("휴대폰 기기에 설치 된 앱 패키지 목록 반환", arrayOf(
"M_LOG :: $M_LOG",
"RETURN :: $returnData"
))
// ===============================================================
// */
// [리턴 반환 실시]
return returnData
}
[결과 출력]
D///===========//: ================================================
I/: [LOG :: CLASS PLACE :: com.example.kotlinproject.C_App.getAppInstallPackgesList]
I/: ----------------------------------------------------
I/: [LOG :: NOW TIME :: 2023-12-04 09:43:00 월요일]
I/: ----------------------------------------------------
I/: [LOG :: DESCRIPTION :: 휴대폰 기기에 설치 된 앱 패키지 목록 반환]
I/: ----------------------------------------------------
I/: [LOG :: M_LOG :: [Success] [get] applicationInfoList]
I/: ----------------------------------------------------
I/: [LOG :: RETURN :: [com.google.android.networkstack.tethering, com.samsung.android.provider.filterprovider ....
D///===========//: ================================================
반응형
'Kotlin' 카테고리의 다른 글
Comments