패키지명을 받아서 앱을 띄워주어야 할 때가 있습니다. 사용자의 휴대폰에 해당 앱이 깔려있다면 실행하고, 깔려있지 않고 Google Play는 이용할 수 있다면 구글 플레이의 앱 상세 페이지로, 만약에 그렇지도 않다면 구글 플레이 웹에서 앱 상세 페이지로 이동 시키는 함수입니다.
/**
* 패키지 네임을 가진 앱을 실행합니다. 없으면 구글 플레이로 이동합니다.
* @param packageName 대상 앱의 패키지 네임
*/
fun launch(context: Context, packageName: String?) {
val launchIntent = context.packageManager.getLaunchIntentForPackage(packageName ?: "")
if (launchIntent != null) {
launchIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
context.startActivity(launchIntent)
} else {
try {
context.startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse("market://details?id=$packageName&referrer=${context.packageName}")
)
)
} catch (anfe: ActivityNotFoundException) {
context.startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse("https://play.google.com/store/apps/details?id=$packageName&referrer=${context.packageName}")
)
)
}
}
}
'프로그래밍 > Android' 카테고리의 다른 글
[안드로이드] RecyclerView를 잘 사용하기 위한 팁들. (0) | 2021.02.05 |
---|---|
[안드로이드] 예제로 알아보는 바인드된 서비스 (Bound Service) (0) | 2021.01.18 |
[안드로이드] Firebase Crashlytics 연동방법 (0) | 2021.01.15 |
[안드로이드] 프로젝트에 Sentry 연동방법, Proguard 적용까지 (0) | 2021.01.12 |
[Kotlin/Java] 생년월일 기준으로 현재 만 나이 계산하기 (0) | 2021.01.11 |