2014-01-22 68 views
0

我知道這個標題有一些話題。但它們都只能用於GooglePlay。
我想讓用戶選擇自己喜歡的市場。將包名稱發送到市場並獲得結果。發送包名稱到任何市場

我還測試了這款:

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setData(Uri.parse("market://details?id=com.android.example")); 
startActivity(intent); 

但這不是通過一些市場支持。

+1

「市場://」 launce Play商店的應用程序只 –

回答

0

您需要爲亞馬遜的Appstore和谷歌播放一個單獨的意圖:

這段代碼計算出該存儲它從安裝,然後嘗試谷歌Play和亞馬遜的Appstore。如果意圖失敗,它回落到正確的網頁

String installer = getPackageManager().getInstallerPackageName(getPackageName()); 
if ("com.amazon.venezia".equals(installer)) { 

    try { 
     Intent intent = new Intent(Intent.ACTION_VIEW); 
     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     intent.setData(Uri.parse("amzn://apps/android?p=com.monadpad....")); 
     startActivity(intent); 

    } 
    catch (Exception e) { 
     Intent browser = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.amazon.com...")); 
     startActivity(browser); 
    } 


} 
else if ("com.android.vending".equals(installer)) { 
    try { 
     Intent intent = new Intent(Intent.ACTION_VIEW); 
     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     intent.setData(Uri.parse("market://details?id=com.monadpad...")); 
     startActivity(intent); 
    } 
    catch (Exception e) { 
     Intent browser = new Intent(Intent.ACTION_VIEW, 
       Uri.parse("https://play.google.com/store/apps/details?id=com.monadpad....")); 
     startActivity(browser); 
    } 

} 
+0

這是很好的解決方案,但有一種方式來顯示彈出菜單,用戶選擇市場? –

+0

我這樣做手動。我把亞馬遜和谷歌播放按鈕放在一起。如果安裝程序包是一個或另一個,我隱藏另一個。我還可以測試getLaunchIntentForPackage()以查看是否安裝了Google Play應用和Amazon Appstore應用。例如,在NOOK上,兩者都不會被安裝。 NOOK的是如果你需要的話:https://nookdeveloper.zendesk.com/entries/20107613-cross-linking-to-your-other-apps-in-the-shop – MikeHelland

+0

非常感謝你:) –