关于如何集成高德地图的定位,这里不再说了,高德地图官方文档上已经描述的很详细,这里主要说说,我们测试的时候定位正常,但有部分用户会反映定位不了,如何处理这类情况。

减少用户定位失败,需从下面几个方面进行分析:
1、将高德SDK升级到最新版本,首先看下面一组统计,这是通过友盟统计,分析的到每天定位失败的人数。
App中使用高德定位服务,少部分用户会反映定位不了
从折线图中可以明显的发现,从1号开始定位失败的人数明显下降,其中一部分原因是将SDK升级到最新的版本,另一部分原因后面会分析到。
目前高德地图支持远程依赖添加库文件的方法,能自动保持最新的版本。
在build.gradle中添加如下
compile 'com.amap.api:search:latest.integration'
compile 'com.amap.api:location:latest.integration'

2、权限问题导致的定位失败。可能你会有疑问,代码中已经运行时权限申请,为啥还会因为权限导致定位失败checkSelfPermission检查是否需要获取权限,这个方法,在部分手机上无法判断。用户未授予权限,会返回0已授予权限的状态
其中手机型号有:HUAWEICAZ-AL10、DOOVA6、H60-L02、PRA-AL00、HUAWEINXT-AL、LON-AL00、VTR-AL00,这里只列举部分机型。
解决方法,我们在高德地图定位回调的时候,进行错误码判断,当错误码返回12或13的时候,自定义一个dialog,用户确定后跳转到应用设置界面,手动开启权限。
cancelLoadingDialog();
int errorCode = location.getErrorCode();
String errorInfo = location.getErrorInfo();
errorInfo = errorInfo.substring(0errorInfo.indexOf(" "));
if (errorCode == 12 || errorCode == 13) {//缺少权限的定位,要用户手动打开
    showPermissionDialog();
}

App中使用高德定位服务,少部分用户会反映定位不了

3、因环境因素导致的定位失败,错误码为:2、4、6
2为Wifi性能不足;6是定位依据不足,可能有wifi,但是是移动wifi。因为定位是依靠基站+WIFI,获取不到无法计算位置。4是网络异常,这个时候你会好奇,提示网络异常,为啥自己的后台日志还能上传。这是因为,网络是有波动的,定位的时候时候有问题,但是上传的时候网络好了,高德地图那边有以下情况会报4(网络异错误):网络请求过程中异常,类似于unkonow host,无网络,网络差,请求超时

4、错误码7,key错误,有些手机概率性获取不到报名,偶尔会报key错误。当然,如果所有的手机都是key错误,那么一定是包名和key不一致。


相关文章:

  • 2022-02-16
  • 2022-01-09
  • 2021-07-25
  • 2021-11-28
  • 2022-01-23
猜你喜欢
  • 2022-12-23
  • 2021-06-15
  • 2021-10-05
  • 2021-05-16
  • 2022-12-23
  • 2021-05-15
相关资源
相似解决方案