以前总认为坚持会让我们变强大,但是长大后发现,让我们强大的,是放下。
生活也许就是这样,多一分经验便少一分幻想,以实际的愉快平衡现实的痛苦。
按照百度地图开发指南的说法,目前在国内主要采用的是Gradle集成方式。
曾记否,当年接百度地图还需要引入.so库… (更重要的是,那一年我还年轻…)
需要我们注意的是,Gradle依赖时可能会出现多个组件冲突的问题,百度地图官方也给我们提供了解决方案:
密钥的获取,请点击这里查看:注册和获取密钥
重点提一下,有两种方式设置密钥(任选其一):
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="AK" >
meta-data>
LocationClient.setKey(AK);
第一步:
需在AndroidManifest.xml文件中Application标签中声明service组件
第二步:
<!-- 这个权限用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<!-- 这个权限用于访问系统接口提供的卫星定位信息-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<!-- 获取运营商信息,用于支持提供运营商信息相关的接口-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<!-- 访问网络,网络定位需要上网-->
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
在这里,我们需要特别注意这两个权限是需要动态获取的,否则将会出现定位失败的问题 —— 经典的4.9E-324错误 可以从 定位返回码查看相应的错误码含义。
<!-- 这个权限用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<!-- 这个权限用于访问系统接口提供的卫星定位信息-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
我们可以使用 EasyPermissions 来进行权限管理。
PS: 关于隐私合规问题