📱 Android

[Android] 앱 설치여부 확인 및 플레이스토어 이동

콩드로이드 2021. 12. 27. 21:00

안녕하세요😄

외부 앱 호출을 사용할 때, 설치 여부를 확인을 하는 부분을 구현하다 제대로 동작하지 않기에 확인해보니
Android 11 이상에서는 Manifest에서 따로 설정해줘야 하는 부분이 있었습니다

 

변경된 부분을 설정 후, 특정 앱의 설치 여부를 확인하는 부분에 대해 알아보겠습니다


Package Visibility

Manifest에서 를 선언 후 해당 태그 아래에 로 선언을 해주면 됩니다

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="패키지명">
    <queries>
        <package android:name="com.nhn.android.search"/>
    </queries>
</manifest>

위의 경우는 개별적으로 선언한 앱들만 허용하는 부분이고,

전체를 허용할 경우 퍼미션 중QUERY_ALL_PACKAGES를 선언해주면 됩니다.

 

변경된 부분이 너무 간단하지만, 안드로이드 버전이 올라갈 때마다 변경사항을 확인하지 않으면 놓치기 쉬운 부분일 것 같습니다

이어서 앱의 설치여부도 확인해보겠습니다

 

앱의 설치여부 확인

앱의 설치여부를 확인 후 해당 앱으로 이동하고, 없으면 구글 스토어로 이동해보겠습니다

val NAVER = "com.nhn.android.search"
val installApp = packageManager.getLaunchIntentForPackage(NAVER)
if (installApp == null) {
    val intent = Intent(Intent.ACTION_VIEW)
    intent.data = (Uri.parse("market://details?id=$NAVER"))
    startActivity(intent)
} else {
    startActivity(installApp)
}

installApp이 null일 경우 미설치이므로 스토어에서 해당 앱 패키지로 이동하고,
설치 되었을 경우는 installApp 인텐트를 실행하면 됩니다

 

이상으로 이번 포스팅은 마치도록 하겠습니다


Package Visibility Android 11 해당 링크에 패키지 공개에 대해 더 자세한 설명이 있습니다