完整代码:

/*** 跳转到本机应用市场*/
object MarketTools {const val HUAWEI_BRAND = "HUAWEI";//HUAWEI_PACKAGE_NAMEconst val HONOR_BRAND = "HONOR";//HUAWEI_PACKAGE_NAMEconst val OPPO_BRAND = "OPPO";//OPPO_PACKAGE_NAMEconst val MEIZU_BRAND = "MEIZU";//MEIZU_PACKAGE_NAMEconst val VIVO_BRAND = "VIVO";//VIVO_PACKAGE_NAMEconst val XIAOMI_BRAND = "XIAOMI";//XIAOMI_PACKAGE_NAMEconst val LENOVO_BRAND = "LENOVO";//LIANXIANG_PACKAGE_NAME //Lenovoconst val ZTE_BRAND = "ZTE";//ZTE_PACKAGE_NAMEconst val XIAOLAJIAO_BRAND = "XIAOLAJIAO";//ZHUOYI_PACKAGE_NAMEconst val QH360_BRAND = "360";//QH360_PACKAGE_NAMEconst val NIUBIA_BRAND = "NUBIA";//NIUBIA_PACKAGE_NAMEconst val ONE_PLUS_BRAND = "ONEPLUS";//OPPO_PACKAGE_NAMEconst val MEITU_BRAND = "MEITU";//MEITU_PACKAGE_NAMEconst val SONY_BRAND = "SONY";//GOOGLE_PACKAGE_NAMEconst val GOOGLE_BRAND = "GOOGLE";//GOOGLE_PACKAGE_NAMEconst val HTC_BRAND = "HTC";//未知应用商店包名const val ZUK_BRAND = "ZUK";//未知应用商店包名const val OPPO_PACKAGE_NAME = "com.oppo.market";//oppoconst val VIVO_PACKAGE_NAME = "com.bbk.appstore";//vivoconst val HUAWEI_PACKAGE_NAME = "com.huawei.appmarket";//华为const val QH360_PACKAGE_NAME = "com.qihoo.appstore";//360const val XIAOMI_PACKAGE_NAME = "com.xiaomi.market";//小米const val MEIZU_PACKAGE_NAME = "com.meizu.mstore";//,魅族const val LIANXIANG_PACKAGE_NAME = "com.lenovo.leos.appstore";//联想const val ZTE_PACKAGE_NAME = "zte.com.market";//zteconst val ZHUOYI_PACKAGE_NAME = "com.zhuoyi.market";//卓易const val GOOGLE_PACKAGE_NAME = "com.android.vending";//googleconst val NIUBIA_PACKAGE_NAME = "com.nubia.neostore";//努比亚const val MEITU_PACKAGE_NAME = "com.android.mobile.appstore";//美图const val BAIDU_PACKAGE_NAME = "com.baidu.appsearch";//baiduconst val TENCENT_PACKAGE_NAME = "com.tencent.android.qqdownloader";//应用宝const val PPZHUSHOU_PACKAGE_NAME = "com.pp.assistant";//pp助手const val ANZHI_PACKAGE_NAME = "com.goapk.market";//安智市场const val WANDOUJIA_PACKAGE_NAME = "com.wandoujia.phonenix2";//豌豆荚const val SUONI_PACKAGE_NAME = "com.android.vending";//索尼private const val schemaUrl = "market://details?id="const val SCHEMA_URL_DINGDING = "com.alibaba.android.rimet"/*** 跳转到Google Play*/fun startGooglePlay(mContext: Context, mPackageName : String) : Boolean {//检测谷歌Play是否在手机上安装,如果安装,则跳转val isExit:Boolean = isCheckMarket(GOOGLE_PACKAGE_NAME, mContext);if (isExit) {//跳转Google PlaystartMarket(mContext, mPackageName, GOOGLE_PACKAGE_NAME);return true;}
//        ToastUtils.showLong("Please install Google Play.")val intent: Intent = Intent(Intent.ACTION_VIEW)intent.data = Uri.parse("https://play.google.com/store/apps/details?id=" + mPackageName)mContext.startActivity(intent)return false}/**** 不指定包名* @param mContext*/fun startMarket(mContext: Context) {val mPackageName = mContext.packageName;//得到包名startMarket(mContext, mPackageName)}/*** 指定包名** @param mContext* @param mPackageName*/fun startMarket(mContext : Context , mPackageName : String ) : Boolean {try {//获得手机厂商val deviceBrand = getDeviceBrand()//根据厂商获取对应市场的包名val brandName: String = deviceBrand.toUpperCase();//大写if (TextUtils.isEmpty(brandName)) {Log.e("MarketTools", "没有读取到手机厂商~~");return false;}val marketPackageName: String = getBrandName(brandName);if (marketPackageName.isEmpty()) {//手机不再列表里面,去尝试寻找//检测百度和应用宝是否在手机上安装,如果安装,则跳转到这两个市场的其中一个val isExit1:Boolean = isCheckMarket(BAIDU_PACKAGE_NAME, mContext);if (isExit1) {//跳转百度商场startMarket(mContext, mPackageName, BAIDU_PACKAGE_NAME);return true;}val isExit2: Boolean = isCheckMarket(TENCENT_PACKAGE_NAME, mContext);if (isExit2) {//跳转应用宝startMarket(mContext, mPackageName, TENCENT_PACKAGE_NAME);return true;}}startMarket(mContext, mPackageName, marketPackageName);return true;} catch (anf: ActivityNotFoundException ) {Log.e("MarketTools", "要跳转的应用市场不存在!");} catch (e: Exception ) {Log.e("MarketTools", "其他错误:" + e.message);}return false;}/**** 指定包名,指定市场* @param mContext* @param mPackageName* @param marketPackageName*/fun startMarket(mContext : Context , mPackageName : String , marketPackageName: String ) {try {openMarket(mContext, mPackageName, marketPackageName);} catch (anf: ActivityNotFoundException ) {Log.e("MarketTools", "要跳转的应用市场不存在!");} catch (e: Exception ) {Log.e("MarketTools", "其他错误:" + e.message);}}/**** 打开应用市场* @param mContext* @param mPackageName* @param marketPackageName*/fun openMarket(mContext : Context , mPackageName : String , marketPackageName: String ) {try {val  uri: Uri = Uri.parse(schemaUrl + mPackageName)val  mIntent = Intent(Intent.ACTION_VIEW, uri)mIntent.setPackage(marketPackageName);mIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);mContext.startActivity(mIntent);} catch (anf: ActivityNotFoundException) {Log.e("MarketTools", "要跳转的应用市场不存在!");} catch (e: Exception ) {Log.e("MarketTools", "其他错误:" + e.message);}}/**** 检测是否存在应用市场* @param mContext* @param mPackageName* @return*/fun  isCheckMarket(mPackageName: String, mContext: Context) : Boolean{return isInstalled(mPackageName, mContext)}/***** 检查APP是否安装成功* @param packageName* @param context* @return*/fun isInstalled(@NonNull mPackageName: String, mContext: Context): Boolean {if (mPackageName.isEmpty()) {return false}val packageInfo: PackageInfo? = try {mContext.packageManager.getPackageInfo(mPackageName, 0)} catch (e: PackageManager.NameNotFoundException) {null}return packageInfo!= null}fun getBrandName(brandName: String): String {when (brandName) {HUAWEI_BRAND -> {//华为return HUAWEI_PACKAGE_NAME;}OPPO_BRAND -> {//opporeturn OPPO_PACKAGE_NAME;}VIVO_BRAND -> {//vivoreturn VIVO_PACKAGE_NAME;}XIAOMI_BRAND -> {//小米return XIAOMI_PACKAGE_NAME;}LENOVO_BRAND -> {//联想return LIANXIANG_PACKAGE_NAME;}QH360_BRAND -> {//360return QH360_PACKAGE_NAME;}MEIZU_BRAND -> {//魅族return MEIZU_PACKAGE_NAME;}HONOR_BRAND -> {//华为return HUAWEI_PACKAGE_NAME;}XIAOLAJIAO_BRAND -> {//小辣椒return ZHUOYI_PACKAGE_NAME;}ZTE_BRAND -> {//ztereturn ZTE_PACKAGE_NAME;}NIUBIA_BRAND -> {//努比亚return NIUBIA_PACKAGE_NAME;}ONE_PLUS_BRAND -> {//OnePlusreturn OPPO_PACKAGE_NAME;}MEITU_BRAND -> {//美图return MEITU_PACKAGE_NAME;}SONY_BRAND -> {//索尼return GOOGLE_PACKAGE_NAME;}GOOGLE_BRAND -> {//googlereturn GOOGLE_PACKAGE_NAME;}else -> return ""}}/*** 获取手机厂商*/private fun getDeviceBrand(): String {return if (Build.BRAND == null)  ""  else Build.BRAND}
}

