Activity.RequestPermissions(String[], Int32) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
请求授予此应用程序的权限。
[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 noHistory
true
,则无法请求权限,因为在这种情况下,活动不会收到包括 的结果 #onRequestPermissionsResult(int, String[], int[])
回调。
RuntimePermissions 示例应用演示了如何在运行时使用此方法请求权限。
的 android.app.Activity.requestPermissions(java.lang.String[], int)
Java 文档。
此页面的某些部分是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的条款使用。