问题:
1,有人反馈点位有大量重复的,打开源码看了一下日志,高德定位只要离开APP,打开其他APP后隔一段时间就开始定位错误,信息如下:
错误码: 13
错误描述: 定位失败,由于未获得WIFI列表和基站信息,且GPS当前不可用,建议开启设备的WIFI模块,并将设备中插入一张可以正常工作的SIM卡,或者检查GPS是否开启;如果以上都内容都确认无误,请您检查App是否被授予定位权限
2,离开自己的APP后,显示的定位信息,时间和点位都是不变的
分析:
根据描述,唯一可以查看的就是权限问题,然后进入应用的权限看下定位,看到的是仅使用期间允许被选中,但印象中明显记得有个"始终允许"选项,这个怎么没有呢,故找到原因
解决:
1,由于项目的compileSdkVersion>=29,所以需要更改定位的后台权限,分别在AndroidManifest.xml和动态权限中配置下,本步骤解决了离开APP后定位错误码13的问题
AndroidManifest.xml文件中:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
动态权限中:
//将如下权限放入自己的动态权限代码中
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_BACKGROUND_LOCATION,
2,离开自己的App后定位的时间和点位保持不变,这时时间可改成自己生成,关于不持续定位问题,可以通过service,然后尽量保活即可