如何获得应用程序的所有授予的权限 [英] How to get all granted permissions of a app

查看:385
本文介绍了如何获得应用程序的所有授予的权限的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想获得所有授予的权限.我知道我可以通过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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