- 안드로이드/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)