模式 权限

权限

权限请求应当简单、透明且易于理解。

应用应当说明每个权限请求的原因,可以通过功能名称或提供的解释来进行说明。

运行时权限在用户需要在应用中执行操作时请求。

被拒绝的权限应当提供反馈和选项。

权限类型

请求前说明
预先请求
情境中请求
情境中说明
提供即时收益
仅请求相关权限

Material Design:清晰简单的权限请求

用法 Expand and collapse content An arrow that points down when collapsed and points up when expanded.

权限分组

权限分为 9 个组,允许用户通过一次操作授予该组内的所有权限。例如,授予“联系人”权限包括查看和编辑联系人。

权限

描述

日历

管理日历

相机

拍摄照片和录制视频

联系人

管理联系人

位置

当前设备位置

麦克风

音频录制

电话

拨打电话和管理通话

身体传感器

心率和类似数据

短信

发送和查看消息

存储

访问照片、媒体和文件

隐含权限

用户可能执行明确意图的操作,例如:

  • 拍照
  • 选择联系人
  • 开始通话或编写短信

在这些情况下,用户的操作清楚地表明了他们的意图,不需要权限对话框或授权。

使用意图从应用中请求操作。

运行时权限 Expand and collapse content An arrow that points down when collapsed and points up when expanded.

应用可能在安装后的任何时间请求访问信息或使用设备功能的权限。当用户需要在应用中执行操作(例如使用设备相机)时,应用可能在该时刻请求权限。

用户也可以在安装应用后的任何时间,从 Android 设置中允许或拒绝任何应用的权限。

Material Design 中的应用请求权限示例

应用请求权限示例

请求模式 Expand and collapse content An arrow that points down when collapsed and points up when expanded.

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

  • 权限对应用核心功能的重要性
  • 权限的清晰度
Material Design:预先请求关键权限

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

Material Design:提供友好欢迎并说明权限

请求前说明

如果你的应用有“新手引导”,可以用它来解释应用的功能以及为何需要请求额外的权限。

Material Design:首次启动时请求关键权限

预先请求

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

Material Design 中情境请求权限

情境中请求

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

Material Design:情境中说明非关键权限

情境中说明

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

Material Design:权限接受的即时收益

提供即时收益

提供即时收益,让用户觉得接受权限是合理的。

仅请求功能所需的权限

当一个功能需要多个权限才能工作时,只请求这些权限,不要请求额外的权限。

被拒绝的权限 Expand and collapse content An arrow that points down when collapsed and points up when expanded.

每当权限被拒绝时都应提供反馈。由于拒绝权限可能导致功能无法按预期工作,因此每当权限被拒绝时都应当向用户解释。

权限拒绝以以下两种方式之一发生:

  • 权限请求被用户拒绝
  • 权限被静默拒绝而没有警告,因为用户之前在权限请求中选择了“不再询问”

为确保需要权限的功能始终按预期工作,应用应说明所需的权限并提供允许权限的方式。

Material Design 中音频权限请求的 Snackbar

Snackbar 显示需要使用音频功能所需的权限。

关键权限

如果应用因关键权限被拒绝而无法运行,请解释为何必须允许该权限,并提供按钮打开设置以便用户允许。

Material Design:应用需要权限才能运行

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