Android應用自動跳轉到應用市場詳情頁面的方法_Android

來源:互聯網
上載者:User

前言

眾所周知在Android應用開發過程中,可能會有需求,比如:推廣時跳轉到應用市場下載應用,跳轉到應用市場給自己的應用打分,跳轉到應用市場更新自己的應用。

那如何跳轉到應用市場呢?

可能跳轉的方法大家都是知道的,方法如下:

public static void goToMarket(Context context, String packageName) {  Uri uri = Uri.parse("market://details?id=" + packageName);  Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);  try {    context.startActivity(goToMarket);  } catch (ActivityNotFoundException e) {    e.printStackTrace();  }}

此方法支援應用寶、360手機小幫手、豌豆莢、小米商店等主流的應用市場,當手機上面裝有多個應用市場時,則會快顯功能表讓使用者選擇調轉到哪個市場。那麼,問題來了,如果這麼簡單就結束了,怎麼還會有這篇文章呢?

在紅米Note2上測試時發現,調用此方法預設是直接調轉到小米市場,那如果在小米手機上,想要跳轉到應用寶或者其他的應用市場怎麼辦呢,方法自然是有的,如下:

public static void goToMarket(Context context, String packageName) {  Uri uri = Uri.parse("market://details?id=" + packageName);  Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);  try {    goToMarket.setClassName("com.tencent.android.qqdownloader", "com.tencent.pangu.link.LinkProxyActivity");    context.startActivity(goToMarket);  } catch (ActivityNotFoundException e) {    e.printStackTrace();  }}

看起來好像和第一個方法沒什麼區別,是的,只需要給多調用goToMarket.setClassName()方法,設定指定的應用去處理這個Intent事件,這樣就可以在小米手機上跳轉到應用寶的應用詳情頁面,而且,上一個方法如果在手機上裝有多個應用市場時,會快顯功能表讓使用者選擇,如果已經確定好要跳轉到哪個應用市場時,也可使用此方法,直接跳轉,省去中間使用者選擇的環節。

但是上面方法的思路似乎並不能對所有的應用市場有效,哪天產品經理提出要跳轉到三星的應用市場,畢竟三星手機在國內的佔有率還是排前幾位的,再使用上面的方法,發現懵逼了,三星市場竟然不支援這種方式,難怪三星手機在國內市場節節敗退。

不過再筆者的努力下終於找到了如下方法:

public static void goToSamsungappsMarket(Context context, String packageName) {  Uri uri = Uri.parse("http://www.samsungapps.com/appquery/appDetail.as?appId=" + packageName);  Intent goToMarket = new Intent();  goToMarket.setClassName("com.sec.android.app.samsungapps", "com.sec.android.app.samsungapps.Main");  goToMarket.setData(uri);  try {    context.startActivity(goToMarket);  } catch (ActivityNotFoundException e) {    e.printStackTrace();  }}

不過,後來發現在樂視手機上面,樂視的應用市場也是不支援goToMarket()方法的,所以又專門調研了跳轉樂視應用市場的方法,方法如下:

void goToLeTVStoreDetail(Context context, String packageName) {    Intent intent = new Intent();    intent.setClassName("com.letv.app.appstore", "com.letv.app.appstore.appmodule.details.DetailsActivity");    intent.setAction("com.letv.app.appstore.appdetailactivity");    intent.putExtra("packageName", packageName);    context.startActivity(intent);  }

總結

好了,以上就是這篇文章的全部內容了以上的方法希望能協助到有需要的人。如果有疑問大家可以留言交流。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.