最近要做一个获取已经安装的apk包的权限的功能,众所周知,Android的权限声明都是放在AndroidManifest.xml里面的uses-permission字段里如:
<uses-permission android:name="WRITE_EXTERNAL_STORAGE"/>
如果要获取这个标签中的内容,我们就可以用到如下的代码:
PackageManager pm = this.getPackageManager();
PackageInfo info;
try {
info = pm.getPackageInfo(getPackageName(), PackageManager.GET_PERMISSIONS);
String result = null;
String[] packagePermissions = info.requestedPermissions;
Log.i("name", info.packageName);
if (packagePermissions != null) {
for (int j = 0; j < packagePermissions.length; j++) {
Log.i("result",packagePermissions[j]);
}
}
else {
Log.i("name", info.packageName + ": no permissions");
}
}
catch (NameNotFoundException e) {
e.printStackTrace();
}
需要注意的就是getPackageInfo函数的flag标志位需要设置为PackageManager.GET_PERMISSIONS,第一个参数是写String packageName也就是想要取得权限的包名,我们可以写上其他任何已经安装的包名,即可实现Android读取权限。