一、前言:
我们在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
网友评论