

如何向用户请求权限?我总结了6个正确方式
source link: https://www.uisdc.com/permission-application
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.


从 Android 6.0 开始,没有在安装时请求所有权限,而是引入了运行时权限模型,开发者可以控制应用何时以及如何请求权限。这如同你想邀某人出去约会,过早、过频繁或以错误的方式对你来说并不好。
本文我将详细介绍 Android 的运行时权限模型,并向你展示如何设计一个 UX 来请求你的应用程序所需的权限。权限的目的是保护用户的隐私,但当你请求权限时,你是在要求用户放弃一点隐私,因此,你需要提供明确且平等的利益以换取访问。运行时权限允许你在用户更了解你请求权限的原因和好处时,选择合适的时间请求权限。
更多权限设计方法:
运行时权限模型有利于保护用户的隐私,当你的应用程序请求权限时,Android 会显示一个对话框让用户接受或拒绝它,第一次请求权限时对话框不会显示“不再询问”复选框,只会在用户至少一次拒绝权限请求后显示它,你可以检查之前是否被拒绝过,并决定在何时提供更多教育。

从 Android 11 开始,如果用户在使用应用的过程中多次拒绝某项特定的权限,那么在你的应用再次请求该权限时,用户将不会看到系统权限对话框。该操作表示用户希望“不再询问”。
Material Design 分解了在两个维度上请求权限的不同方法。首先权限对你的应用程序的运行有多重要?其次,你请求它的原因有多清晰?根据这两个因素,建议你采用不同的方法来请求权限。

图片来源:Material Design
一、预先请求权限(Ask up-front)
如果某项权限对应用程序运行至关重要,并且显而易见为什么需要请求它。例如日历应用,拒绝日历权限会使应用程序无法运行,并且用户显然知道日历应用的用途以及请求日历权限的原因,因此不需要用任何不必要的解释来打扰用户,只需在用户首次启动应用时立即请求它即可。

预先请求权限
二、预先教育(Educate up-front)
如果某项权限对应用至关重要,但请求它的原因不是很清晰。例如信贷应用,为了准确评估用户的信贷资格、偿还能力和防范反欺诈,通讯录权限、通话记录权限、位置权限对于风控而言非常重要,建议请求权限之前对用户进行教育。

三、使用场景中请求权限(Ask in context)
如果应用中的某项次要功能需要权限,但请求它的原因很清晰,建议你在使用场景中请求权限。例如笔记应用允许用户使用语音或音频创建笔记,那么很明显为什么此功能需要麦克风权限,无需过早的请求它,以免用户负担过重,最好等到用户尝试使用该功能时,因为用户更有可能允许符合其预期的权限请求。

使用场景中请求权限
四、结合使用场景进行教育(Educate in context)
如果应用中的某项次要功能需要权限,并且请求他的原因不是很清晰,建议你结合使用场景进行教育。例如笔记应用允许用户与朋友协作,那么请求联系人权限可能是合理的,但它不是显而易见的,当用户调用该功能时,解释应用获得联系人权限后可为用户提供哪些好处,比如自动填充邮件地址,然后才请求联系人权限让用户授予它。

结合使用场景进行教育
五、处理权限请求遭拒情况
通过使用正确的方法,用户应该清楚应用请求权限的原因以及应用获得权限后可以为他们提供哪些好处。然而,这并不意味着用户一定会授予权限。如果用户拒绝了权限请求,建议采用以下做法:
- 在应用界面中突出显示因为没有获得特定权限而受限的功能所在的具体部分,例如在原本用于显示该功能的结果或数据的位置显示一条消息,让用户知道因缺少权限而无法使用该功能,帮助用户在权限和功能之间建立心理联系。
- 不要阻止界面显示,不要全屏警告消息,让用户根本无法继续使用应用。即使在权限请求遭拒后,应用也应尽可能提供最佳的用户体验。例如即使麦克风使用权限请求遭拒,仍应全面提高文本功能的易用性。
- 用户可能已经选中了“不再询问“复选框,应用可能会在用户未看到权限请求对话框的情况下受到拒绝,此时应用应该提供一个链接,链接到设备设置中用户可以打开权限的具体位置。
六、尽量减少权限请求
在应用中声明权限之前,请先考虑是否需要这样做,或者是否有替代方法可以在应用中支持该功能。因为如果应用声明权限,那么每当用户使用需要运行时权限的功能时,应用便不得不中断用户的操作,请求相应权限。然后,用户必须做出决定。如果用户不能理解您的应用为何请求特定权限,可能就会拒绝授予该权限,甚至卸载应用。下面介绍几个可以在不声明任何权限的情况下实现的用例:
1. 拍摄照片/录制视频
Android 为应用提供了相互通信的功能,让你可以将任务委托给其他应用。例如,如果你希望允许用拍照,但它不是应用的核心部分,可以考虑使用 Intent 请求相机应用拍摄照片并将其分享给你的应用,这样就不需要 CAMERA 权限。
2. 自动输入动态短信验证码
双因素身份验证流程中,动态短信验证码作为第二校验因素时,使用 SMS Retriever API(短信检索器)可以让应用自动执行用户身份验证,不需要用户手动输入验证码,不需要 READ_SMS 权限。
以上就是 Android 运行时权限模型和请求权限的一些方法,你可以针对何时以及如何请求权限设计完美的流程,从而最大程度的提高用户授予权限的可能性。
Recommend
-
223
如何画好断线图标?我总结了这4个规律 我要投稿 推荐:
-
5
设计该如何看待「抄袭」这件事?我总结了5个方面! 7天前 编辑: 土拨鼠作者:
-
9
如何做好搜索设计?我总结了三个原则! 作者:子牧先生 2022-02-22 09:58:09 搜索设计看似简单,展现形式上只有一个输入框和搜索按钮就可以了,但是里面隐藏了很多交互细节。最近工作中刚好有搜索相关的设...
-
9
如何做创新的设计?我总结了这六个方法!-51CTO.COM 如何做创新的设计?我总结了这六个方法! 作者:不一 2022-03-01 15:23:02 我们作为设计师一职在一个项目制的环境里,要产生颠覆行业的创新是...
-
7
如何构建一套 B 端栅格体系?我总结了五个方面! 随着硬件技术和互联网的不断发展,市...
-
7
Tabs 标签页又称选项卡(以下简称标签页),它是一种高效的屏幕空间利用手段,映射非常接近卡片的目录索引,用户可以基于索引标签,快速定位到目标中内容中去,这也是大多数用户来自现实世界的经验。在 Web 页面中,它的使用场景也较为简单,当页面的内...
-
7
在移动互联网的高速发展的今天,我们如何才能让 B 端产品在移动化时能更好的满足用户诉求与期望呢?本篇文章小编将以「门店通 – 汽配门店管理系统」作为案例,分析并总结B端产品移动化的设计思路。移动化的趋势随着移动场景...
-
3
编辑导语:产品设计应符合产品通用化、系列化、模块化的标准化发展要求。坚持创新和继承相结合的原则,在创新的基础上,提高产品设计的继承性,提高产品零件、部件的通用化程度。本篇文章作者为大家讲解如何构建有效的设计标准化体系。...
-
6
对于 UI 设计师来说,图标设计的能力至关重要,也是提升感官体验的重要方向。对于一些初入行业的
-
2
向用户请求权限的正确方式 张楚 2023-04-06 0 评论...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK