Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android PackageInfo:requestedPermissions vs permissions_Android_Permissions - Fatal编程技术网

Android PackageInfo:requestedPermissions vs permissions

Android PackageInfo:requestedPermissions vs permissions,android,permissions,Android,Permissions,requestedPermissions和permissions之间有什么区别 PackageInfo _pi = getPackageManager().getPackageInfo(this.getPackageName(), PackageManager.GET_PERMISSIONS); // permissions PermissionInfo[] _permissions = _pi.p

requestedPermissions
permissions
之间有什么区别

PackageInfo _pi = getPackageManager().getPackageInfo(this.getPackageName(), 
                                               PackageManager.GET_PERMISSIONS);

// permissions
PermissionInfo[] _permissions = _pi.permissions;

// requestedPermissions
String[] _requestedPermissions = _pi.requestedPermissions;
它是关于应用程序权限和操作系统权限的吗


如文档所示,谢谢

公共许可信息[]

包含在
下的所有
标记的数组,如果 没有

int[]请求的权限

包含在
下的所有
标记的数组,或null 如果没有

因此
permissionInfo
将在
manifest
中具有
属性

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.androidtest"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name">

requstedPermissions将返回
标记中的权限,例如

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.CAMERA" />

如果您想在清单中预先检查所有权限,必须使用以下代码:

private bool PermissionInManifest (string permission)
{
    var permissions = this.Activity.PackageManager.GetPackageInfo(this.Activity.PackageName, PackageInfoFlags.Permissions);
    var requestedPermissions = permissions.RequestedPermissions.ToList();
    return requestedPermissions.Contains(permission);
}
如果要检查用户是否授予了权限,可以使用:

private bool PermissionGranted (string permission)
{
    return this.Activity.PackageManager.CheckPermission (permission, this.Activity.PackageName) == Permission.Granted;
}

我认为你是不对的<代码>权限信息
包含权限本身的相关信息@我认为第一部分(
permissionInfo
)不是真的。。。但第二部分是。我在文档中发现了这一点:
permissionInfo
是您可以检索到的关于系统已知的特定安全权限的信息。这对应于从AndroidManifest.xml的
标记收集的信息@downvoter最好的做法是评论downvoting的原因请求的权限,我相信是请求的权限,但不一定(尚未)被授予<代码>权限信息是关于权限本身的。请参阅此问题,以在注释中检查请求的权限和确认