http://lbsyun.baidu.com/java
進入百度地圖開放平臺,登陸百度帳號android
選擇應用類型爲Android SDKapi
發佈版SHA1,和開發板SHA1的獲取方法爲:安全
找到電腦上的.android路徑,通常都在C盤用戶目錄下,網絡
有的配置Android環境變量的話可能在SDK的目錄下app
而後打開Android Studio,打開Terminalide
進入到.android目錄下佈局
輸入 keytool -list -v -keystore debug.keystoregradle
密鑰庫口令不用輸入,直接回車ui
會顯示證書指紋,裏面有SHA1,直接複製就能夠
輸入SHA1和包名後,會自動生成安全碼
而後點擊提交,這樣咱們就生成了一個密鑰
而後在百度地圖首頁
接下來根據本身的項目需求來勾選相應的功能
點擊開發包下載,這就是下載好的開發包
以上就是百度地圖API的準備工做
————————————————————————————————————————————————————————
開發步驟:
將以前下載的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; }
注:最好使用真機運行