fun getPackageList(): Boolean {
var isExist = false
val pkgMgr = mContext.packageManager
val mainIntent = Intent(Intent.ACTION_MAIN, null)
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER)
// 현재 설치되어 있고 실행가능한 앱만 추출 : 25개
//val mApps: List<ResolveInfo> = pkgMgr.queryIntentActivities(mainIntent, 0)
// 디바이스에 설치된 모든 패키지에 대한 PackageInfo 추출 : 279개
val mApps: List<PackageInfo> = pkgMgr.getInstalledPackages(0)
// 설치된 모든 앱 리스트 가져오기(내장/외장) : 279개
//val mApps: List<ApplicationInfo> = pkgMgr.getInstalledApplications(0)
try {
for (i in mApps.indices) {
Util.Log("mApp -> ${mApps[i].packageName}")
if (mApps[i].packageName.startsWith("kr.or.nhic")) {
isExist = true
break
}
}
} catch (e: java.lang.Exception) {
isExist = false
}
return isExist
}
}
fun startNhic(isExist : Boolean){
// 설치 되어있으면 앱 연결
if (isExist){
val intent = packageManager.getLaunchIntentForPackage("kr.or.nhic")
intent!!.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
startActivity(intent)
} else {
// 설치 안되어있으면 앱 스토어로 연결
val url = "market://details?id=" + "kr.or.nhic"
val i = Intent(Intent.ACTION_VIEW, Uri.parse(url))
startActivity(i)
}
}
구글 플레이 스토어에 들어간다.
구글 플레이 스토어 링크 클릭
패키지 이름을 알고 싶은 앱을 검색한다.
URL 에 ?id=어쩌구.저쩌구.블라블라 가 패키지명이다.
ex) 건강보험 앱 패키지 명 : "kr.or.nhic"
val mApp = pkgMgr.getPackageInfo("kr.or.nhic",0)
Util.Log("${mApp.versionName}")