Android 跳转应用市场

一、前言:

我们在app中,有的时候想跳转到应用市场,去更新apk或者去评分。我们就需要在自己本app中跳转到应用市场。

原理十分简单,构建一个ACTION_VIEW标记的Intent,并给一个如下结构的 Uri 即可:

//商店中使用包名来唯一标识区分应用
"market://details?id= "+ getPackageName()

在 Android 平台上,正常情况下手机中的应用商店应该是 Google Play
但是由于各种你懂我也懂的原因,国内基本上无法使用 Google Play 服务。
好在广泛的第三方应用市场大多都实现了这个接口。

二、使用:

1. 直接跳转就行

//这里开始执行一个应用市场跳转逻辑,默认this为Context上下文对象
//跳转到应用市场,非Google Play市场一般情况也实现了这个接口
 Uri uri = Uri.parse("market://details?id=" + getPackageName());
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);

2. 异常情况

//存在手机里没安装应用市场的情况,跳转会包异常,做一个接收判断

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://details?id=" + getPackageName()));

if (intent.resolveActivity(getPackageManager()) != null) { 
    //可以接收
    startActivity(intent);
} else { 
    //没有应用市场,我们通过浏览器跳转到Google Play
intent.setData(Uri.parse("https://play.google.com/store/apps/details?id=" + getPackageName()));

  //这里存在一个极端情况就是有些用户浏览器也没有,再判断一次
    if (intent.resolveActivity(getPackageManager()) != null) { 
        //有浏览器
        startActivity(intent);
    }
}

需要注意的就是,如果界面跳转失败,会抛出异常,因此能否跳转需要进行判断。

3. 总结:

根据以上,同理使用以下Uri进行替换:

//跳转到商店搜索界面,并搜索开发者姓名
Uri.parse("market://search?q=pub:Author) Name");

//跳转到商店搜索界面,并搜索关键词
Uri.parse("market://search?q=Keyword)");

三、跳转指定应用市场:

1. 跳转到应用宝

//跳转到指定的市场,例如腾讯应用宝
public void goToTencentMarket() {
        Uri uri = Uri.parse("market://details?id=" + getPackageName());
        Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
            goToMarket.setClassName("com.tencent.android.qqdownloader", "com.tencent.pangu.link.LinkProxyActivity");
         startActivity(goToMarket);
    }

  • setClass:跳转到与该工程下的(同一个Application中的)activity或者service
  • setClassName:跳转到不同Applicaiton的activity或者service

2. 国内主要Android应用市场包名

  • com.tencent.android.qqdownloader 腾讯应用宝
  • com.qihoo.appstore 360手机助手
  • com.baidu.appsearch 百度手机助手
  • com.xiaomi.market 小米应用商店
  • com.huawei.appmarket 华为应用商店
  • com.wandoujia.phoenix2 豌豆荚
  • com.dragon.android.pandaspace 91手机助手
  • com.hiapk.marketpho 安智应用商店
  • com.yingyonghui.market 应用汇
  • com.tencent.qqpimsecure QQ手机管家
  • com.mappn.gfan 机锋应用市场
  • com.pp.assistant PP手机助手
  • com.oppo.market OPPO应用商店
  • cn.goapk.market GO市场
  • zte.com.market 中兴应用商店
  • com.yulong.android.coolmart 宇龙Coolpad应用商店
  • com.lenovo.leos.appstore 联想应用商店
  • com.coolapk.market cool市场

参考作者:Leon_hy
链接:https://www.jianshu.com/p/050dcda2603d
链接:https://blog.csdn.net/qq_35678553/article/details/77161036

你可能感兴趣的:(Android 跳转应用市场)