패키지명을 받아서 앱을 띄워주어야 할 때가 있습니다. 사용자의 휴대폰에 해당 앱이 깔려있다면 실행하고, 깔려있지 않고 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 |