一、前言
大家都知道,谷歌原生的Location获取定位拿到的经纬度都是为0,捣鼓了很久还是 无效,当然不排除有些大神能够获取正确的经纬度,反正我是没有成功过。这是我第二次在项目中用到定位,还是用的百度地图,也可以用高德,看个人爱好和项目需要。百度地图SDK一直在迭代更新,需要的配置或者so文件也一直在更新,这次,我要分享的是,在仅仅获取经纬度的需求下,我的一些心得记录。
二、流程
1.注册百度开发者账号,获取密钥
请参考官方说明注册和获取密钥,
页面的左边栏还有Eclipe和Android Studio配置
这项目用AS开发,我就说说AS配置
2.在manifest中配置
3.添加.so文件和jar包
添加SDK定位的相关包
在app的build.gradle增加语句:
sourceSets{
main{
jniLibs.srcDirs =['libs']
}
}
遇到的问题:
NetWork location failed because baidu location service can not decrypt the request query, please check the so file !
解释:网络位置失败,因为百度位置服务不能解密请求查询,请检查SO文件!
https://blog.csdn.net/chen364567628/article/details/79066220
so文件统一存放在app\libs\armeabi路径下
如果so文件检查到位置正确,可尝试重启AS,rebuild project。
三、体验总结
1.离线/联网定位的区别
离线定位可获取经纬度,但获取不到国家城市街道位置等具体信息(偶然情况也有定位失败的问题),在线定位all ok。
2.离线联网切换的变化
离线切换到联网正常,但联网切换到离线定位获取的信息还是联网时的数据。
网友评论