1. 程式人生 > >Android 開發之集成百度地圖的定位與地圖展示

Android 開發之集成百度地圖的定位與地圖展示

jni andro vra ada 列表 shee alias content markdown

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 開發之集成百度地圖的定位與地圖展示