获取手机中已安装的应用列表(不需要权限)
获取手机中已安装的应用列表(不需要权限)
获取手机中已安装的应用列表(不需要权限)
权限读取手机中已安装的应用列表禁止
问题:禁止了应用读取手机中已安装的应用列表权限,判断某个应用是否安装了失败,如微信
下面是判断是否安装了微信,是需要读取应用列表的权限,用户禁止了,就会读取不到
1
2
3
4
5
6
7
8
9
10
11
12
13
public static boolean isWeixinAvilible(Context context) {
final PackageManager packageManager = context.getPackageManager();// 获取packagemanager
List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);// 获取所有已安装程序的包信息
if (pinfo != null) {
for (int i = 0; i < pinfo.size(); i++) {
String pn = pinfo.get(i).packageName;
if (pn.equals("com.tencent.mm")) {
return true;
}
}
}
return false;
}
判断是否安装了某个应用,应该用下面的方法,不需要读取手机中已安装应用列表的权限
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
* 是否安装了某个应用
* @param context Context
* @param packageName 应用包名
* @return true安装了
*/
private boolean hasPackage(Context context, String packageName) {
if (null == context || TextUtils.isEmpty(packageName)) {
return false;
}
boolean bHas = true;
try {
context.getPackageManager().getPackageInfo(packageName, PackageManager.GET_GIDS);
} catch (PackageManager.NameNotFoundException e) {
// 抛出找不到的异常,说明该程序已经被卸载
bHas = false;
}
return bHas;
}
本文由作者按照 CC BY 4.0 进行授权