这是第一篇关于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