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

如何在AndroidManifest.xml中配置适配Android7-12的后台定位权限

Android 7-12 定位权限Manifest配置指南

是否需要同时声明3项定位权限

要不要加全3个权限完全取决于你的应用定位使用场景,和系统版本适配没有强制绑定关系:

  • 仅在应用前台活跃时使用定位(比如打开页面才查当前位置、退到后台就停止定位):只需要声明ACCESS_COARSE_LOCATION、ACCESS_FINE_LOCATION2项权限即可,不需要额外加后台定位权限
  • 应用退到后台、锁屏状态下仍然需要持续获取定位(比如轨迹记录、位置打卡类场景):才需要加上ACCESS_BACKGROUND_LOCATION权限。该权限是Android 10(API 29)才新增的,Android 7-9系统会自动忽略不识别的权限声明,不会引发兼容性问题。

正确的Manifest配置示例

仅前台定位场景

直接在<manifest>标签下添加以下权限声明即可,覆盖Android 7到12全版本:

<!-- 粗略定位权限,全适配版本生效 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- 精确定位权限,全适配版本生效 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

含后台定位需求场景

如果需要后台定位能力,添加3项权限即可,可通过minSdkVersion规避代码lint提示:

<!-- 粗略定位权限,全适配版本生效 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- 精确定位权限,全适配版本生效 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 后台定位权限,仅Android 10及以上版本生效,低版本自动忽略 -->
<uses-permission
    android:name="android.permission.ACCESS_BACKGROUND_LOCATION"
    android:minSdkVersion="29" />

适配注意事项

  • Android 12(API 31/32)新增了近似定位选项,即使用户同意授权,若只申请ACCESS_COARSE_LOCATION,或用户手动选择仅给近似定位权限,应用只能拿到精度在1-3公里范围的模糊位置,要获取米级精确定位必须声明ACCESS_FINE_LOCATION
  • Android 11(API 30)及以上版本,后台定位权限不支持在应用内直接弹出系统申请框,必须先拿到前台定位权限后,再引导用户跳转到应用的系统权限设置页,手动选择「始终允许」才能拿到后台定位授权
  • 无真实后台定位需求不要随意声明ACCESS_BACKGROUND_LOCATION,主流应用商店对该权限审核非常严格,没有合理的使用场景说明会直接被拒审上架

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 11:33:16