Android 10 权限说明 最后更新时间: 2022年04月19日
- Android 10 之前只有ACCESS_FINE_LOCATION和ACCESS_COARSE_LOCATION;
- Android 10 新增加了后台定位权限:ACCESS_BACKGROUND_LOCATION,该权限对应始终允许;老的权限:ACCESS_FINE_LOCATION和ACCESS_COARSE_LOCATION代表仅前台使用允许;
- 应用的targetSdkVersion<Q,谷歌提供了兼容性方案,只要应用申请了老的位置权限ACCESS_FINE_LOCATION或者ACCESS_COARSE_LOCATION,会默认请求ACCESS_BACKGROUND_LOCATION权限,动态授权弹框参考下面第一个图。
- 应用的TargetSdkVersion>=Q,如果应用必须要始终定位,可以只申请ACCESS_BACKGROUND_LOCATION即可,权限弹框参考下面第三个图;如果应用只需要申请前台定位,则只需要申请老的定位权限即可,具体授权弹框参考第二个图。如果都申请则出现三态权限弹框,参考下面第一个图。
5.如果用户选择仅前台使用允许,应用的页面退后台,通过启动前台服务让应用处于前台状态,必须把前台服务标为:foregroundServiceType=“location”,才能获取位置信息。
<manifest>
...
<service
android:name="com.amap.api.location.APSService"
android:foregroundServiceType="location" />
</manifest>