判断当前app的渠道号
int channelCode = BuildConfig.CHANNEL_CODE
获取当前手机包含的应用商店
/** * 获取当前手机上的应用商店数量
* @param context
* @return
*/
private static ArrayList queryInstalledMarketPkgs(Context
context) {
ArrayList pkgs = new ArrayList<>();
if (context == null)
return pkgs;
Intent intent = new Intent();
intent.setAction("android.intent.action.MAIN");
intent.addCategory("android.intent.category.APP_MARKET");
PackageManager pm = context.getPackageManager();
List infos = pm.queryIntentActivities(intent, 0);
if (infos == null || infos.size() == 0)
return pkgs;
int size = infos.size();
for (int i = 0; i < size; i++) {
String pkgName = "";
try {
ActivityInfo activityInfo = infos.get(i).activityInfo;
pkgName = activityInfo.packageName;
} catch (Exception e) {
e.printStackTrace();
}
if (!TextUtils.isEmpty(pkgName))
pkgs.add(pkgName);
}
return pkgs;
}
应用商店跳转
/** *
* @param appPkg 应用包名
* @param marketPkg 应用商店包名
* @param context
*/
private static void launchAppDetail(String appPkg, String marketPkg,
Context context) {
try {
if (TextUtils.isEmpty(appPkg))
return;
Uri uri = Uri.parse("market://details?id=" + appPkg);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
if (!TextUtils.isEmpty(marketPkg))
intent.setPackage(marketPkg);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}
}
应用商店网页版跳转
Uri uri = Uri.parse("应用商店app网页版地址");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
context.startActivity(intent);
根据渠道号和手机上包含的应用商店决定跳应用商店或者跳应用商店网页版