Android app内跳转应用商店

122 阅读1分钟
        var uriString = ""
        var marketPkg = ""
        try {
            val lowerCase: String = Build.BRAND.lowercase(Locale.ROOT)
            LogUtils.d(TAG, "OpenAppMarket lowerCase: $lowerCase")

            if (lowerCase == "xiaomi" || lowerCase == "redmi") {
                uriString = "market://details?id="
                marketPkg = "com.xiaomi.market"
            } else if (lowerCase == "huawei" || lowerCase == "honor") {
                uriString = "market://details?id="
//                marketPkg = "com.huawei.market"
            } else if (lowerCase == "vivo") {
                uriString = "vivoMarket://details?id="
                marketPkg = "com.bbk.appstore"
            }
            //            if (lowerCase.equals("flyme")) {
//                str2 = "mstore://details?packagename=";
//                marketPkg = "";
//
//            }
//            if (lowerCase.equals("samsung")) {
//                str2 = "samsungapps://ProductDetail/";
//                marketPkg = "";
//
//            }
            else if (lowerCase == "oppo" || lowerCase == "oneplus" || lowerCase == "realme") {
                uriString = "oppomarket://details?packagename="
                marketPkg = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
                    "com.heytap.market" //// Q (10)之后的软件商店包名
                } else {
                    "com.oppo.market" //Q (10)之前的软件商店包名
                }
            } else {
                return
            }

            if (TextUtils.isEmpty(uriString)) uriString = "market://details?id="

            try {
               //url+app包名
                val urlString = uriString + AppUtils.getAppPackageName()  
                LogUtils.d(TAG, "Intent urlString: $urlString")

                val intent = Intent(Intent.ACTION_VIEW, Uri.parse(urlString))
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
                if (marketPkg != "") intent.setPackage(marketPkg)

                context.startActivity(intent)

            } catch (e: Exception) {
                LogUtils.e(TAG, "跳转失败 error: $e")
            }
        } catch (e: Exception) {
            e.printStackTrace()
            LogUtils.e(TAG, "手机无应用商店 error:$e")
        }