在android的开发过程中,很多app都少不了使用第三方的SDK来实现某些功能,接下来我们就来使用一下第三发的sdk来实现百度地图吧
http://lbsyun.baidu.com这是百度地图SDK的官网
进入以后我们余姚一个百度账号进行登录,之后找到控制台,点击创建应用,名称我的是写BaiduMap,应用类型我们选Android SDK,启用服务默认全选,发布版SHA1和开发版SHA1我们怎么写呢,它下面有个 查看详细配置方法 ,点进去,这里面有详细的介绍教你怎么拿到发布版SHA1和开发版SHA1
开发版的SHA1我们选这个指令
调试版本使用指令:keytool -list -v -keystore debug.keystore
然后它会要我们输入密钥
密钥:android
之后就可以拿到开发版的SHA1
发布版SHA1我们在Android Studio上可以直接生成一个,操作如下
我们点击Create new 创建一个新的
保存我就放在桌面了,之后就可以在桌面看到这个文件了
在控制台输入这个指令,然后再把刚刚生成的文件拖进去,按回车
它会提示要你输入密钥,密钥就是刚刚你在创建这个文件时所输入的密码
之后就可以拿到发布版SHA1,之后就是要填写包名,这个包名一定要和你待会创建的包名一致
之后点击提交,这样我们就搞定了应用的创建
然后我们在官网百度地图SDK里面找到产品下载,我们下载SDK,点击自定义下载
然后下载开发包,解压,之后我们创建工程,记得包名一定要一致
然后我们跟着官方指南AS的配置完成我们的as配置
根据提示一步一步配置好
如果这个弄不了的话我们也可以直接手写
应用混淆这部分一定要进行官方的要求配置
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
false改为true
之后第一步 配置AndroidManifest.xml文件
1.在中加入如下代码配置开发密钥(AK)
在我的应用哪里可以找到对应的AK,复制粘贴就好了
<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="android.permission.READ_PHONE_STATE" />
<!--读取系统信息,包含系统版本等信息,用作统计-->
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<!--获取设备的网络状态,鉴权所需网络代理-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!--允许sd卡写权限,需写入地图数据,禁用后无法显示地图-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!--这个权限用于进行网络定位-->
<uses-permission android:name="android.permission.WRITE_SETTINGS"
tools:ignore="ProtectedPermissions" />
<!--这个权限用于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!--获取统计数据-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!--使用步行AR导航,配置Camera权限-->
<uses-permission android:name="android.permission.CAMERA" />
<!--程序在手机屏幕关闭后后台进程仍然运行-->
<uses-permission android:name="android.permission.WAKE_LOCK" />
3.在布局文件中创建baidumap
<com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true" />
4.新建一个BaiduMapApplication.java,在其onCreate方法中完成SDK的初始化
在AndroidManifest.xml文件中声明该Application
5.创建地图Activity,管理MapView生命周期
package com.baidumap;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.MapView;
public class MainActivity extends AppCompatActivity {
private MapView mMapView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView (R.layout.activity_main);
//获取地图控件引用
mMapView = findViewById(R.id.bmapView);
}
@Override
protected void onResume() {
super.onResume ();
mMapView.onResume ();
}
@Override
protected void onPause() {
super.onPause ();
mMapView.onPause ();
}
@Override
protected void onDestroy() {
super.onDestroy ();
mMapView.onDestroy ();
}
}
之后就可以运行啦