今天在学习百度地图adnroid SDK的时候,发现经纬度定位都是4.9E-324。多方查证,最后在这篇博客找到方法。
https://blog.****.net/majissa/article/details/55097694
问题1 :关于百度地图开发的时候,android studio直接调试的时候没出现地图,只出现格子的问题
导致这个问题是因为,没有在百度控制平台输入开发版的SHA1,并且要注意,如果换了一台电脑获取重装了系统,或者重新安装了开发软件都要重新获得开发版的SHA1,否则无法正确显示地图,只会显示出格子。
问题2 :关于百度地图打包后,不法正常显示出地图的问题
导致这个问题可能性有两种:
(1)你的发布版的SHA1有错(生成的开发的SHA1的keystore不是打包的keystore)
(2)网络问题
问题3:百度地图定位总是定位到几内亚湾(非洲区域),即经纬度都是4.9E-324
导致经纬度不正确的情况有很多种,可以根据百度地图提供的API的getLocType(),得到获取定位类型,查看定位结果描述
针对我自己遇到的问题就是代码162,说明SO包加载不对,所以我重新更新一次so包,重新跑一遍就可以重新正确定位了!!!
以上是转载部分。通过上述方法,定位到我的错误是167.
返回值:
61 : GPS定位结果,GPS定位成功。
62 : 无法获取有效定位依据,定位失败,请检查运营商网络或者wifi网络是否正常开启,尝试重新请求定位。
63 : 网络异常,没有成功向服务器发起请求,请确认当前测试手机网络是否通畅,尝试重新请求定位。
65 : 定位缓存的结果。
66 : 离线定位结果。通过requestOfflineLocaiton调用时对应的返回结果。
67 : 离线定位失败。通过requestOfflineLocaiton调用时对应的返回结果。
68 : 网络连接失败时,查找本地离线定位时对应的返回结果。
161: 网络定位结果,网络定位定位成功。
162: 请求串密文解析失败。
167: 服务端定位失败,请您检查是否禁用获取位置信息权限,尝试重新请求定位。
502: key参数错误,请按照说明文档重新申请KEY。
505: key不存在或者非法,请按照说明文档重新申请KEY。
601: key服务被开发者自己禁用,请按照说明文档重新申请KEY。
602: key mcode不匹配,您的ak配置过程中安全码设置有问题,请确保:sha1正确,“;”分号是英文状态;且包名是您当前运行应用的包名,请按照说明文档重新申请KEY。
501~700:key验证失败,请按照说明文档重新申请KEY。
如果不能定位,请记住这个返回值,并到百度LBS开放平台论坛Andriod定位SDK版块中进行交流http://bbs.lbsyun.baidu.com/forum.php?mod=forumdisplay&fid=10 。若返回值是162~167,请将错误码、imei和定位时间反馈至[email protected],以便我们跟进追查问题
在这里类里我仅封装了定位部分,配置完成之后在onCreate里直接调用即可实现定位功能,我会稍后介绍在地图上标记位置。
可以看到错误167是因为没有位置信息权限,将权限打开即可。另,如果是模拟器调试,可能会失败,建议使用真机调试LBS功能。