高德地圖SDK整合---定位篇
高德的API文件寫得很詳細,閱讀起來很流暢,在整合的時候大部分問題在文件中都已經有解決方案了,今天寫此文章的目的是為了記錄一下完整的整合方案,以便於自己下次能跟快速的在進行整合。
1.註冊成為開發者(略)
2.獲取Key
開啟應用管理
建立新應用
在應用中新增Key
key名稱
按照命名規範取就好了。
服務平臺
android
SHA1碼
釋出版和除錯版本注意事項請看這裡http://lbs.amap.com/faq/top/hot-questions/249
1.開啟AndroidStudio-對專案簽名(也可以按照高德的文件自行使用預設的debug簽名,只是我自己使用預設debug簽名的時候出了問題,就直接重新建立了KeyStrore)。
2.建立新的KeyStore
3.選擇存放KeyStore的位置
其它引數的意思:
Key store path下方的Password:KeyStroe的密碼
Key:
Ailas:Key的別名
Passwor:Key的密碼
Validity:key的有效時間
First and Name:姓名
Organizational Unit:所在公司或者組織的部門
Organization:公司或者組織
City or Locality:城市
State or Province:省
Country Code(XX):國家程式碼(中國的程式碼是:CN)
4.建立完成-點選Next
5.BuildType選擇release,然後點選Finish進行簽名
6.簽名完成後如圖所示進入Project Structure中
7.選擇app-signing-綠色加號,進行新增專案的簽名配置
8.填寫簽名配置
注:
Key Alias要與剛才你建立的Key的Alias名稱對應,Key Password要與此Key Alias對應。
Store File:Key所在的KeyStore,就是剛剛建立的KeyStore,Store Password就是對應的KeyStore的密碼。
9.進入BuildType–選擇剛剛配置好的”Signing Config” — debug和release都選擇的剛剛才的同一個配置,當然你也可以選擇不同配置,但是不同配置的話在高德控制檯新增Key的那個位置應該體現出來(不同的版本對應不同的SHA1碼)。
配置完成:點選OK
10.設定完成後工程的build.gradle檔案就會出現你剛才的“Signing Config”的對應配置。
11.通過Terminal控制檯獲取我們工程剛剛配置好的Key的SHA1值
通過cd命令進入jdk的bin目錄下(我的jk使用的是AndroidStudio自帶的jdk,在AndroidStudio檔案下的\jre\bin目錄中),如圖所示
12.在bin目錄下敲入keytool -list -keystore keystore的目錄—回車—輸入密碼—回車,然後接列出了此keystore中所有的key,找到對應別名的key的SHA1值就好了,我們剛才專案的key的別名是key1,那我們這裡就應該負責別名為key1的這個SHA1碼。
PackageName
獲取build.gradle檔案中的ApplicationId作為PackageName;如果沒有設定ApplicationId,請以AndroidManifest.xml配置檔案的package 屬性為準。
Key申請完成
3.開始整合
匯入SDK
高德開放平臺的文件寫得已經很清楚了,就不需要我多嘴了,請看連結http://lbs.amap.com/api/android-location-sdk/guide/create-project/android-studio-create-project。
我選擇的是用gradle來管理包,只需要再app的build.gradle的dependencies下加入implementation ‘com.amap.api:location:latest.integration’就OK了。
匯入SDK需要說明的幾個點,一些小型的完全可以避免的坑:
1.在AndroidManifest.xml檔案中設定key的時候,name的值不是你PackageName,而是com.amap.api.v2.apikey,可能只是我啥而已,如果有跟我一項傻的你注意避免這個坑哦,還有就是設定key的標籤一定要在application標籤內。
2..Android以上的Dangerous Permissions記得要動態申請,可以參考這篇部落格https://blog.csdn.net/qq_26440221/article/details/53097868。
使用
使用的話直接按照高德開放平臺的文件來就可以了,基本沒有坑http://lbs.amap.com/api/android-location-sdk/guide/android-location/getlocation。
定位使用結果