2010-08-09 61 views
15

我正在構建Android的許多應用程序,並希望在應用程序中有一個菜單按鈕,基本上在Android Market中打開我的其他應用程序的列表。Android鏈接從另一個應用程序市場

有沒有一種方法來創建一個意圖,讓Android市場隨着市場(我的公司)的搜索而彈出,以便用戶可以購買其他應用程序?

伊恩

回答

22

是,存在對一個documented Intent syntaxhttp://market.android.com/search?q=pub:<Developer Name>market://search?q=pub:<Developer Name>)。

+1

按預期工作是有一個更新的鏈接,谷歌玩或者是它仍然是「市場」 – gregm 2012-04-12 15:42:41

+0

@gregm:看起來它仍然是「市場」:http://developer.android.com/guide/publishing/publishing.html#marketintent – CommonsWare 2012-04-12 16:00:53

+0

@CommonsWare你知道這是否仍然有效嗎?我一直在用Play Store 3.7.15試用Galaxy S 3,如果我包含「pub:」,它不起作用,但如果我只是將發佈者名稱作爲查詢,則工作正常。我不喜歡這樣做,因爲其他的東西本質上可以出現。 – Hamid 2012-07-26 16:18:01

4

意圖行動將視圖和uri市場url/uri。

像這樣:

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://search?q=pub:<developer name>"))); 
65

更妙的是用 「市場://詳細信息」,而不是 「市場://搜索」:

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

然後直接打開的詳細信息頁面應用程序。通過搜索它會顯示單個搜索結果,用戶必須再點擊一下才能進入詳細信息頁面。

+0

Android Studio的簡化版本'''startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse(「market:// details?id =」+ BuildConfig.APPLICATION_ID)));''' – gio 2015-08-04 09:15:46

2

在我的真實設備上,索尼Xperia Pro和PocketBook平板電腦,即使您放置鏈接以播放網絡商店,例如https://play.google.com/store/apps/details?id=com.estrongs.android.pop 它會詢問您是否要在默認瀏覽器或Play遊戲市場中打開它。 如果您選擇Play market - 應用程序按預期顯示。 沒有用意圖進行測試,使用TextView中的自動鏈接測試。

3

另一種方法是啓動一個URL Intent,其中包含應用程序的包名。 用戶將彈出一個安裝列表瀏覽器 + Play商店應用程序,他可以在其中查看您的目標應用程序。

String appPackageName = "com.example.android"; 
String url = "https://play.google.com/store/apps/details?id=" + appPackageName; 
Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setData(Uri.parse(url)); 
startActivity(intent); 

上面的代碼測試,並在Play商店版本4.1.6

0
@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch(item.getItemId()) { 
     case R.id.adfree: 
      final String appPackageName = "com.zooohooo.noads"; // Can also use getPackageName(), as below 
      startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName))); 
      return true; 
     case R.id.rate: 
      startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + getPackageName()))); 
      return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 
相關問題