Android/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