Android跳转到应用商店的APP详情页面工具类(检测Google Play跳转网页详情)相关推荐

  1. Android如何跳转到应用商店的APP详情页面

    前言 众所周知在Android应用开发过程中,可能会有需求,比如:推广时跳转到应用市场下载应用,跳转到应用市场给自己的应用打分,跳转到应用市场更新自己的应用. 让用户 下载 或 评论.列如app马甲包 ...

  2. android 弹出编辑框,Android编程实现的EditText弹出打开和关闭工具类

    本文实例讲述了Android编程实现的EditText弹出打开和关闭工具类.分享给大家供大家参考,具体如下: 需求: 使用代码实现Android的输入框EditText对键盘的关闭弹出的实现. 代码: ...

  3. Android基础入门教程——8.3.1 三个绘图工具类详解

    Android基础入门教程--8.3.1 三个绘图工具类详解 标签(空格分隔): Android基础入门教程 本节引言: 上两小节我们学习了Drawable以及Bitmap,都是加载好图片的,而本节我 ...

  4. Android开发之制作圆形头像自定义View,直接引用工具类,加快开发速度。带有源代码学习

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 博客园主页:http://www.cnblogs.com/mcxiaobing ...

  5. Android开发之制作圆形头像自定义View,直接引用工具类,加快开发速度。带有源代码学习...

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 博客园主页:http://www.cnblogs.com/mcxiaobing ...

  6. Android跳转到应用商店的APP详情页面

    需求:从App内部点击按钮或链接,跳转到应用商店的某个APP的详情页面. 让用户 下载 或 评论. 实现: /*** 启动到应用商店app详情界面** @param appPkg 目标App的包名* ...

  7. Android开发——跳转到应用商店以及app详情页、获取手机硬件信息、验证app是否存在

    普通跳转 Tip:该跳转可适配普通的跳转,比如跳转豌豆荚 //appPkg是你要跳转的包名//marketPkg是你使用的应用商店,如果传空,则会把你手机上的应用商店全部列出来try {if (Tex ...

  8. Android跳转到应用商店的APP详情页面,以及 Google GMS 各个apk的包

    需求: 从App内部点击按钮或链接,跳转到应用商店的某个APP的详情页面. 让用户 下载 或 评论. 实现: /*** 启动到应用商店app详情界面** @param appPkg 目标App的包名* ...

  9. Android开发之dp转像素,像素转换为dp工具类,详细代码,带有源文件下载地址。...

    2019独角兽企业重金招聘Python工程师标准>>> import android.content.Context; /** * @author 官网:http://www.93s ...

最新文章

  1. LeetCode刷题记录5——441. Arranging Coins(easy)
  2. python画代码-Python教程_Python画Mandelbrot集 代码
  3. mysql百万级分页优化
  4. 你不是一个人在战斗!有人将吴恩达的视频教程做成了文字版
  5. CodeForces - 1303E Erase Subsequences(dp)
  6. yii2-datepicker/datetimepicker插件使用
  7. SAP Cloud for Customer和SAP CRM的行业解决方案列表
  8. Python的文件锁使用
  9. 20210119:力扣第42周双周赛(下)
  10. oppo 手机刷机和root,还有其他必备的刷机工具,需要请进!!!
  11. 饥荒显示服务器建立时遇到问题,饥荒联机版建立服务器出现问题怎么回事 | 手游网游页游攻略大全...
  12. 健康管理师可以从事哪些工作
  13. 亲爱的程序猿们怎么找工作
  14. MVC实现局部视图刷新
  15. 消极和积极的道德--给亲爱的安德烈
  16. 什么是html的语义化?
  17. echarts 折线图设置曲线平滑
  18. 如何在SpringBootOAuth服务器中实现双因素认证?第二部分:Under the Hood
  19. [高中作文赏析]跋涉与成功
  20. abaqus python_ABAQUS中的python语言入门

热门文章

  1. 新浪微博秀引用到jsp中显示空白
  2. 浏览器 F12调试网页出现Paused in debugger问题解决
  3. 建立简单的数据库步骤
  4. Node的介绍和基本使用(更新ing)
  5. JVM学习笔记0:Java虚拟机概述
  6. TEA算法加密/解密在线工具
  7. mysql数据显示手机屏幕_手机屏幕数据汇总
  8. 小白也能做应用(二)之fusion app增加B站视频页面
  9. 批量下载Excel中的链接中的文件
  10. 二叉树(BST树)内结点的删除(3种情况全解)