這是第一篇關於Android使用百度地圖的學習記錄,主要記錄:
1.在百度地圖開發者平臺上申請API Key。
2.在本身的應用中加入百度地圖的Android版SDK。
3.在本身的應用中顯示一個地圖。php
百度地圖開發者平臺地址:http://lbsyun.baidu.com/index.php?title=%E9%A6%96%E9%A1%B5。點擊界面的「申請密鑰」,進入界面以後,點擊「建立應用」按鈕。android
將應用類型選擇爲「Android SDK」,要填寫應用名稱、發佈版本SHA一、開發版本SHA1,因此我建議如今就建立好你的應用項目,也好查看所須要填寫的信息。在這裏個人應用名稱爲「百度地圖測試」,包名爲"com.zhangmiao.baidumaptest11_4"。
發佈、開發版本的SHA1的查看方式:git
輸入命令:keytool -list -v -keystore debug.keystore,回車
輸入密鑰庫口令:android(系統默認)回車。github
這就看到了開發版SHA1了。api
在Android Studio軟件中選擇Build->Generate Signed APK。點擊Next按鈕app
這裏能夠選擇Create New Key Store或者Choose Existing Key Store,選擇存在的KeyStore文件也是能夠的,直接選擇便可,這裏,我介紹一下建立新的KeyStore的步驟,點擊Create new Key Store按鈕,ide
Key store path:選擇KeyStore的文件路徑與名稱。
Password:密碼
Confirms:再次輸入密碼
Alias:別名
Password:key的密碼
Confirms:再次輸入密碼
Validity(years):密鑰的有效期
First and Last Name:你的名字
Organizational Unit:單位
Organization:組織
City or Locality:城市或者所在地
State or Province:省份
Country Code (XX):國家
填寫完成以後點擊"ok"按鈕,返回到了Generate Signed APK的界面,這個時候發現界面的Key store password、Key alias、Key Password已經自動填寫好了,
點擊"Next"按鈕,出現了Enter Master Password界面(有的可能不會出現這個界面),
佈局
填寫密碼便可,點擊「OK」按鈕,學習
Build Type的選項是release,還要記得勾選Signature Versions的選項。點擊Finish按鈕,到這裏開發版本的keystore文件就建立好了。測試
輸入命令:keytool -list -v -keystore 「建立的發佈版的keystore文件的地址」,回車。
輸入密鑰庫口令:前面設置的是什麼,這裏填寫什麼。
這就看到了發佈版SHA1了。
將查看到的發佈版與開發版的SHA1填寫進對應的輸入框中。而後點擊提交便可。
先下載百度地圖Android版的SDK:下載地址:http://lbsyun.baidu.com/index.php?title=androidsdk/sdkandev-download,點擊自定義下載,勾選本身須要的功能,點擊開發包下載便可。
下載完成以後,解壓壓縮包,將libs裏面的文件所有放入本身項目的libs文件夾下。在項目的build.gradle中加入如下語句:
android {
...
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
}
這樣就在你的項目中引入了百度地圖的API了。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <com.baidu.mapapi.map.MapView android:id="@+id/map_view" android:layout_width="match_parent" android:layout_height="match_parent" android:clickable="true" /> </LinearLayout>
在AndroidManifest.xml文件中,爲Application添加api_key
<application ...> <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="在百度地圖開發者平臺界面查看本身應用的(訪問應用)AK"/>
public class MainActivity extends AppCompatActivity { private MapView mMapView = null; private BaiduMap bdMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); SDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.activity_main); mMapView = (MapView) findViewById(R.id.map_view); } @Override protected void onResume() { super.onResume(); mMapView.onResume(); } @Override protected void onPause() { super.onPause(); mMapView.onPause(); } @Override protected void onDestroy() { super.onDestroy(); mMapView.onDestroy(); MapView.setMapCustomEnable(false); mMapView = null; } }
在AndroidManifest.xml中添加如下權限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.CALL_PHONE" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
如今就能夠運行程序了,能夠看到出現地圖了。
代碼地址: https://github.com/ZhangMiao147/BookCode_TheFirstLineOfCode/tree/master/baidumaptest11_4