You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Android 12系统中复现位置权限申请的指定报错场景

Android 12 位置权限申请规则答疑

你测试的结果是正常的,并不是官方调整了规则,而是你看到的规则描述遗漏了适用前提:

原规则中「不可单独申请ACCESS_FINE_LOCATION、必须和ACCESS_COARSE_LOCATION一起申请」的限制,仅适用于**同时申请后台位置权限ACCESS_BACKGROUND_LOCATION**的场景,单独申请前台位置权限时不受该规则限制。

具体规则细节如下:

  • 仅申请前台位置权限时,单独申请ACCESS_FINE_LOCATION完全符合系统要求,Android 12及以上系统会正常弹出权限选择弹窗,提供「精准位置」「模糊位置」两个选项供用户选择,不会忽略请求,也不会打印错误日志,这就是你测试时功能正常的原因。
  • 当你需要申请后台位置权限时,必须同时申请ACCESS_FINE_LOCATION + ACCESS_COARSE_LOCATION + ACCESS_BACKGROUND_LOCATION三个权限,放在同一次运行时请求中发起,此时如果缺少ACCESS_COARSE_LOCATION,系统才会忽略请求并打印对应的错误日志。

最佳实践建议

为了避免不同场景下的兼容问题,不管是否需要申请后台位置权限,都建议申请ACCESS_FINE_LOCATION时同步携带ACCESS_COARSE_LOCATION:

  • 不会对用户选择造成影响,用户依旧可以自主选择授予精准还是模糊位置权限
  • 可以兼容所有场景,避免后续新增后台位置需求时出现权限申请失败的问题
  • 无需额外适配不同Android版本的权限逻辑,降低代码维护成本

内容的提问来源于stack exchange,提问作者Mathias

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 04:06:03