如何获得应用程序的所有授予的权限 [英] How to get all granted permissions of a app
问题描述
我想获得所有授予的权限.我知道我可以通过packageinfo.requestedPermissions
获取所有请求的权限,但是我想知道授予权限的列表,并且在android M的情况下,授予的权限可以少于请求的权限.所以我只是想知道那是我可以获取列表的方式所有授予的权限?
I want to get all granted permissions. I know I can get all requested permissions by packageinfo.requestedPermissions
but I want to know list of granted permissions and granted permissions can be lesser then requested in case of android M. So I just wanted to know that is there way that I can get list of all granted permissions?
我从请求的权限列表中知道,我可以检查是否已授予该权限,但我想知道所有已授予的权限的列表.不想检查每个请求的权限.
I know from list of requested permission I can check for that permission weather granted or not but I want to know list of all granted permission. Don't want to check for every requested permission.
推荐答案
一个简单的函数可以返回已为给定程序包请求并授予的所有权限,如下所示:
A simple function that returns all the permissions that have been requested and granted for a given package could look like this:
List<String> getGrantedPermissions(final String appPackage) {
List<String> granted = new ArrayList<String>();
try {
PackageInfo pi = getPackageManager().getPackageInfo(appPackage, PackageManager.GET_PERMISSIONS);
for (int i = 0; i < pi.requestedPermissions.length; i++) {
if ((pi.requestedPermissionsFlags[i] & PackageInfo.REQUESTED_PERMISSION_GRANTED) != 0) {
granted.add(pi.requestedPermissions[i]);
}
}
} catch (Exception e) {
}
return granted;
}
请注意,这需要API级别16或更高级别,但希望这些天不会成为问题.
Note that this requires API level 16 or above, but that should hopefully not be an issue these days.
这篇关于如何获得应用程序的所有授予的权限的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!