我必须以编程方式从android应用程序的manifest.xml中检索权限,但我不知道该怎么做。

我读了the post here,但是我对答案并不完全满意。
我想在android API中应该有一个类,它将允许从 list 中检索信息。

谢谢你。

最佳答案

您可以使用PackageManager获得应用程序请求的权限(可能不会被授予):

PackageInfo info = getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_PERMISSIONS);
String[] permissions = info.requestedPermissions;//This array contains the requested permissions.

我在实用程序方法中使用过此方法,以检查是否声明了预期的权限:
//for example, permission can be "android.permission.WRITE_EXTERNAL_STORAGE"
public boolean hasPermission(String permission)
{
    try {
        PackageInfo info = getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_PERMISSIONS);
        if (info.requestedPermissions != null) {
            for (String p : info.requestedPermissions) {
                if (p.equals(permission)) {
                    return true;
                }
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return false;
}

10-07 19:32