百度地图移动版API不仅包含构建地图的基本接口,还提供了本地搜索、路线规划、地图定位等数据服务
1.申请安全码
如:31:E1:62:E6:B6:0C:47:97:D0:12:AE:67:3C:76:02:E3:D3:41:06:70;com.myhome(SHA1+包名);
得到SHA1步骤--------打开命令行输入cd .android 进入到android签名目录 如:C:\Users\lenovo\.android
--------命令 "C:\Program Files\Java\jdk1.6.0_45\bin\keytool.exe" -list -v -keystore debug.keystore 密码是android 数字签名;包名 分号是英文的
--------自己的keystore就是自己设置的密码,debug默认密码是android.上面的路径是jdk下面的keytool工具,找到他就OK了
百度给的key----R71uEhgENKmCZtoATu3km7KNuhX3536V
2.创建工程 (一定要是安全码中的包名)
3.导包
>>libBaiduMapSDK_v3_3_0_15.so>>liblocSDK5.so>>baidumapapi_v3_3_0.jar>>locSDK_5.0.jar(还有个v7a的,可以加速)
4.加权限
<!-- 这个权限用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<!-- 这个权限用于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<!-- 获取运营商信息,用于支持提供运营商信息相关的接口-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<!-- 用于读取手机当前的状态-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<!-- 访问网络,网络定位需要上网-->
<uses-permission android:name="android.permission.INTERNET" />
<!-- SD卡读取权限,用户写入离线定位数据-->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>
<!--允许应用读取低级别的系统日志文件 -->
<uses-permission android:name="android.permission.READ_LOGS"></uses-permission>
5.配置
在application节点下配置
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="R71uEhgENKmCZtoATu3km7KNuhX3536V" /> 自己申请的key
6. <com.baidu.mapapi.map.MapView
android:id="@+id/mapview"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
7.模板代码
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initSDK(); //一定要写在setContentView之前
setContentView(R.layout.activity_hello_world);
}
private void initSDK() {
//初始化化地图引擎 校验KEY
SDKInitializer.initialize(getApplicationContext());//必须传递全局Context
IntentFilter filter = new IntentFilter();
filter.addAction(SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR);
filter.addAction(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR);
filter.addAction(SDKInitializer.SDK_BROADTCAST_INTENT_EXTRA_INFO_KEY_ERROR_CODE);
registerReceiver(new SDKBroaCast(), filter);
}
private class SDKBroaCast extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
String result = intent.getAction();
if (result.equals(SDKInitializer.SDK_BROADCAST_ACTION_STRING_NETWORK_ERROR)) {//网络错误
System.out.println("网络错误");
}else if (result.equals(SDKInitializer.SDK_BROADTCAST_INTENT_EXTRA_INFO_KEY_ERROR_CODE)) {//KEY 校验失败
System.out.println("KEY 校验失败");
}else if (result.equals(SDKInitializer.SDK_BROADTCAST_ACTION_STRING_PERMISSION_CHECK_ERROR)) {//KEY验证失败广播
System.out.println("KEY验证失败广播");
}
}
大功告成.
接下来跟着百度的api一起飞吧.