http://lbsyun.baidu.com/
進入百度地圖開放平臺,登錄百度賬號
選擇應用類型爲Android SDK
發佈版SHA1,和開發板SHA1的獲取方法爲:
找到電腦上的.android路徑,一般都在C盤用戶目錄下,
有的配置Android環境變量的話可能在SDK的目錄下
然後打開Android Studio,打開Terminal
進入到.android目錄下
輸入 keytool -list -v -keystore debug.keystore
密鑰庫口令不用輸入,直接回車
會顯示證書指紋,裏面有SHA1,直接複製就可以
輸入SHA1和包名後,會自動生成安全碼
然後點擊提交,這樣我們就生成了一個密鑰
然後在百度地圖首頁
接下來根據自己的項目需求來勾選相應的功能
點擊開發包下載,這就是下載好的開發包
以上就是百度地圖API的準備工作
————————————————————————————————————————————————————————
開發步驟:
- 配置百度地圖SDK
- 佈局界面
- 初始化SDK引用的Context全局變量
- 管理地圖生命週期
將之前下載的BaiduLBS_AndroidSDK_Lib解壓,並將裏面libs目錄中的兩個jar包複製到
Android Studio項目下libs目錄下
將libs目錄下的jar包添加到庫當中
點擊ok
同時在build.gradle中會生成工程所依賴的對應的Jar文件說明,代碼如下
dependencies{
implementation files('libs/BaiduLBS_Android.jar')files('libs/BaiduLBS_Android.jar')
}
在src目錄下的main目錄中創建jniLibs目錄
然後將百度地圖SDK中的lib目錄複製到剛剛創建的目錄
但有時候這樣工程並不會自動加載libs下的so文件,
需配置so文件的路徑爲該libs路徑,關聯所有地圖SDK的so文件,
即在app文件夾下的bulid.gradle加入代碼: jniLibs.srcDir 'libs' ,詳細代碼如下:
(在bulidTypes {} 結束後添加此段代碼)
sourceSets{
main{
jniLibs.srcDir 'libs'
//說明so的路徑爲該libs路徑,關聯所有地圖SDK的so文件
}
}
接下來在application中添加開發密鑰(AK)
<application>
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="開發者 key" />
</application>
添加所需權限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
//獲取設備網絡狀態,禁用後無法獲取網絡狀態
<uses-permission android:name="android.permission.INTERNET"/>
//網絡權限,當禁用後,無法進行檢索等相關業務
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
//讀取設備硬件信息,統計數據
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
//讀取系統信息,包含系統版本等信息,用作統計
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
//獲取設備的網絡狀態,鑑權所需網絡代理
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
//允許sd卡寫權限,需寫入地圖數據,禁用後無法顯示地圖
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
//獲取統計數據
<uses-permission android:name="android.permission.CAMERA" />
//使用步行AR導航,配置Camera權限
在MainActivity.java中的代碼如下
private MapView mMapView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//初始化地圖SDK,
//需要在setContentView(R.layout.activity_main);上面
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
//獲取地圖控件引用
mMapView = findViewById(R.id.bmapView);
//自4.3.0起,百度地圖SDK所有接口均支持百度座標和國測局座標,用此方法設置您使用的座標類型.
//包括BD09LL和GCJ02兩種座標,默認是BD09LL座標。
SDKInitializer.setCoordType(CoordType.BD09LL);
}
@Override
protected void onResume() {
super.onResume();
mMapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
mMapView.onPause();
}
@Override
protected void onDestroy() {
super.onDestroy();
mMapView.onDestroy();
mMapView = null;
}
注:最好使用真機運行