前言
最近收到一个需求,业务要求在App添加一个跳转到应用市场的功能。
做这个功能,我们首先要准备:
1.统计目前公司的App投放在什么渠道;(这个可以询问公司的业务部门)
2.获取投放的应用市场App的包名;
3.判断手机是否存在投放的应用市场;
4.根据手机存在的应用市场自定义弹框,提供给用户选择。
获取投放的应用市场App的包名
目前国内主流的应用市场有:
腾讯应用宝: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
可以根据公司投放的渠道使用相应应用市场的包名~
判断手机是否存在投放的应用市场:
public static boolean isInstalledApp(Context context, String pakageName) {
PackageManager packageManager = context.getPackageManager();
//获取所有已安装程序的包信息
List<PackageInfo> packageInfos = packageManager.getInstalledPackages(0);
//用于存储所有已安装程序的包名
ArrayList<Object> pName = new ArrayList<>();
//从packageInfos中将包名取出
if (null != packageInfos) {
for (int i = 0; i < packageInfos.size(); i++) {
String packageName = packageInfos.get(i).packageName;
pName.add(packageName);
}
}
//判断pName中是否有目标程序的包名 有返回true 没有返回false
return pName.contains(pakageName);
}
跳转到应用市场:
/**
* 启动应用商店APP详情界面
*/
public static void launchAppDetail(Context context, String appPkg, String marketPkg) {
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();
}
}
网友评论