admin管理员组

文章数量:1560458

前言

最近在做一个需求,需要从自己APP进入到系统的应用市场
方便用户在应用市场给自己的APP打分
于是查阅了一些资料,下面说一下实现方法

实现方案

一般来说,最简单的方案就是这样:

 val uri = Uri.parse("market://details?id=" + 你自己应用的包名)
 val intent=Intent(Intent.ACTION_VIEW, uri)
 if (intent.resolveActivity(this) != null) {
      startActivity(intent)
 }else{
      showToast(mActivity, "您的手机暂无应用市场,请下载后重试,感谢您的支持~")
 }

其中resolveActivity用来判断是否可以正确拉起应用市场,不能的话就提示用户
经过试验,发现的确是可行的,但是也发现了一些问题:
1:如果手机安装了多个应用市场,会弹框提示你选择具体的应用市场
2:无法指定具体的应用市场页面,比如我想直接进打分页面,这方面是系统处理,不可控制
针对第二个问题,暂时没想到好的解决办法
第一个的话,可以通过新增方法来指定对应的应用市场

指定应用市场

我们可以先利用Build.BRAND这个属性获取我们手机的品牌
然后指定对应品牌的应用市场
比如如果你获取的是华为的品牌
就可以指定华为的应用市场
获取品牌的方法可以这样处理:

  private fun getBrandType(): String {
    val brandType = when (Build.BRAND.uppercase(Locale.getDefault())) {
      "HUAWEI" -> "HUAWEI"
      "XIAOMI" -> "XIAOMI"
      "REDMI" -> "REDMI"
      "HONOR" -> "HONOR"
      "OPPO" -> "OPPO"
      "VIVO" -> "VIVO"
      else -> {
        "OTHER"
      }
    }
    return brandType
  }

指定华为应用市场,只需要对intent多加这一行:

intent.setPackage("com.huawei.appmarket")

这样就可以直接跳到华为应用市场了
最后,附上不同品牌机型的应用市场的包名:

目前国内主流的应用市场有:

腾讯应用宝:com.tencent.android.qqdownloader 

360手机助手:com.qihoo.appstore 

百度手机助手:com.baidu.appsearch 

小米应用商店:com.xiaomi.market 

华为应用商店:com.huawei.appmarket 

QQ手机管家:com.tencent.qqpimsecure 

OPPO应用商店:com.oppo.market 

中兴应用商店:zte.com.market 

联想应用商店:com.lenovo.leos.appstore 

可以根据公司投放的渠道使用相应应用市场的包名~

本文标签: 跳转详情页方式市场app