(一)注册并获取AK码:
step1:找到keytool工具,并转移到.android目录下。(前提是已经安装了java jre/jdk)
为避免有些情况,在控制台无法找到keytool,可以把与keytool同级的所有文件统统复制粘贴到 ../.android 目录下。
step2:快捷键win+R,输入cmd进入控制台 或者 直接使用android studio等其他环境的自带Terminal,完成下面指令:
step3:到官网注册申请Key,申请Key入口:http://lbsyun.baidu.com/apiconsole/key
step4:获取包名
回到step3即可完成申请,然后复制Key:
(二)下载SDK包,并解压:
(三)配置项目文件:
对于加入jar文件,右键-选择Add As Library,导入到工程中。同时在build.gradle中会生成工程所依赖的对应的jar文件说明
再到AndroidManifest.xml文件中添加下列代码(添加在appliction之外,如添加到appliction内部,会导致无法访问网络):
1 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 2 3 <!-- 这个权限用于进行网络定位 --> 4 5 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 6 7 //获取设备网络状态,禁用后无法获取网络状态 8 9 <uses-permission android:name="android.permission.INTERNET"/> 10 11 //网络权限,当禁用后,无法进行检索等相关业务 12 13 <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 14 15 //读取设备硬件信息,统计数据 16 17 <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /> 18 19 //读取系统信息,包含系统版本等信息,用作统计 20 21 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 22 23 //获取设备的网络状态,鉴权所需网络代理 24 25 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 26 27 //允许sd卡写权限,需写入地图数据,禁用后无法显示地图 28 29 <uses-permission android:name="android.permission.WRITE_SETTINGS" /> 30 31 //获取统计数据 32 33 <uses-permission android:name="android.permission.GET_TASKS" /> 34 35 //鉴权所需该权限获取进程列表 36 37 <uses-permission android:name="android.permission.CAMERA" /> 38 39 //使用步行AR导航,配置Camera权限
最后配置AK(在application标签内添加):
1 <meta-data 2 android:name="com.baidu.lbsapi.API_KEY" 3 android:value="你的AK"/>
(四)写最简单的地图程序
布局文件
1 <?xml version="1.0" encoding="utf-8"?> 2 <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:app="http://schemas.android.com/apk/res-auto" 4 xmlns:tools="http://schemas.android.com/tools" 5 android:layout_width="match_parent" 6 android:layout_height="match_parent" 7 tools:context=".MainActivity"> 8 9 <com.baidu.mapapi.map.MapView 10 android:id="@+id/bmapView" 11 android:layout_width="fill_parent" 12 android:layout_height="fill_parent" 13 android:clickable="true" 14 /> 15 16 </androidx.constraintlayout.widget.ConstraintLayout>
对应的java文件
1 package com.example.baidumap01; 2 3 import androidx.appcompat.app.AppCompatActivity; 4 5 import android.os.Bundle; 6 7 import com.baidu.mapapi.SDKInitializer; 8 9 import com.baidu.mapapi.map.MapView; 10 11 public class MainActivity extends AppCompatActivity { 12 private MapView mMapView = null; 13 @Override 14 protected void onCreate(Bundle savedInstanceState) { 15 super.onCreate(savedInstanceState); 16 SDKInitializer.initialize(getApplicationContext()); 17 setContentView(R.layout.activity_main); 18 mMapView = findViewById(R.id.bmapView); 19 } 20 @Override 21 22 protected void onDestroy() { 23 24 super.onDestroy(); 25 26 //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理 27 28 mMapView.onDestroy(); 29 30 } 31 32 @Override 33 34 protected void onResume() { 35 36 super.onResume(); 37 38 //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理 39 40 mMapView.onResume(); 41 42 } 43 44 @Override 45 46 protected void onPause() { 47 48 super.onPause(); 49 50 //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理 51 52 mMapView.onPause(); 53 54 } 55 }
执行结果: