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

Android权限ACCESS_FINE_LOCATION文档不一致及兼容性问询

Android位置权限文档矛盾与跨版本兼容性问题

其他开发者是否遇到过此类矛盾?

确实有不少开发者反馈过这个文档不一致的问题。在Android 12(API 31)的部分早期版本中,系统处理位置权限请求时存在逻辑漏洞:如果仅申请ACCESS_FINE_LOCATION,部分设备会出现权限授予失败的情况,必须同时申请ACCESS_COARSE_LOCATION才能正常触发权限弹窗并完成授权。不过在Android 12的后续补丁版本以及Android 13及以上系统中,这个问题已经被修复,仅申请ACCESS_FINE_LOCATION就能正常使用蓝牙、WiFi扫描等依赖精确定位的功能。

同时申请两个权限对跨版本兼容性的重要性

  • 仅面向Android 13+版本:完全不需要同时申请两个权限。Android 13开始,系统明确将ACCESS_FINE_LOCATION作为蓝牙、WiFi扫描的唯一必要权限,申请该权限即可覆盖所有相关功能,且用户可以单独授予精确定位权限,符合你的需求。
  • 需要兼容Android 12及以下版本:
    • 对于未打补丁的Android 12早期版本,同时申请两个权限是必要的,否则可能出现权限无法授予的异常,导致蓝牙、WiFi功能失效。
    • 对于Android 11及以下版本,ACCESS_FINE_LOCATION本身包含了ACCESS_COARSE_LOCATION的权限范围,同时申请两个权限不会有负面影响——用户授予精确定位权限后,系统会自动同时授予粗略定位权限,但用户感知不到额外的弹窗,只会看到一个精确定位的授权选项。
  • 希望用户仅授予精确定位权限的处理方式:可以同时申请两个权限,但在权限回调中只检查ACCESS_FINE_LOCATION的状态。只要精确定位权限被授予,就能正常使用所有功能,无需关心粗略定位权限的状态。这种方式既兼容了Android 12早期版本的异常情况,又能满足你让用户仅授予精确定位的需求(用户选择“精确定位”时,系统会同步授予两个权限,但你实际只使用精确定位能力)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 18:35:13