美文网首页Android
Android 跳转应用市场

Android 跳转应用市场

作者: i小灰 | 来源:发表于2020-12-03 08:18 被阅读0次

    一、前言:

    我们在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 跳转应用市场

        本文链接:https://www.haomeiwen.com/subject/wjwoiktx.html