Activity.RequestPermissions(String[], Int32) 方法

定义

请求授予此应用程序的权限。

[Android.Runtime.Register("requestPermissions", "([Ljava/lang/String;I)V", "", ApiSince=23)]
public void RequestPermissions (string[] permissions, int requestCode);
[<Android.Runtime.Register("requestPermissions", "([Ljava/lang/String;I)V", "", ApiSince=23)>]
member this.RequestPermissions : string[] * int -> unit

参数

permissions
String[]

请求的权限。 必须非 null 且不为空。

requestCode
Int32

与报告给 #onRequestPermissionsResult(int, String[], int[])的结果匹配的应用程序特定请求代码。 应 >为 = 0。

属性

注解

请求授予此应用程序的权限。 这些权限必须在清单中请求,不应向应用授予这些权限,并且它们应具有保护级别 android.content.pm.PermissionInfo#PROTECTION_DANGEROUS dangerous,无论这些权限是由平台还是第三方应用声明的。

如果在清单中请求,则会在安装时授予普通权限 android.content.pm.PermissionInfo#PROTECTION_NORMAL 。 如果在清单中请求签名, android.content.pm.PermissionInfo#PROTECTION_SIGNATURE 并且应用的签名与声明权限的应用的签名匹配,则会在安装时授予签名权限。

如果系统建议在请求权限之前显示基本 UI,请在调用此 API 之前调用 #shouldShowRequestPermissionRationale(String) 以检查。

如果你的应用没有请求的权限,用户将收到用于接受这些权限的 UI。 在用户接受或拒绝请求的权限后,你将收到一个回调,指出 #onRequestPermissionsResult(int, String[], int[]) 是否授予了权限。

请注意,请求权限并不能保证授予权限,并且你的应用应该能够在没有此权限的情况下运行。

此方法可能会启动一个活动,允许用户选择要授予和拒绝的权限。 因此,应准备好暂停和恢复活动。 此外,授予某些权限可能需要重启应用程序。 在这种情况下,系统会在将结果 #onRequestPermissionsResult(int, String[], int[])传递给 之前重新创建活动堆栈。

检查是否具有权限时,应使用 #checkSelfPermission(String)

如果活动设置为 android.R.styleable#AndroidManifestActivity_noHistory noHistorytrue ,则无法请求权限,因为在这种情况下,活动不会收到包括 的结果 #onRequestPermissionsResult(int, String[], int[])回调。

RuntimePermissions 示例应用演示了如何在运行时使用此方法请求权限。

android.app.Activity.requestPermissions(java.lang.String[], int)Java 文档。

此页面的某些部分是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的条款使用。

适用于