- 안드로이드/kotlin

getLaunchIntentForPackage로 다른앱 실행시키기

더모어더베러 2023. 12. 6. 14:15

getLaunchIntentForPackage를 사용하면 다른 앱을 실행시키는게 가능한데요 사용법에 대해 정리해보겠습니다.

a 앱에서 b앱을 실행시키기

 

manifest 적용

실행시키는 앱이 아니라 실행이 될 앱에(b앱) 명시가 되어 있어야 합니다.

아래와 같이 manifestdp 추가해줍니다.

 

<manifest ...>
    ...
    
    <queries>
        <package android:name="b앱의 패키지명" />
    </queries>
    
    <application ...>
        ...
    </application>
</manifest>

 

 

 

다른앱 실행하기

다른앱을 실행시킬 앱에 작성해줍니다(a앱). getLaunchIntentForPackage를 사용하여 intent를 생성 합니다. 하지만 여기서 null이 반환된다면 호출할 앱이 없다는 뜻이므로 playstore를 연결해 설치를 유도 할수 있게 합니다.

 

            // 실행시킬 앱의 패키지
            var intent = packageManager.getLaunchIntentForPackage("b앱패키지명")

            // intent가 null을 반환하는 경우(설치안된경우) playstore링크를 실행시켜 설치를 유도
            if (intent == null) {
                val link = "https://play.google.com/store/apps/details?id=" + "b앱패키지명"
                intent = Intent(Intent.ACTION_VIEW).apply {
                    data = Uri.parse(link)
                }
                startActivity(intent)
                return@setOnClickListener
            }
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
            startActivity(intent)