在应用程序中如何请求个人用户数据
用户必须明确授予权限给iOS和Android应用程序,这样应用程序才可以访问用户的私人数据。在过去,这两个移动操作系统关于应用程序权限请求是不同的,即在下载和安装过程中或在运行时的前期差异。然而,Android也在运行时需要的明确请求权限的方向前进,类似于iOS的权限请求模型。
应用程序请求权限无论是在在第一个应用程序启动时安装(安卓系统),还是在运行时安装,每个特定的权限都是必要的。
权限可以在iOS(在隐私状态下)设置应用时回顾和改变。iOS 10截图所示:
权限可以在设置应用程序时(在Android M开始的隐私和安全上)审查和更改。Android 7 / Nougat截图所示。
什么是私人和个人的数据?
一个用户的位置、联系人、日历、健康等等都是私人信息,应用程序必须显式地请求访问。应用程序通常要求以下主要权限。
- 应用程序在前台,或前台和后台时,访问位置服务(iOS)
- 近似或精确的地理位置(Android)
- 联系人或地址簿(iOS和Android)
- 日历(iOS和Android)
- 提醒(iOS)
- 照片(iOS)
- 蓝牙共享(iOS)
- 麦克风(iOS和Android)
- 语音识别(iOS)
- 相机(iOS和Android)
- 健康(iOS)
- HomeKit(iOS)
- 媒体库(iOS)
- 运动和健身(iOS)或身体传感器(Android)
- 短信和彩信消息(Android)
- 外部存储(Android)
- 设备和应用程序的历史:日志、转储、运行应用程序列表、Web书签和历史(Android)
- WiFi连接信息(Android)
在运行时请求权限
iOS
在iOS的权限应在运行时和需要时请求。然而,对于一些应用程序,权限的预先请求也是合理的。例如,一个简单的连接超级实用的应用程序需要访问联系人才能寻找重复的联系人。它可以显示一个屏幕来解释应用程序的功能,并在第一次启动时请求交互的权限。
Android
在安卓系统上,历史上的权限是嵌入在清单文件中,当用户从Google Play应用程序商店中下载应用程序时,将显示给用户。然而,权限可以在运行过程中并在需要的时候被请求,当一个设备运行的是Android 6.0(Marshmallow),并针对SDK 23和更高级的应用程序(即targetSdkVersion至少是23)。然而,还是有一些需要考虑的地方:
- 如果用户的设备运行的是低于Android 6.0(即低于棉花糖Marshmallow)的Android版本,用户就必须在下载期间授予权限以便继续安装。
- 如果你的应用程序的目标是SDK 22或更低,用户授予权限下载期间继续安装在下载期间授予权限以便继续安装。
- 如果用户的设备运行的是Android 6.0或更高(即Marshmallow、Nougat或更高),并且你的应用程序的目标SDK是23或更高,应用程序必须在运行时请求应用程序的权限。
- 不管有针对性的SDK,运行Android 6.0(棉花糖Marshmallow)或更高的用户可以允许和拒绝设置应用程序(隐私和安全性的前提下)的权限。
- 应用发行商必须考虑,无论是在设备上运行Android 6(Marshmallow)或更高的设置应用程序,当用户拒绝许可,还是当针对目标在SDK23或更高的应用程序运行时被问及的情况。
- 权限必须在有针对性的SDK或Android操作系统版本的清单中申报,并且在用户下载时显示。
当请求权限时的考虑因素
当我们请求为APP出版商列出的权限时,有相当多的考虑因素。
- 当应用程序清楚、绝对需要的时候,只有通过应用程序的权限请求才能访问个人数据。
- 提供一个令人信服的理由为什么该应用程序需要权限总是一个好主意,即使它是显而易见的。请求一个应用程序的权限时,清楚地传达给用户什么是可以期待的。在iOS中,你可以自定义字幕包括文本解释哪些文本的使用。例如,用于访问联系人指定一个在Info.plist中的关键NSContactsUsageDescription的自定义文本。
- 避免在启动时请求权限,除非你的应用程序没有特定的权限无法继续。
- 避免用大量不同的权限请求轰炸用户,一个接着一个。
- 如果你可以延迟请求权限,那么就在用户参与、被激活或它最有意义的时候请求权限。例如,延迟请求权限,直到用户使用了至少7次应用程序和/或创建了一些内容。
- 允许用户以交互方式和显式请求权限。例如,用户将更有可能在他们看到一个按钮“Let CoolApp access Microphone”并随着一个说明“通过给麦克风访问CoolApp,你可以记录你的声音和访问语音转换功能”时授予权限。另一例Periscope App,让用户在调用iOS API触发请求权限之前显式点击一个按钮。
- 没有正确的权限改变你的应用程序的可用性和经验。在设置应用程序,当权限被授予、被拒绝、最初被拒绝和后来被授予、最初被授予和后来被拒绝时的设计经验。
- 试着获得第一次的许可。对于那些已经明确拒绝给予许可的用户,有一个备用,你可以重定向设置应用程序,这样用户可以重新启用应用程序的权限。
- 检测是否要求许可是有意义的。例如,检查是否启用了位置服务,并将警报延迟到了一个更合适的时间,并提供了一个为什么要打开位置服务的说明。
- 我们以前写的权限。
改善应用权限< OLED
如同应用程序内购买在iOS App商店列出并且在用户下载应用程序之前对用户生效一样,应用程序商店应该以终端用户消耗的方法列出应用程序需要的权限清单。Google Play列出了应用程序需要的权限,但并没有列出来自APP出版商的说明。
应用程序发布者应该清楚地解释用户通过提供个人信息给你的应用程序能够获得什么样的价值。
设置应用程序应该列出提供隐私部分下的说明的应用程序发布者。例如,它可以清楚让用户了解为什么Health APP需要运动和健身的个人数据,而不是让用户知道为什么Waze和Nexar需要他们。
本文翻译自: