最新百度地图支持Fragment(注意事项)(转)
开篇:
老的百度地图一般都要继承MapActivity,这样不利于代码的可扩展性,再加上Fragment的流行,老的百度地图已经远远不能知足的你们的需求,因而新版百度地图问世了。它再也不须要继承MapActivity,开发者们能够随心而欲地去使用它们了。
注意事项:
一、若是要使用新的百度地图API,就要申请新的Key(老版本的百度地图对应老key,百度官方表示仍然可用)。
点击这里进入申请新key的网址(百度官方网址)
二、新Key机制:每一个Key仅且惟一对于1个应用验证有效,即对该Key配置环节中使用的包名匹配的应用有效。所以,多个应用【包括多个包名】需申请多个Key,或者对1个Key进行屡次配置。
点击这里进入新key的申请流程详解
三、BMapManager类中的方法public boolean init(MKGeneralListener listener)自2.4.1 版本起,key不用经过此接口传入,而是放入AndroidManifest.xm的mata-data中。
四、从官网中下载最新的百度地图API。这里面的demo能够用来作参考。
点击这里进入最新百度地图API下载的网址
五、等待准备工做完成以后,就能够正式开始最新百度地图的代码编写了。
点击这里进入"Hello World"demo的编写
必定要严格按照这个流程来作,
(1)添加须要的jar文件,so文件(必定不要忘了.so文件);
(2)添加权限,一个也不能少;
(3)最关键的就是Key的存放;后来我在运行代码的时候,老是提示受权key错误的信息,我尝试了不少办法都没有解决这个问题,以后我请个人同事帮我申请了一个key以后就行了,至于为何会这样我也不知道。若是你们在从此的开发中碰到这样的问题,首先要先检查这些流程有没有作到位,其次可让其余同事帮忙申请一下新的Key,申请新key必定要按照官网的流程来。
- <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="开发密钥">
- </meta-data>
六、还有最后一点最重要的地方,必定要加入服务。
<service
css
- android:name="com.baidu.location.f"
- android:enabled="true"
- android:process=":remote"
- android:permission="android.permission.BAIDU_LOCATION_SERVICE">
- <intent-filter>
- <action android:name="com.baidu.location.service_v2.6"></action>
- </intent-filter>
- </service>
七、定位的时候必定要注意:
LocationClient mLocClient= new LocationClient(getApplicationContext());
若是是写在Fragment里面就要写成 mLocClient = new LocationClient(getActivity().getApplicationContext());
不然定位监听函数onReceiveLocation不会执行。我就是在这里纠结了好久,希望你们不要重蹈覆辙。
后记:
只要你们严格按照这个流程来,新版百度地图是能够用起来的(固然能够放在Fragment中使用),我已经运行经过了,但愿各位开发者们也能顺利运行。
欢迎关注本站公众号,获取更多信息