AndroidStudio配置百度地图AndroidSDK项目
程序员文章站
2022-04-20 11:53:29
...
1. 获取百度Key
目录
1.1. 注册百度账号并登陆
官方注册网址:https://passport.baidu.com/v2/?reg
1.2 创建和获取签名SHA1
1.2.1 创建签名
参考:生成签名
1.2.2 查看签名SHA1
参考:获取签名信息
1.2. 创建应用
1.2.1 创建应用
点击“创建应用”->设置项目名称->选择Android SDK->设置发布和开发版的SHA1(1.2.2获取的)
->包名->提交,系统生成百度地图key;
1.2.2 复制key或修改应用
2. 资源引入
2.1 下载jar和so文件
根据需要选择资源进行下载;
2.2 jar包复制到项目中
Project切换到“Project”在module下创建libs目录,把下载jar和so库文件复制到libs;
2.3 添加jar包到项目引用
File ->Project Structure->选择对应module->切换到"Dependencies"选项->加号选择Jar dependency
->选择需要的jar;
3. 应用混淆
为了保证百度类不被混淆,在proguard-rules.pro中添加:
-keep class com.baidu.** {*;}
-keep class mapsdkvi.com.** {*;}
-dontwarn com.baidu.**
4. 添加权限和百度key
在AndroidManifest.xml中添加权限和百度key
4.1 添加权限
<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" />
//获取设备的网络状态,鉴权所需网络代理
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
//允许sd卡写权限,需写入地图数据,禁用后无法显示地图
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
//获取统计数据
<uses-permission android:name="android.permission.GET_TASKS" />
//鉴权所需该权限获取进程列表
<uses-permission android:name="android.permission.CAMERA" />
//使用步行AR导航,配置Camera权限
4.2 添加百度Key
<application>
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="开发者 key" />
</application>
5 代码编写
5.1 在xml中添加MapView
<com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" />
5.2 初始化Baidu 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的初始化方法中
5.3 MapView生命周期管理
特别在onDestroy()中需要销毁MapView,不然容易引起崩溃;
@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();
}
}
上一篇: 操作系统-4——并发:死锁和饥饿
下一篇: Echarts实现地图点击与折线图联动
推荐阅读
-
详解在HTTPS 项目中使用百度地图 API
-
2种在vue项目中使用百度地图的简单方法
-
vue项目中使用百度地图的方法
-
使用CocoaPods配置iOS百度地图sdk问题记录20191024
-
如何在vue项目中使用百度地图API
-
Android百度地图导航开发:Androidstudio导入aar包,解决新版本百度地图SDK没有com.baidu.navisdk.adapter及类BaiduNaviManagerFactory
-
Android 百度地图导航没有语音问题踩坑 重点是AndroidManifest.xml的配置问题
-
在Android项目里如何调用基于百度地图API实现定位
-
vue 项目中引用百度地图
-
Vue项目使用百度地图——经纬度地图组件的封装及使用