发现最新版百度Android 定位SDK v6.1.3 网络定位bug

 

对于百度地图已经实在忍无可忍了,实验室两年以前的一个项目用到了百度地图,以前师兄毕业了,我来维护这个破项目,百度地图推出新版本出来后,老版本的api不能用了,不能做到向下兼容吗?换掉少量的api也就算了,居然整体风格都换了,
我得先学老版本的api看懂师兄留下的代码,再学新版本的api修改这个项目,这也没啥,然而你新版本官方demo怎么还留bug!!折腾一天后发现,这是百度Android 定位SDK的bug!!!

使用百度官网提供的demo学习时,发现一个bug
//        高精度定位模式:这种定位模式下,会同时使用网络定位和GPS定位,优先返回最高精度的定位结果;
option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);




定位结果:纬度:4.940656E-318经度4.940656E-318 (这个经纬度反正地球上是没有,也许火星上有,我读书少)


after各种折腾以后,after怀疑人生以后,我不再怀疑代码,我开始怀疑是不是这个版本定位sdk有问题,
百度api提供了还有以下两种定位模式,

//        低功耗定位模式:这种定位模式下,不会使用GPS,只会使用网络定位(Wi-Fi和基站定位);
option.setLocationMode(LocationClientOption.LocationMode.Battery_Saving);

//        仅用设备定位模式:这种定位模式下,不需要连接网络,只使用GPS进行定位,这种模式下不支持室内环境的定位。

option.setLocationMode(LocationClientOption.LocationMode.Device_Sensors);

我将代码改成最下面这种,只使用设备自带的gps定位;

改好以后,拿到室外,定位成功,


综上:新版百度Android 定位SDK v6.1.3 网络定位有bug,不过还好这个项目是外业采集设置站位用的,外面也没有wifi,基本也是采用gps定位。


和百度sdk工程师沟通后对方给出的解释是: wifi定位失败的原因是因为,周围wifi热点太少或者不稳定,或者是移动设备本身扫描热点的问题,导致不能进行wifi定位
posted @ 2016-07-22 19:40  梦尽落花  阅读(2161)  评论(0编辑  收藏  举报