问题:华为mate10一直在申请百度定位的时候出现此问题并且定位权限和定位服务都打开的情况也是返回这个参数 明显没有定位成功,其他手机暂时没有出现(只要打开定位权限就会立即定位成功)

解决:在定位之前加入读取手机状态的动态权限申请并在配置文件中加入配置

 

总结一下,在Android6.0以上需要在配置文件中 加入这个权限:<uses-permission android:name=“android.permission.READ_PHONE_STATE” >    </uses-permission>  并且在代码中要动态申请

PermisionUtils.checkPermission(this, “android.permission.READ_PHONE_STATE”,6);这个权限后,开启百度定位才会定位成功

就导致了定位结果是4.9E -324的问题,害得我搞了半天,加上后就正常获得定位结果了;然后我去掉这行,结果又不正常了,可以得出结论,是这行影响到了定位的结果。

 

原因分析:在一部分手机中 手机状态默认是允许的所以直接给定位权限就可以直接定位,在mate10的手机中需要先申请通过手机状态权限后再打开定位权限才能定位成功。综合分析是因为百度定位连网后,因为它会下载地图数据到你的手机所以要开启此权限,百度定位这个坑有点大,希望大家以后注意。

 

 

使用百度定位,需要在AndroidManifest 文件中配置如上权限,其中 ACCESS_COARSE_LOCATION ,ACCESS_FINE_LOCATION ,READ_SETTINGS,WRITE_EXTERNAL_STORAGE。需要动态分配

 

版权声明:本文为Code-Maniac原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/Code-Maniac/p/8568906.html