应用可以利用位置数据为 Android 用户带去精彩丰富的移动体验,如搜索附近美食,跟踪跑步距离,行车导航等等。然而,位置数据同样也属于高度敏感的个人信息之一。我们想要为用户提供一种简单易懂的控制模式,方便他们管理与应用共享的位置数据。因此,随着 Android Q 的发布,我们给予了用户更多位置控制,并将这些控制交予给用户。我们很高兴看到开发者们在应用中挥洒创意,匠心打造卓越的位置体验,与此同时,我们也希望尽己所能,全力协助各位平稳过渡至新的位置管理模式
本文将针对以下三个问题展开深度探讨:
- Android Q 引入了哪些位置权限变更
- 您的应用将受到哪些影响
- 您又应该从何着手进行必要更新
- Android Q
https://developer.android.google.cn/preview
过去,用户在位置权限上只有两种选择,即允许或拒绝应用访问设备位置,而且一旦授予后,该权限并不会随应用状态的改变 (进入或退出使用状态) 而发生变化。Android Q 在此基础上新增了一个选项,允许用户选择只在应用使用期间,即当应用运行在前台时,与应用共享位置信息。这意味着 Android Q 用户可通过以下三种方式对位置权限进行管理:
- 始终允许: 应用可在任何时段获取位置信息
- 仅在使用期间允许: 应用只能在被使用时获取位置信息
- 拒绝: 应用无法获取设备的位置信息
部分应用和功能仅在使用时才需要访问设备位置,比如说,假如用户试图搜索附近餐厅,那应用只需在用户打开应用并进行搜索时,获取设备的地理位置即可。
但是其它应用的场景则略有不同,即使在非使用时段,它们仍旧需要持续进行定位。例如: 一些应用可为用户自动记录行驶里程,帮助他们进行报税,而且全过程无需用户参与。
在新的位置管理模式下,用户可自行决定设备共享位置数据的时段,同时防止应用获取不必要的位置信息。当应用请求访问权限时,屏幕会弹出如图所示的对话框,向用户显示新的权限选项。用户可点击设置 → 位置信息 → 应用权限,随时更改应用的访问权限。
轻松上手
我们深知这些变更可能会对您的应用造成影响。我们十分尊重开发者社区,而我们的目标是谨慎对待所有此类变更,因此,我们会从以下两方面入手,助力各位开发者应对新的位置管理:
- 在首个 Q Beta 版本中推出对开发者有影响的特性,给您预留充足时间对应用进行必要更新。
- 陆续发布更多学习资源,如开发者博客、开发者指南和隐私清单,为您提供更多细节内容。
如果您对这些学习资源有任何改进建议,欢迎随时向我们反馈!
- 隐私清单https://developer.android.google.cn/preview/privacy/checklist
- 向我们反馈https://developer.android.google.cn/preview/feedback
如果应用的目标平台 (targetSdkVersion) 为 Android Q 且包含需要 “始终” 访问设备当前位置的功能,请您在清单文件中添加新的 ACCESS_BACKGROUND_LOCATION
权限。如果应用的目标平台是 Android 9 (API 等级 28) 或更低版本系统,当您请求 ACCESS_FINE_LOCATION
或 ACCESS_COARSE_LOCATION
时,系统会自动为应用添加 ACCESS_BACKGROUND_LOCATION
权限。为了维持良好的用户体验,请您仔细设计应用,确保应用妥善处理权限受限的情况,即无法从后台访问设备位置或完全无法获取位置信息。
如果用户知道应用需要相应权限的原因,他们会更容易接受权限请求。另外,对于需要授予权限才能使用的功能,请您务必结合具体场景,选择恰当的请求时机: 当用户启用该功能或与之发生交互时,如正在搜索附近内容,再发起请求。最后,其您避免请求过多权限,也就是说,如果应用中的某项功能只需要 “使用期间” 权限,那就没必要请求 “始终允许” 权限。
原文出处:Android 谷歌开发者
作者: Jen Chai, 产品经理