我正在尝试使用以下代码检索在Manifest文件中声明的权限。
try {
PackageInfo pkgInfo = getPackageManager().getPackageInfo(
mPkg,
PackageManager.GET_PERMISSIONS
);
PermissionInfo[] permissions = pkgInfo.permissions;
if (permissions == null) {
source.setText("No declared permissions");
} else {
String permissionsText = "";
for (int i = 0; i < permissions.length; i++) {
permissionsText += permissions[i].name + "\n";
}
source.setText(permissionsText);
}
} catch (PackageManager.NameNotFoundException e) {
source.setText("Package Not Found");
}
但权限返回null。在应用程序中声明了一些权限。但它仍然返回NULL。
我正在Android 6.0上执行此代码
请帮助检索Android Manifest文件中声明的权限。
答案 0 :(得分:0)
将您的pkgInfo.permissions更改为pkgInfo.requestedPermissions。
try {
PackageInfo pkgInfo = getPackageManager().getPackageInfo(mPkg, PackageManager.GET_PERMISSIONS);
String[] requestedPermissions = pkgInfo.requestedPermissions;
if (requestedPermissions == null) {
source.setText("No declared permissions");
} else {
String permissionsText = "";
for (int i = 0; i < pkgInfo.requestedPermissions.length; i++) {
permissionsText += requestedPermissions[i] + "\n";
}
source.setText(permissionsText);
}
} catch (PackageManager.NameNotFoundException e) {
source.setText("Package Not Found");
}