티스토리 뷰
Stack Overflow에 자주 검색, 등록되는 문제들과 제가 개발 중 찾아 본 문제들 중에서 나중에도 찾아 볼 것 같은 문제들을 정리하고 있습니다.
Stack Overflow에서 가장 먼저 확인하게 되는 가장 높은 점수를 받은 Solution과 현 시점에 도움이 될 수 있는 가장 최근에 업데이트(최소 점수 확보)된 Solution을 각각 정리하였습니다.
아래 word cloud를 통해 이번 포스팅의 주요 키워드를 미리 확인하세요.
How to open the Google Play Store directly from my Android application?
안드로이드 앱에서 chooser 대신 Google Play Store 바로 열기
문제 내용
I have open the Google Play store using the following code
다음 코드를 사용하여 Google Play 스토어를 열었습니다.
Intent i = new Intent(android.content.Intent.ACTION_VIEW);
i.setData(Uri.parse("https://play.google.com/store/apps/details?id=my packagename "));
startActivity(i);.
But it shows me a Complete Action View as to select the option (browser/play store). I need to open the application in Play Store directly.
그러나 옵션(브라우저/플레이 스토어)을 선택할 수 있는 chooser가 표시됩니다. 나는 플레이 스토어에서 직접 애플리케이션을 열어야 합니다.
높은 점수를 받은 Solution
You can do this using the market://
prefix.
이 작업은 market:// 접두사를 사용하여 수행할 수 있습니다.
Java
자바
final String appPackageName = getPackageName(); // getPackageName() from Context or Activity object
try {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));
} catch (android.content.ActivityNotFoundException anfe) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)));
}
Kotlin
코틀린
try {
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=$packageName")))
} catch (e: ActivityNotFoundException) {
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=$packageName")))
}
We use a try/catch
block here because an Exception
will be thrown if the Play Store is not installed on the target device.
대상 장치에 Play Store가 설치되지 않은 경우 예외가 발생하므로 여기서 트라이/캐치 블록을 사용합니다.
NOTE: Any app can register as capable of handling the market://details?id=<appId>
URI. If you want to specifically target Google Play, the solution in Berťák's answer is a good alternative.
참고: 모든 앱은 마켓을 처리할 수 있는 것으로 등록할 수 있습니다://details?id= URI. 구글 플레이를 구체적으로 공략하고 싶다면 베라크의 답변에 담긴 솔루션이 좋은 대안이다.
가장 최근 달린 Solution
Some of the answers to this question are outdated.
이 질문에 대한 답 중 일부는 구식이다.
What worked for me (in 2020) was to explicitly tell the intent to skip the chooser and directly open the play store app, according to this link:
이 링크에 따르면, (2020년) 내게 효과가 있었던 것은 선택자를 건너뛰고 플레이 스토어 앱을 직접 열겠다는 의도를 명시적으로 말하는 것이었다.
"If you want to link to your products from an Android app, create an Intent that opens a URL. As you configure this intent, pass "com.android.vending" into Intent.setPackage() so that users see your app's details in the Google Play Store app instead of a chooser."
"Android 앱에서 제품에 연결하려면 URL을 여는 인텐트를 만드세요. 이 인텐트를 구성할 때 "com.android.vending"을 Intent.setPackage()에 전달하면 사용자가 다음에서 앱의 세부정보를 볼 수 있습니다. chooser 대신 Google Play 스토어 앱을 사용하세요."
This is the Kotlin code I used to direct users to viewing the app containing the package name com.google.android.apps.maps in Google Play:
다음은 Google Play에서 패키지 이름 com.google.android.apps.maps가 포함된 앱을 볼 수 있도록 사용자에게 안내하는 코틀린 코드입니다.
val intent = Intent(Intent.ACTION_VIEW).apply {
data = Uri.parse("http://play.google.com/store/apps/details?id=com.google.android.apps.maps")
setPackage("com.android.vending")
}
startActivity(intent)
I hope that helps someone!
이게 누군가에게 도움이 되었으면 좋겠어요!
출처 : https://stackoverflow.com/questions/11753000/how-to-open-the-google-play-store-directly-from-my-android-application
'개발 > 안드로이드' 카테고리의 다른 글
화면 회전 시 액티비티 재시작 방지하기 (0) | 2022.12.03 |
---|---|
이메일 전송 인텐트(Chooser에 이메일 관련 앱만 보이게 하기) (0) | 2022.12.03 |
HTML 파일 WebView에 로드하기 (0) | 2022.12.03 |
부팅 시 서비스를 시작하기 (0) | 2022.12.02 |
이미지에 대해 확대/축소 기능 구현하기 (0) | 2022.12.02 |