我知道這個標題有一些話題。但它們都只能用於GooglePlay。
我想讓用戶選擇自己喜歡的市場。將包名稱發送到市場並獲得結果。發送包名稱到任何市場
我還測試了這款:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://details?id=com.android.example"));
startActivity(intent);
但這不是通過一些市場支持。
我知道這個標題有一些話題。但它們都只能用於GooglePlay。
我想讓用戶選擇自己喜歡的市場。將包名稱發送到市場並獲得結果。發送包名稱到任何市場
我還測試了這款:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://details?id=com.android.example"));
startActivity(intent);
但這不是通過一些市場支持。
您需要爲亞馬遜的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);
}
}
這是很好的解決方案,但有一種方式來顯示彈出菜單,用戶選擇市場? –
我這樣做手動。我把亞馬遜和谷歌播放按鈕放在一起。如果安裝程序包是一個或另一個,我隱藏另一個。我還可以測試getLaunchIntentForPackage()以查看是否安裝了Google Play應用和Amazon Appstore應用。例如,在NOOK上,兩者都不會被安裝。 NOOK的是如果你需要的話:https://nookdeveloper.zendesk.com/entries/20107613-cross-linking-to-your-other-apps-in-the-shop – MikeHelland
非常感謝你:) –
「市場://」 launce Play商店的應用程序只 –