Android中检测应用是否安装有多种方法,其中比较常用的有如下2种:
1.通过获取系统上已安装的所有app列表来查找【不推荐。因为要获取已安装的所有app信息,可能会有隐私泄露风险】
public static boolean checkAppInstalled(Context context, String pkgName) {
if (TextUtils.isEmpty(pkgName)) {
return false;
}
PackageManager packageManager = context.getPackageManager();
// 获取已安装的app信息
List<PackageInfo> pkgInfos = packageManager.getInstalledPackages(0);
if (pkgInfos != null) {
for (int i = 0; i < pkgInfos.size(); i++) {
String pkg = pkgInfos.get(i).packageName;
if (pkgName.equals(pkg)) {
return true;
}
}
}
return false;
}
2.通过获取特定包名的app信息来判断【推荐。因为只关注特定包名的app信息,隐私泄露风险低】
public static boolean checkQQInstalled(Context context, String pkgName) {
if (TextUtils.isEmpty(pkgName)) {
return false;
}
try {
context.getPackageManager().getPackageInfo(pkgName, 0);
} catch (Exception x) {
return false;
}
return true;
}
本文探讨了Android中检测应用安装的两种方法,一种涉及隐私风险,另一种更推荐使用,仅关注特定包名,以降低隐私泄露。
5086






