Android Studio – 使用百度地图SDK教程
作者:lipeng32768
来源:CSDN
原文:https://blog.csdn.net/lipeng32768/article/details/51685081 一.Android Studio创建签名
我们在使用Android Studio进行应用的发布时要进行签名,此百度经验将通过一个应用的签名过程教大家如何签名。http://jingyan.baidu.com/article/a24b33cd7086d719fe002b8c.html
二.准备百度map需要的签名和包名
Android Studio 不想eclipse 那样可以直接看到签名,根据上一步的百度经验会生成一个 *******.jks 的文件 通过此文件并使用 jre 下的 keytool 来查看签名,
我的是 文件名是 debug.jks 放到E:\debug.jks, 使用cmd 定位到 C:\Program Files\Java\jre1.8.0_71\bin>keytool.exe 目录下 使用命令:
keytool.exe -list -v -keystore E:\debug.jks
接下来会提示输入动态口令,,如下图所示:复制下 SHA1: 1A:E3:3B:57:AC:59:1A:C4:16:84:36:99:33:5A:28:6D:29:1C:D8:8C
三、申请key
使用百度地图SDK需要密钥,具体流程请参考百度官方文档。
Key的申请地址为:http://lbsyun.baidu.com/apiconsole/key 导引手册:http://developer.baidu.com/map/index.php?title=androidsdk/guide/key
拿到访问应用(AK) 备用:
四.下载开发包
解压 下载下的压缩包如下图
五. Android Studio 使用百度地图SDK
新建一个工程:myapplication2
如图所示,将显示模式由 Android 调整为 Project。有的是上下框,我的是左右框,主要看小箭头,只要能看到app/libs 文件夹即可
拷贝解压后libs下所有的文件 ,到 libs 目录下
效果如图所示:
在 BaiduLBS_Android.jar 右键选择Add As Library…选项,也可以收到在app根目录下的
build.gradle 文件中添加一句 compile files('libs/BaiduLBS_Android.jar')
重点: 在把全部包导入之后
在build.gradle 文件中应出现如下
compile files('libs/BaiduLBS_Android.jar')
compile files('libs/IndoorscapeAlbumPlugin.jar')
compile files('libs/httpmime-4.1.2.jar')
另外在 android{} 下增加
sourceSets {
main() {
jniLibs.srcDirs = ['libs']
}效果如下图所示
六 在AndroidManifest.xml中添加开发秘钥和所需权限。
按照百度官方的教程
http://lbsyun.baidu.com/index.php?title=androidsdk/guide/hellobaidumap
第一步:创建并配置工程(具体方法参见工程配置部分的介绍);
第二步:在AndroidManifest中添加开发密钥、所需权限等信息;
(1)在application中添加开发密钥
<application>
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="开发者 key" />
</application>
2)添加所需权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
第三步,在布局xml文件中添加地图控件;
<com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" />
第四步,在应用程序创建时初始化 SDK引用的Context 全局变量:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//在使用SDK各组件之前初始化context信息,传入ApplicationContext
//注意该方法要再setContentView方法之前实现
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
}
}
注意:在SDK各功能组件使用之前都需要调用
SDKInitializer.initialize(getApplicationContext());,因此我们建议该方法放在Application的初始化方法中
第五步,创建地图Activity,管理地图生命周期;
public class MainActivity extends Activity {
MapView mMapView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//在使用SDK各组件之前初始化context信息,传入ApplicationContext
//注意该方法要再setContentView方法之前实现
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
//获取地图控件引用
mMapView = (MapView) findViewById(R.id.bmapView);
}
@Override
protected void onDestroy() {
super.onDestroy();
//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
mMapView.onDestroy();
}
@Override
protected void onResume() {
super.onResume();
//在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
mMapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
//在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
mMapView.onPause();
}
}
此时编译并运行工程
运行结果