2026年4月15日,Google Play 公布了位置权限(Location Permissions)政策更新。政策截止日期表把它列在访问敏感信息的权限与 API一行,截止日期是2027-01-27——与通讯录那一行同一天。已公布的句子很短:Play 将把位置按钮作为精确定位的推荐最小范围,以符合用户数据与敏感权限要求。若应用面向 Android 17(API 37)或更高,却仍为「搜附近」、单次分享坐标、给照片打地点或填地址而申请 ACCESS_FINE_LOCATION,Play 现在期望这类流程走位置按钮。KappS 这篇是政策操作说明,不能代替线上帮助页。
今天要解决的问题:盘点二进制和合并进来的 SDK 里每一处精确定位;把用途分成交易式(一次性、由用户触发)或持续的核心功能(导航、实时追踪);把交易式流程迁到 Android 位置按钮;若精确定位只通过按钮取得,就加上已公布的 onlyForLocationButton 标记;并准备所有申请 ACCESS_FINE_LOCATION 的应用现在都要填的 Play 控制台申报。请核对当前 Play 控制台帮助里的表单标签——本文只复述这些帮助页和 Android 位置按钮指南已经公布的内容。
Play已经公布的内容(截止日期、帮助、Android 17)
官方页面用不同篇幅描述同一截止日期。先看表格,再看专题帮助:
- 政策截止日期里日期为2027-01-27的一行:「为更好保护用户隐私,我们正在更新位置权限政策。我们将引入位置按钮,作为精确定位的推荐最小范围,以符合用户数据与敏感权限要求。公布于2026-04-15。」
- 2026年4月15日政策公告使用相同措辞,并指回政策截止日期页。Play 写明自该日起至少有30天开始更新——表上的执法日期仍是 2027年1月27日。
- 最小范围:前台位置访问与位置按钮是操作说明。它再次把 2027年1月27日写成所有应用必须合规的日期,并提供 Play 控制台里的30天自行延期。申请
ACCESS_FINE_LOCATION的申报表将在2026年11月开放。面向 Android 17+ 的执法预计在2027年1月下旬开始。 - 访问敏感信息的权限与 API及其预览页补充了 Android 17 规则:若精确定位只用于一次性、由用户发起的操作,必须实现位置按钮,并使用
onlyForLocationButton权限标记。预览页上仍有一条较旧的横幅写着「自 2026年10月28日起生效」。政策截止日期和最小范围文章现在写的是2027年1月27日——以这两处为准,不要沿用那条十月日期。
Android Developers 的 Play 政策时间表把同一句位置权限更新列在 2027年1月27日。
前台访问发生在应用打开且对用户可见时;后台访问发生在应用不可见时。本教程只谈前台 / 位置按钮这条路径。后台位置仍走单独的后台位置审核。位置按钮不是后台 API。
第一步:盘点每一处精确定位
不要先打开控制台,先看二进制和每一条合并进来的库。帮助的判断标准是:功能是否真的需要精确位置;若需要,它是一次性的用户操作,还是持续的核心功能。
核对真实产物,不要只看商店文案:
- 在合并后的清单以及依赖库清单中搜索
ACCESS_FINE_LOCATION、ACCESS_COARSE_LOCATION、ACCESS_BACKGROUND_LOCATION,以及若已存在的USE_LOCATION_BUTTON。 - 在代码和 SDK 文档中搜索融合定位客户端、上次已知位置、地理编码、地图镜头移动和「附近」查询。给每一处调用标上触发它的面向用户功能。
- 问清楚:如果只有城市级的粗略位置,功能还能不能用。最小范围文章列出的粗略位置够用的例子包括:本地新闻与趋势、区域活动、区域天气、「五英里内的商品」、「朋友在你所在城市」、在较大半径内显示最近门店的门店查找、城市级优惠,以及按大致地区设置语言或货币。
- 用户拒绝精确定位后,功能能否改走粗略位置、手动输入地址,或让用户在地图上点一个针?受限权限政策已经要求:用户拒绝时,应尽量提供合理路径。
- 该功能是否出现在 Play 商店列表里?持续申请
ACCESS_FINE_LOCATION必须对应用的主要目的或商店列表所宣传的主要产品功能必不可少。
若诚实的答案是「我们只在用户点一下时需要一个精确点」,就不要再把它当成长期运行时权限。那是位置按钮的工作。
第二步:区分交易式用途与持续的核心功能
对于面向 Android 17(API 37)或更高的应用,位置按钮是交易式(一次性)精确定位的必要最小范围。帮助列出的常见例子:
- 搜索附近——用户周围的商店、ATM、餐厅、停车位或滑板车。
- 一次性分享——把当前位置发给朋友,或单次自动填入当前地址。
- 位置标记——给用户正在发布的照片或社交帖附加地点。
- 地址选择器——帮助用户自动填入收货地址。
按钮只在单次会话内授予精确定位,应用会话结束后即失效。它只用于前台。它不能代替后台位置,也不能在用户离开该界面后继续当成长授权来用。
持续的前台精确定位在属于核心功能、且按钮或粗略位置做不到时,仍然允许。帮助在这一侧举的例子:
- 导航——驾车、步行或骑行的逐步路线指引。
- 实时追踪——跑步进度、向他人持续分享位置,以及应用处于活动状态时的连续测量或测绘。
同一页的 FAQ 写得很直白:只有在应用具备持续的核心功能(例如逐步导航)、且一次性按钮或粗略位置无法满足时,才可以继续使用标准的 ACCESS_FINE_LOCATION。你必须在 Play 控制台申报里说明理由。
无论走按钮还是走长期权限,两条已公布的禁令都适用:
- 不得仅为广告或分析申请位置权限。
- 设备位置数据不得出售。
不要自己发明第三类。「我们想要更准的广告分群」不是持续的核心功能。「用户点一次分享位置」也不是导航。
第三步:把交易式流程迁到位置按钮
Play 帮助和 Android 位置按钮指南描述的是同一个控件。按 Android 页面公布的路径使用 Jetpack LocationButton。该库被标为实验性、可能变更——问题请提到 Android issue tracker,锁定依赖版本前请重读现行指南。
已公布的集成要点如下——不要自行发明额外 API 或控制台按钮:
- 若应用面向 Android 17(API 37)或更高,且只包含需要会话式精确定位的功能,Play 政策要求使用位置按钮。
- 除标准位置权限外,还须声明系统远程渲染服务所需的
USE_LOCATION_BUTTON。 - 若精确定位只通过按钮取得,须在
ACCESS_FINE_LOCATION上加上已公布的onlyForLocationButton标记。Play 帮助「最小范围」一文的示例写成布尔属性:
<uses-permission
android:name="android.permission.ACCESS_FINE_LOCATION"
android:onlyForLocationButton="true" />
Android 开发者指南把同一标记写成 usesPermissionFlags 的值,并同时声明 USE_LOCATION_BUTTON:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"
android:usesPermissionFlags="onlyForLocationButton" />
<uses-permission android:name="android.permission.USE_LOCATION_BUTTON" />
以上两段就是目前线上页面公布的写法。以你正在对照的帮助文章和 Android 指南为准——本文不另造第三个属性名。Android 的说明:加上该标记后,应用不能再走更宽的精确定位权限;用户必须通过按钮才能分享精确点。
功能只需粗略位置时,声明 ACCESS_COARSE_LOCATION;Jetpack 示例若仍把它和精确定位并列,也可以一并声明。不需要精确时,优先用粗略位置。
Jetpack 会处理旧设备:在 Android 16 及更低版本上,库会回退到本地渲染的控件,保留你的布局,并触发标准的位置权限提示。这就是已公布的兼容路径——不是你为 API 36 另编的第二套权限策略。
然后按 Android 的设计限制检查界面:可以自定义颜色、描边、形状,以及一组预定义文案(「Use precise location」「Share precise location」等已列出的类型)。位置图标是强制的、不可自定义;字号由系统管理,以符合无障碍设置。
如果供应商 SDK 仍为「搜附近」或签到点击申请长期的 ACCESS_FINE_LOCATION,这正是 Play 要迁到按钮上的交易式模式。替换该流程,或替换该 SDK。
第四步:准备 Play 控制台申报
最小范围帮助写明:所有申请精确定位(ACCESS_FINE_LOCATION)的应用,都必须在 Play 控制台完成申报,说明为何需要它,以及为何位置按钮或粗略位置不够。申报表计划在2026年11月出现。本文不编造菜单路径,只用 Play 公布的名称——以你账号里实际出现的标签,以及该表单链出的帮助为准。
帮助写明表单会问:
- 哪些面向用户的功能需要
ACCESS_FINE_LOCATION?从已公布的列表中选择:搜索附近;一次性位置分享;实时追踪;由用户发起的位置标记;自动位置标记;个性化;导航;区域特定操作(地理围栏);附近设备(Android 11 及以下发现蓝牙/Wi-Fi 设备的旧情形);浏览器位置访问;网络诊断;或其他。若用途不面向用户或不在列表中,帮助要求选择「其他」。 - 说明为何
ACCESS_COARSE_LOCATION或 LocationButton 不够,以及为何仍需要持续的ACCESS_FINE_LOCATION。
在仍持有长期精确定位的构建上选择「搜索附近」「一次性位置分享」或「由用户发起的位置标记」,正是帮助所说的按钮型用途。这些行不是 Android 17+ 上跳过按钮的漏洞。
若剩下的精确定位路径只有按钮,申报应与清单一致:已设置 onlyForLocationButton、已声明 USE_LOCATION_BUTTON,也没有仍拿走更宽精确定位权限的残留库。
若导航或实时追踪确实需要持续的精确定位,先写清楚按钮或粗略位置为何做不到,再打开控制台。帮助给 11 月的行动项是:和团队确认 ACCESS_FINE_LOCATION 是否为核心功能所必需,并准备好从技术上解释最小范围路径为何不够。
2027年1月27日之后,范围内未合规的应用将面临执法。控制台公布了 30 天自行延期——延期不是永久例外。现有应用也不豁免:未满足 Android 17+ 位置按钮要求的更新可能被拒。
2027-01-27 之后什么会失败
Play 公布了后果。不要用坊间说法替换:
- 面向 Android 17+ 的交易式精确定位却不用按钮。搜附近、单次分享、打地点或选地址,却仍申请长期
ACCESS_FINE_LOCATION,正是最小范围文章称为必须使用按钮的情形。 - 粗略位置就够用,却申请精确定位。
ACCESS_FINE_LOCATION的资格,只留给按钮(Android 17+)或ACCESS_COARSE_LOCATION(所有版本)无法充分支持的功能。 - 申请了
ACCESS_FINE_LOCATION却没有申报。2027年1月27日之后,范围内未合规的应用将面临执法。2026年11月的表单就是用来说明仍保留的持续用途。 - 仅为广告或分析申请精确定位,或出售位置。帮助把这两项列为禁止,即使应用在其他方面符合持续访问资格。
- 把按钮当成后台位置的变通办法。按钮严格限于前台、交易式用途。后台需求仍须走后台位置审核。
- 把较旧的「2026年10月28日」横幅当成现行截止日期。政策截止日期和最小范围时间表现在写的是2027-01-27。排期发布前请重读这两页。
若你读完本文后,控制台又出现新的位置问卷,以该表单链出的现行帮助为准。本文不编造额外按钮、额外 API 类名,也不在已公布的2026-04-15(公布)、2026年11月(申报开放)和2027-01-27(政策截止日期 / 强制合规;面向 Android 17+ 的执法预计在该月下旬)之外再发明日期。
10分钟自检清单
- 列出每一处读取设备位置的功能。分别标成:粗略位置即可、交易式精确定位(按钮)、或持续的核心功能(导航 / 实时追踪)。
- 若某功能粗略位置即可,为该路径去掉
ACCESS_FINE_LOCATION,只保留ACCESS_COARSE_LOCATION。 - 若剩下的精确定位全是交易式,且目标是 Android 17+,就实现 Jetpack LocationButton,声明
USE_LOCATION_BUTTON,并在ACCESS_FINE_LOCATION上加上已公布的onlyForLocationButton标记。 - 若某功能确实需要长期精确定位,先写清按钮和粗略位置为何做不到——再打开控制台。
- 2026年11月的申报出现在 Play 控制台后,按实际上架的二进制勾选对应用途并完成申报。
- 确认商店列表只宣传与你仍在申请的访问相符的功能。不要仅为广告或分析申请位置,也不要出售位置数据。
- 在依赖 30 天自行延期之前,重读当前的政策截止日期和最小范围位置按钮文章。
一句话
若应用面向 Android 17+,且精确定位只用于用户的一次点击,则 Play 于 2026年4月15日公布、截止日期为2027-01-27的位置权限更新,要求使用Android 位置按钮(并加上已公布的 onlyForLocationButton 标记),而不是长期持有 ACCESS_FINE_LOCATION;只有在能申报导航或实时追踪这类核心用途、并说明按钮或粗略位置不够时,才可保留持续的精确定位。