Kotlin

[Kotlin] 앱, 패키지 설치 여부 확인하는 방법

eulBlue 2023. 10. 16. 16:08

📱테스트 환경

Samsung Galaxy Android 13 • Android 10


😢 내가 겪은 문제

최근에 Android 10 폰에서 계속 테스트를 진행하고 있었다. ( Android 13 잃어버렸다가 다시찾음 ㅎ )

근데 나는 문제가 없는데 최신폰에서는 자꾸 문제가 생기는 경우가 있었는데

packageName 을 확인하고 앱이 깔려있으면 그 목록을 확인하는 코드에서 문제가 발생했다.

Android 10 에서는 문제가 없는데 그 이상버전에서는 페이스북 말고는 확인을 못하더라 ...

그래서 열심히 구글링 해봤는데 11 부터는 보안상의 문제로 AndroidManifest.xml 에 추가적인 코드 작성이 필요했다.

일단 해당 앱이 설치되어있는지 확인하는 코드부터 보여주자면

private val installedApps = mutableListOf<String>()

val desiredApps = mapOf(
    "kakao" to "com.kakao.talk",
    ...
)

for (app in desiredApps) {
            val packageName = app.value
            val intent = packageManager.getLaunchIntentForPackage(packageName)
            if (intent != null) {
                // 해당 패키지를 가진 앱이 설치되어 있는 경우
                installedApps.add(app.key)
            }
}

이런식으로 앱이 설치되어있는지 확인하고 desiredApps 에서 설치되어있는 앱 패키지명을 확인하고

<queries>
	...
    <package android:name="com.kakao.talk"/>
    ...
</queries>

이런식으로 AndroidManifest.xml 에 작성해주면 상호작용을 할 수 있다.

앱 패키지명을 확인할 수 있는 방법은 [여기에서] 확인할 수 있다.

 

[Kotlin] 안드로이드 앱 패키지명 확인하는 방법

📱테스트 환경 Mac Book Pro • Window 10

8735.tistory.com