四、android百度地图之导航(环境的配置)
五、android百度地图之导航(代码的拆分和工具类的封装)
大家好,通过前面三篇百度地图SDK的教程已经有不少同学脱离了苦海。然而在公司的产品需求下,老衲又一次踩进了粪坑。。啊呸,又一次踩进了百度导航的坑。不过,凭着咱程序员顽强的意志力和牛(ruo)逼(ji)的技术,我又一次干翻了百度的渣渣API和文档。这不,第一时间就来拯救你们了。
一、Jar包和so文件
首先我们需要去下载Jar包和so文件。为了防止出错,我建议大家直接下载demo,把里面的Jar包和so文件加载进自己的project里。下载后放入的结构如下图:
完成以上的添加后,需要在 build.gradle 里加上一句代码以完成对so文件的加载:
android {
......
ndk {
abiFilters 'armeabi'
}
}
二、文件的配置
导航和百度地图一样需要对 AndroidManifest 进行配置,由于我是地图和导航结合使用我就直接添加了都需要用到的权限,如果有单独使用其中一个的可以自行分离或者不用分离。
<!--允许程序打开网络套接字-->
<uses-permission android:name="android.permission.INTERNET" />
<!--允许程序设置内置sd卡的写权限-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!--允许程序获取网络状态-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!--允许程序访问WiFi网络信息-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!--允许程序读写手机状态和身份-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!--允许程序访问CellID或WiFi热点来获取粗略的位置-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!--用于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<!--用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<!--用于申请调用A-GPS模块-->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
<!--用于申请获取蓝牙信息进行室内定位-->
<uses-permission android:name="android.permission.BLUETOOTH"></uses-permission>
<!-- 开启蓝牙权限 -->
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"></uses-permission>
<!-- 快捷方式信息需要从setting中读取 -->
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<!-- 唤醒锁定 允许程序在手机屏幕关闭后后台进程仍然运行 -->
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<!-- 获取任务信息 允许程序获取当前或最近运行的应用 -->
<uses-permission android:name="android.permission.GET_TASKS" />
<!-- 读写系统设置 允许读写系统设置项-->
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<!-- 挂载文件系统 挂载、反挂载外部文件系统 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<!-- 百度定位 -->
<uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE" />
<!-- 获取模拟定位信息 -->
<uses-permission android:name="android.permission.ACCES_MOCK_LOCATION" />
<!-- 模拟GPS -->
<uses-permission android:name="android.permission.ACCESS_GPS" />
<!-- 连续广播 允许一个程序收到广播后快速收到下一个广播 -->
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<!-- 来电消音 处理拨出电话 允许程序监视,修改或放弃播出电话-->
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<!-- 修改声音设置 -->
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<!-- 录音 录制声音通过手机或耳机的麦克 -->
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<!-- 摄影机 -->
<uses-permission android:name="android.permission.CAMERA" />
权限配置完后,依旧需要对key和service进行配置,由于直接的文章有,这里不再贴出代码,具体请查阅一、android集成百度地图(android百度地图SDK系列),到此为止,百度导航的环境和配置就大功告成了,下一篇文章会是整个导航最核心的部分-对导航工具类的封装和代码的拆分。