最新百度地圖支持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中使用),我已經運行經過了,但願各位開發者們也能順利運行。
歡迎關注本站公眾號,獲取更多信息