[Android/Kotlin] 안드로이드 설치된 앱 가져오기 및 패키지 이름 추출 / 다른 앱 연결하기

SoyoungLee·2022년 7월 28일
0

안드로이드/코틀린

목록 보기
39/70
post-thumbnail

💌 안드로이드 설치된 앱 가져오기 및 패키지 이름 추출 / 다른 앱 연결하기

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}")
profile
Android Developer..+ iOS 슬쩍 🌱 ✏️끄적끄적,,개인 기록용 👩🏻‍💻

0개의 댓글