모바일 버전 android에서 Google Play 스토어 링크 열기


88

최신 앱에 다른 앱의 링크가 있고 그런 방식으로 엽니 다.

Uri uri = Uri.parse("url");
Intent intent = new Intent (Intent.ACTION_VIEW, uri); 
startActivity(intent);

이 코드는 Google Play 스토어의 브라우저 버전을 엽니 다.

내 휴대폰에서 열려고 할 때 브라우저 또는 Google Play를 사용할 것인지 묻는 메시지가 표시되고 두 번째를 선택하면 Google Play 스토어의 모바일 버전이 열립니다.

어떻게 한 번에 일어날 수 있는지 말해 줄 수 있습니까? 내 말은 나에게 물어 보는 것이 아니라 휴대폰에서 직접 열 때 보게되는 구글 플레이의 모바일 버전을 직접 여는 것을 의미한다.


1
마지막 두 번째 단락이 저에게 사실 이었으면합니다. 여기에있는 http 링크를 사용하면 developer.android.com/distribute/googleplay/promote/… 사용자가 앱이나 브라우저를 선택하라는 메시지가 표시되지 않습니다. 항상 브라우저를 가정합니다. 불행히도 나도 market://프로토콜을 사용할 수 없습니다 . 이 행동을 본 사람이 있습니까?
SilithCrowe 2013-06-28

답변:


265

지정된 market프로토콜 을 사용하고 싶을 것 입니다.

final String appPackageName = "com.example"; // Can also use getPackageName(), as below
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));

마켓이 설치되지 않은 모든 기기 (예 : 에뮬레이터)에서 충돌이 발생합니다. 따라서 다음과 같은 것을 제안합니다.

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("http://play.google.com/store/apps/details?id=" + appPackageName)));
}

일관성을 위해 getPackageName()from Context또는 하위 클래스를 사용하는 동안 ( @cprcrack에게 감사 드립니다 !). Market Intents에 대한 자세한 내용은 여기 링크를 참조하십시오 .


열기 브라우저에서 다음을 열 수 없습니다 Google Play의 작업을 수행합니다 시장 : // 세부 ID = 판도라?
IgorGanapolsky

1
ID는 앱 이름이 아니라 패키지 이름입니다. 시도 market://details?id=com.PandoraTV(가정 이 것은 당신이 원하는 응용 프로그램입니다).
에릭

9
이 대답은 market://브라우저를 통한 웹 사이트가 아니라 자신의 앱에서 접두사를 사용하는 것에 관한 것입니다 . 기능 (버전 2.3, 3.x, 4.0, 4.1 및 4.2)을 증명할 수 있으며 기본 브라우저, Chrome 베타 25 및 Chrome 18에서 작동합니다.
Eric

1
예, Chrome은 앱이지만 웹 사이트를 만드는 사람이 아닌 [Google] 제작자가이 코드를 사용해야합니다. 이 코드는 앱에서 특별히 링크를 구성하는 사람들을 돕기위한 것입니다.
Eric

2
getPackageName()앱 ID를 자동으로 검색하는 데 사용할 수 있습니다 .
cprcrack

6

아래 코드는 모바일 버전에서 google play sore의 응용 프로그램 링크를 표시하는 데 도움이 될 수 있습니다.

응용 프로그램 링크 :

Uri uri = Uri.parse("market://details?id=" + mContext.getPackageName());
Intent myAppLinkToMarket = new Intent(Intent.ACTION_VIEW, uri);

  try {
        startActivity(myAppLinkToMarket);

      } catch (ActivityNotFoundException e) {

        //the device hasn't installed Google Play
        Toast.makeText(Setting.this, "You don't have Google Play installed", Toast.LENGTH_LONG).show();
              }

개발자 링크 :

Uri uri = Uri.parse("market://search?q=pub:" + YourDeveloperName);
Intent myAppLinkToMarket = new Intent(Intent.ACTION_VIEW, uri);

            try {

                startActivity(myAppLinkToMarket);

            } catch (ActivityNotFoundException e) {

                //the device hasn't installed Google Play
                Toast.makeText(Settings.this, "You don't have Google Play installed", Toast.LENGTH_LONG).show();

            } 

3

Android Intents 라이브러리를 사용 하여 다음과 같이 Google Play에서 애플리케이션 페이지를 열 수 있습니다.

Intent intent = IntentUtils.openPlayStore(getApplicationContext());
startActivity(intent);

2
참고 것을 링크 전용 답변 낙심, SO 응답 솔루션 (대 아직 시간이 지남에 따라 부패하는 경향 참조의 다른 경유지)에 대한 검색의 엔드 포인트이어야한다. 링크를 참조로 유지하면서 여기에 독립형 시놉시스를 추가하는 것을 고려하십시오.
클레오 파트라

4
이것이 귀하의 라이브러리이고 기능이 허용되는 답변과 거의 동일한 방식으로 구현 된다는 면책 조항을 포함하는 것이 도움이 될 것 입니다.
ta.speot.is


1

Google Play 스토어 앱이 설치되어 있는지 확인할 수 있으며이 경우 "market : //" 프로토콜을 사용할 수 있습니다 .

final String my_package_name = "........."  // <- HERE YOUR PACKAGE NAME!!
String url = "";

try {
    //Check whether Google Play store is installed or not:
    this.getPackageManager().getPackageInfo("com.android.vending", 0);

    url = "market://details?id=" + my_package_name;
} catch ( final Exception e ) {
    url = "https://play.google.com/store/apps/details?id=" + my_package_name;
}


//Open the app page in Google Play store:
final Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
startActivity(intent);

0

Google Play에서 앱 페이지를 엽니 다.

Intent intent = new Intent(Intent.ACTION_VIEW,
                Uri.parse("market://details?id=" + context.getPackageName()));
startActivity(intent);
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.