语言

Activity.RequestPermissions 方法

定义

重载

名称 说明
RequestPermissions(String[], Int32)

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

RequestPermissions(String[], Int32, Int32)

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

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。 应为 >= 0。

属性

注解

请求授予此应用程序的权限。 这些权限必须在清单中请求,不应向应用授予这些权限,并且它们应具有保护级别危险,无论它们是由平台还是第三方应用声明。 如果在清单中请求,PermissionInfo.PROTECTION_NORMAL在安装时授予正常权限。 如果在清单中请求签名,并且应用的签名与声明权限的应用签名匹配,则PermissionInfo.PROTECTION_SIGNATURE签名在安装时授予签名。

在调用此 API 之前调用 shouldShowRequestPermissionRationale(String),以检查系统是否建议在请求权限之前显示合理 UI。

如果你的应用没有请求的权限,则用户将收到用于接受它们的 UI。 在用户接受或拒绝请求的权限后,你将收到 onRequestPermissionsResult(int、String、int)的回调,报告是否授予了权限。

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

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

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

如果活动将 noHistory 设置为 true,则无法请求权限,因为在这种情况下,活动不会收到结果回调,包括 onRequestPermissionsResult(int、String、int)。

权限示例存储库演示如何使用此方法在运行时请求权限。

另请参阅:

引发:如果 requestCode 为负数,则为 IllegalArgumentException。

Android 参考。android.app.Activity.requestPermissions

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

适用于

RequestPermissions(String[], Int32, Int32)

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

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

参数

permissions
String[]

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

requestCode
Int32

应用程序特定的请求代码,以匹配报告的结果 #onRequestPermissionsResult。 应为 >= 0。

deviceId
Int32

应用正在请求此设备的权限。 分配主/物理设备 Context#DEVICE_ID_DEFAULT,并分配虚拟设备的唯一设备 ID。

属性

注解

请求授予此应用程序的权限。 这些权限必须在清单中请求,不应向应用授予这些权限,并且它们应具有保护级别危险,无论它们是由平台还是第三方应用声明。 如果在清单中请求,PermissionInfo.PROTECTION_NORMAL在安装时授予正常权限。 如果在清单中请求签名,并且应用的签名与声明权限的应用签名匹配,则PermissionInfo.PROTECTION_SIGNATURE签名在安装时授予签名。

在调用此 API 之前调用 shouldShowRequestPermissionRationale(String),以检查系统是否建议在请求权限之前显示合理 UI。

如果你的应用没有请求的权限,则用户将收到用于接受它们的 UI。 在用户接受或拒绝请求的权限后,你将收到 onRequestPermissionsResult(int、String、int)的回调,报告是否授予了权限。

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

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

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

如果活动将 noHistory 设置为 true,则无法请求权限,因为在这种情况下,活动不会收到结果回调,包括 onRequestPermissionsResult(int、String、int)。

权限示例存储库演示如何使用此方法在运行时请求权限。

另请参阅:

引发:如果 requestCode 为负数,则为 IllegalArgumentException。

Android 参考。android.app.Activity.requestPermissions

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

适用于