標籤:
app 應用中,大多數應用都具有定位功能,百度定位就成了開發人員的整合定位功能的首選,最近也在做定位功能,但是發現百度真是個大坑啊, sdk 具名更新了,相關代碼卻不更新,害得我花費了很長時間來研究,今天來給大家分享下 Android 整合百度地圖要注意的事情,這裡只是整合了定位和地圖展示功能,其他功能還未涉及,先看下:
接下來介紹一下 Android 整合百度地圖的步驟:
首先登陸百度開發平台,在我的應用程式中建立應用,然後你會看到如下介面:
根據它的要求填寫相關資訊,這裡的安全是有 SHA1和包名組成的,將 SHA1和包名填寫完成之後會自動產生,報名肯定都知道如何獲得, SHA1的擷取方式如下:(android studio)
mac 版:
開啟 android studio 的 Terminal, 在裡面輸入命令列
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
按斷行符號即可會的 SHA1;
window 版:
WIN+R 開啟“運行” 輸入 CMD 斷行符號
CD C:\Program Files\Java\jdk1.7.0_71\bin (JDK安裝路徑)
keytool -list -v -keystore c:\users\your_user_name.android\debug.keystore -alias androiddebugkey -storepass android -keypass android
例如:keytool -list -v -keystore c:\users\Administrator.android\debug.keystore -alias androiddebugkey -storepass android -keypass androidand 然後就看到SHA1了
如果實在不行,可以通過一個工具來擷取,這個工具還可以檢測你產生的 key 是否正確,點擊擷取工具
該工具是我在網上找的,在這裡感謝一下, 下載完成並安裝到手機裡後,點擊剛才安裝的工具,它會將手機中的所用應用都檢索出來,然後點擊你要擷取 key 的應用,出現如下畫面:
這裡的 SHA1就是你想要的,並且還可以將你之後獲得 key 添加到這裡檢測下是否正確
點擊提交以後你就會在你的應用列表中擷取你要的 key 了.接下來就是看下如何將百度地圖整合到你的項目中.
進入首頁-下面的 android 開發-任一個功能-左下角的相關下載-自定下載,會出現如下介面:
你想要整合什麼功能,就把哪個功能選中,在這裡選擇下載開發包,開發包裡有你要整合相關功能的 jar 包,本人不建議下載範例程式碼,就像我開篇提到的,百度地圖的sdk 已經更新了,但是範例程式碼還是舊版本的,如果你參考範例程式碼,會給你帶來很大的誤導的!!!!
將你剛才下載下來的開發包裡面的東西複製粘貼到你項目中的 libs 下, 如果你用的 android studio 千萬別忘了要在 build下添加
sourceSets { main { jniLibs.srcDirs = [‘libs‘] } }
然後就是配置你的 manifest 檔案:
首先是許可權:
<!-- 這個許可權用於進行網路定位--> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission> <!-- 這個許可權用於訪問GPS定位--> <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.READ_PHONE_STATE"></uses-permission> <!-- 寫入擴充儲存,向擴充卡寫入資料,用於寫入離線定位元據--> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <!-- 訪問網路,網路定位需要上網--> <uses-permission android:name="android.permission.INTERNET" /> <!-- SD卡讀取許可權,使用者寫入離線定位元據--> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>
然後是百度地圖的服務:
<service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote"/>
最後一個最重要的是配置特有的 key,
<meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="" /> //key:開發人員申請的key
將你剛才在百度平台上擷取的key 添加到這裡即可
接下來就是在 Demo 中進行定位與地圖展示,在我的 demo中寫的很詳細了,相關注釋也有,可以下載下來看下,這裡不再贅述,要注意的是在整合地圖展示的功能時,發現運行會報錯,那是因為沒有初始化:
SDKInitializer.initialize(getApplicationContext());
並且該方法要添加在 setContentView() 方法的前面才有效,所以我們選擇將該方法添加到 application中即可.
QQ技術交流群:190088567
項目:
http://download.csdn.net/detail/xiaoxin_android/9493348
Android 開發之整合百度地圖的定位與地圖展示