包含此页的版本:
不含此页的版本:
本页介绍如何请求用户权限,以便您的应用程序访问设备上的数据或使用设备功能(例如内置照相机或麦克风。
Google 的权限请求指南建议,如果用户拒绝了一次权限请求,您应该显示请求的原因并再次提出该请求。
如需详细了解如何在 Android 设备上请求权限,请参阅 Android 开发者指南中的应用权限最佳做法。
在应用请求使用受限数据或特定设备功能的权限之前,它必须在其 Android 应用清单中声明该权限。有关更多信息,请参阅声明应用程序的权限。
Android.Permission API 提供了一些功能,可用于检查应用程序当前具有哪些权限,并请求应用程序需要但不具有的权限。
运行时请求权限的过程概述如下:
使用 Permission.HasUserAuthorizedPermission 检查用户是否已授予应用程序所需的数据或功能的权限。
有关演示如何使用此 API 的代码示例,请参阅 Permission.HasUserAuthorizedPermission。
使用 Permission.ShouldShowRequestPermissionRationale 检查是否需要显示特定权限请求的基本原理。
如果理由是必要的,请显示一条消息,说明应用程序需要访问特定设备功能的原因。显示消息后,发送权限请求。
如果理由不是必需的,请直接继续发送权限请求。
有关演示如何使用此 API 的代码示例,请参阅 Permission.ShouldShowRequestPermissionRationale。
使用 Permission.RequestUserPermission 请求使用数据或功能的权限。调用此方法时,Android 会打开系统权限对话框,用户可以使用该对话框来授予或拒绝权限。
有关演示如何使用此 API 的代码示例,请参阅 Permission.RequestUserPermission。
使用 Permission.RequestUserPermissions 请求一次访问用户设备上的多个资源的权限。此方法使用字符串数组,每个字符串代表访问特定资源的特定权限,例如设备的照相机、麦克风或位置。
这些方法可以接受 PermissionCallbacks 对象,可用于指定在用户授予或拒绝权限后要运行的代码。用户可以在用户授予权限请求后立即使用它开始使用设备功能。例如,您可以从麦克风开始录音。
提示:请求权限时,最佳做法是向用户显示一条消息,说明应用需要该功能的原因。
注意:如果用户在系统权限对话框中启用了“不再询问我”选项,或者多次拒绝该权限,RequestUserPermission()不会打开系统对话框。在这种情况下,用户必须进入应用程序权限设置并手动启用该权限。
如果用户拒绝应用程序所需的权限,请为用户提供一种手动显示权限请求对话框的方法。如何执行此作取决于应用程序,但一种解决方案是提供一个调用 Permission.RequestUserPermission 的按钮。