制定明确的设备位置数据访问权限准则对于建立用户信任和维护生态安全至关重要。本文详细介绍了应用使用新 Android 位置信息按钮时须遵循的要求,以及前台设备位置信息(ACCESS_COARSE_LOCATION 或 ACCESS_FINE_LOCATION)的标准使用方式。如果应用在处于打开状态且对用户可见时访问位置信息,则属于前台访问行为。如果应用在对用户不可见时访问位置信息,则属于后台访问行为。
在某些情况下,我们会批准应用使用前台服务,这是一种独立的 API,可让应用在处于最小化状态且对用户不可见时也能访问位置信息。不过,此类应用需要经过单独审核,并且必须符合“前台服务权限”政策中列出的关键要求。
这对我们的位置信息权限政策来说意味着什么?对用户而言,前台访问位置信息是最透明的方式,有助于提升用户信任度,因此成为 Google Play 上的应用的首选方式。利用 Android 位置信息按钮可提供额外的隐私保护和控制,确保您的应用满足最小范围要求。
概览:位置信息访问权限的最小范围
为保护用户隐私,Google Play 要求所有应用仅请求获取提供核心功能所必需的最小权限范围。在确定设备位置信息权限范围时,请考虑以下维度:
- 精确度:如果无需使用精细准确的位置信息也能实现功能,请使用粗略位置信息 (
ACCESS_COARSE_LOCATION)。 - 持久性:对于一次性或不频繁的需求,应用必须通过位置信息按钮从“默认持久访问”过渡到事务性访问。
后台与前台:本文涵盖前台访问权限相关内容。如果您的应用需要在应用处于未使用状态时访问位置信息,请参阅后台位置信息要求。
可能需要粗略设备位置信息的使用情形示例:
- 本地化内容与探索发现
- 本地新闻资讯和热门趋势:提供“芝加哥新闻”或“旧金山热门趋势”无需知道用户的确切街道地址。
- 地区活动探索发现:查找某个城市或社区的节庆活动、音乐会或农贸市场。
- 粗略天气服务:无论用户是在家还是在三个街区外的咖啡馆,地区天气往往都准确一致。
- 社交与社区
- 本地市场:对于分类商品详情应用,展示“5 英里范围内”的待售商品即可为买家提供充足的实用信息,无需透露卖家的确切位置,除非卖家选择共享其位置信息。
- 常规“附近的人”功能:在社交应用中展示好友信息时显示“同城”,而不是在地图上提供实时位置标记。
- 实用程序与优化
- 店铺定位工具:显示全国连锁零售店或银行的最近分店/支行。尽管访问精确位置信息有助于提供“步行路线”,但使用粗略位置信息就足以展示半径 10 英里范围内距离最近的三家商店。
- 个性化与隐私权
- 有针对性的促销活动:针对在某一城市拥有多个营业地点的连锁杂货店提供优惠券。
- 语言和文化:根据用户所在的大致地区或国家自动设置应用语言或币种。
Android 位置信息按钮(在 Android 17 及更高版本上必须采用)
如果应用以 Android 17(API 级别 37)及更高版本为目标平台,那么对于“事务性”(一次性)使用情形,必须使用 Android 位置信息按钮作为符合最小范围原则的精确位置信息获取方法。
为什么必须使用位置信息按钮?
- 以隐私保护为先:仅针对单个会话授予精确位置信息访问权限,待应用会话关闭后,该权限会立即失效。
- 用户意图:打造清晰、可预测的体验,让用户确切知道应用会在何时以及为何共享他们的位置信息。
- 减少阻碍:化繁为简,让应用无需再为查找附近商店或标记照片等简单任务提供复杂的运行时权限对话框。
何时需要显示位置信息按钮?
如果应用以 Android 17 及更高版本为目标平台,那么对于仅需要在短时间内访问精确位置信息的事务性使用情形,必须使用位置信息按钮。常见示例包括:
- 搜索周边:查找用户周边的商店、ATM 机或餐馆。
- 一次性共享:在即时通讯应用中向好友发送当前位置信息。
- 标记位置:为用户发布的内容(例如照片或社交帖子)附加位置信息。
- 地址选择器:帮助用户自动填充配送地址。
实现示例(清单)
如果您的应用仅需要通过按钮访问精确位置信息,您必须使用 onlyForLocationButton 属性在 AndroidManifest.xml 中做出相应声明:
XML
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:onlyForLocationButton="true" /> |
如需了解技术方面的详细信息,请参阅 API 文档。
适用于精确前台位置信息权限的要求
如果应用需要获取 ACCESS_FINE_LOCATION 权限(且无需使用位置信息按钮)以便持久访问精确位置信息,则必须满足以下条件:
- 核心功能:应用必须获取此访问权限,才能实现其主要用途或应用商品详情中宣传的主要产品功能。
- 特定政策禁止行为:不得纯粹出于广告投放或数据分析目的请求获取位置信息权限,严禁出售设备位置数据。
Play 管理中心声明
只要应用请求获取精确位置信息 (ACCESS_FINE_LOCATION),就必须在 Play 管理中心内提供声明,详细阐述应用为何需要访问精确位置信息,并提供正当理由解释为何位置信息按钮或粗略位置信息不足以满足需求。
您需要在声明中回答以下问题:
1. 您的应用中有哪些面向用户的功能需要 ACCESS_FINE_LOCATION 权限?
下面的图表列出了各种使用情形、相应说明以及一些示例(并非详尽无遗)。如果您的使用情形不面向用户或未在下方列出,请选择“其他”。
|
使用情形 |
说明 |
示例 |
|
搜索附近区域 |
用于发现用户周围的地图注点 |
查找附近的餐厅、商家、停车位或可租用的电动滑板车。 |
|
一次性位置信息共享 |
与其他人或服务共享用户的当前位置信息 |
自动填写用户的当前地址或共享用户的当前坐标 |
|
实时跟踪 |
用于持续监控和实时显示位置信息 |
跟踪跑步者的进度、与他人共享实时位置信息,以及持续跟踪位置信息以用于测量、空间测绘和数据收集等目的。 |
|
用户添加的位置标记 |
用于为用户生成的内容附加位置信息 |
为照片添加拍摄地点标记,或为社交媒体帖子添加位置信息。 |
|
自动添加的位置标记 |
用于自动附加位置元数据 |
相机应用自动为照片添加位置信息。 |
|
个性化 |
在用户未发起搜索的情况下,自定义默认界面或内容动态 |
餐厅查找类应用默认显示用户周边的餐厅。 |
|
导航 |
用于提供精细导航路线,引导用户沿路线行进 |
驾车、步行或骑行路线 |
|
特定于区域的操作 |
用于在用户进入或离开特定区域(地理围栏)时触发相应操作 |
在用户到达杂货店时发送提醒,或在用户路过杂货店时提供优惠 |
|
附近的设备 |
在以 Android 11(API 级别 30)或更低版本为目标平台的应用中连接到附近的蓝牙/Wi-Fi 设备,此类情形下 Android 要求获取位置信息权限 |
与蓝牙音箱配对,或发现可用于投屏的智能电视 |
|
浏览器位置信息访问权限 |
根据用户请求,将精确位置数据中继到第三方网站或 Web 应用,以启用特定于网站的功能 |
浏览器将位置信息传递给零售网站,以自动填充送货地址 |
|
网络诊断 |
监控网络基础设施和信号表现、绘制分布图,或排查相关问题 |
生成 Wi-Fi 热图、识别移动网络“信号盲区”,或分析服务区域内的信号强度和基站性能 |
|
其他 |
2. 说明为何 ACCESS_COARSE_LOCATION 或 LocationButton 不足以满足需求,以及您为何需要持续的 ACCESS_FINE_LOCATION 权限。
后续步骤与最佳实践
- 审核代码:明确您的应用是否以 Android 17 及更高版本为目标平台,以及应用是否使用精确位置信息来执行一次性任务。
- 实现标志:如果需要使用该按钮,请将
onlyForLocationButton标志纳入清单。 - 检查界面:确保您的按钮遵循 Android 设计指南,以便打造一致的用户体验。
常见问题解答 (FAQ)
位置信息按钮要求何时开始强制执行?
现有应用能否免于遵守这些要求?或者能否获得宽限期,直到发布更新为止?
我能否继续使用标准 ACCESS_FINE_LOCATION 权限?
位置信息按钮与精确位置信息权限的主要使用情形是什么?
位置信息按钮能否用于后台位置信息?
相关内容
- 详细了解如何在 Google Play 管理中心内声明权限。
- 如需详细了解如何构建位置感知应用,请访问 Android 开发者网站。
- 如需详细了解权限以及使用权限的工作流,请访问 Android 开发者网站。
- 如需详细了解隐私权最佳实践,请访问 Android 开发者网站。
- 阅读我们的用户数据政策。
如需详细了解如何始终遵守 Google Play 设备位置信息政策,请访问应用开发者学院。