权限请求应当简单、透明且易于理解。
应用应当说明每个权限请求的原因,可以通过功能名称或提供的解释来进行说明。
运行时权限在用户需要在应用中执行操作时请求。
被拒绝的权限应当提供反馈和选项。
权限类型
请求前说明
预先请求
情境中请求
情境中说明
提供即时收益
仅请求相关权限

应用应当说明每个权限请求的原因,可以通过功能名称或提供的解释来进行说明。
运行时权限在用户需要在应用中执行操作时请求。
被拒绝的权限应当提供反馈和选项。
请求前说明
预先请求
情境中请求
情境中说明
提供即时收益
仅请求相关权限

权限分为 9 个组,允许用户通过一次操作授予该组内的所有权限。例如,授予“联系人”权限包括查看和编辑联系人。
权限 | 描述 |
日历 | 管理日历 |
相机 | 拍摄照片和录制视频 |
联系人 | 管理联系人 |
位置 | 当前设备位置 |
麦克风 | 音频录制 |
电话 | 拨打电话和管理通话 |
身体传感器 | 心率和类似数据 |
短信 | 发送和查看消息 |
存储 | 访问照片、媒体和文件 |
应用可能在安装后的任何时间请求访问信息或使用设备功能的权限。当用户需要在应用中执行操作(例如使用设备相机)时,应用可能在该时刻请求权限。
用户也可以在安装应用后的任何时间,从 Android 设置中允许或拒绝任何应用的权限。

应用请求权限示例
用户认为与应用功能相关的权限更可能被授予。以下请求模式将帮助你根据以下因素决定何时以及如何请求权限:

应预先请求关键权限。辅助权限可以在情境中请求。
无论哪种权限,对于不明确的权限都应提供有关权限内容的说明。

仅在首次启动时请求关键和明显的权限。因为用户期望消息应用请求短信权限,预先请求是有意义的。

对于非关键权限,等到调用功能时再请求权限。当用户想要使用某项功能时,他们更可能授予该功能所需的权限。

对于不那么直观的非关键权限,在情境中进行解释有助于提高用户对权限的理解。

提供即时收益,让用户觉得接受权限是合理的。
当一个功能需要多个权限才能工作时,只请求这些权限,不要请求额外的权限。
每当权限被拒绝时都应提供反馈。由于拒绝权限可能导致功能无法按预期工作,因此每当权限被拒绝时都应当向用户解释。
权限拒绝以以下两种方式之一发生:
为确保需要权限的功能始终按预期工作,应用应说明所需的权限并提供允许权限的方式。

Snackbar 显示需要使用音频功能所需的权限。
如果应用因关键权限被拒绝而无法运行,请解释为何必须允许该权限,并提供按钮打开设置以便用户允许。

屏幕说明应用需要权限才能运行,并提供指向设置的链接以允许该权限。