Android开发学习01:基于百度地图SDK的配置以及利用API实现一个简单的地图应用

时间:2021-07-03 18:09:42

(一)注册并获取AK码:

step1:找到keytool工具,并转移到.android目录下。(前提是已经安装了java jre/jdk)

Android开发学习01:基于百度地图SDK的配置以及利用API实现一个简单的地图应用

 

 

 为避免有些情况,在控制台无法找到keytool,可以把与keytool同级的所有文件统统复制粘贴到 ../.android 目录下。

Android开发学习01:基于百度地图SDK的配置以及利用API实现一个简单的地图应用

 

 

 step2:快捷键win R,输入cmd进入控制台 或者 直接使用android studio等其他环境的自带Terminal,完成下面指令:

Android开发学习01:基于百度地图SDK的配置以及利用API实现一个简单的地图应用

 

 

 step3:到官网注册申请Key,申请Key入口:http://lbsyun.baidu.com/apiconsole/key

Android开发学习01:基于百度地图SDK的配置以及利用API实现一个简单的地图应用

 

 

 step4:获取包名

Android开发学习01:基于百度地图SDK的配置以及利用API实现一个简单的地图应用

 

 回到step3即可完成申请,然后复制Key:

Android开发学习01:基于百度地图SDK的配置以及利用API实现一个简单的地图应用

 

 (二)下载SDK包,并解压:

Android开发学习01:基于百度地图SDK的配置以及利用API实现一个简单的地图应用

 

 

 Android开发学习01:基于百度地图SDK的配置以及利用API实现一个简单的地图应用

 

 

 (三)配置项目文件:

Android开发学习01:基于百度地图SDK的配置以及利用API实现一个简单的地图应用

 

 对于加入jar文件,右键-选择Add As Library,导入到工程中。同时在build.gradle中会生成工程所依赖的对应的jar文件说明

Android开发学习01:基于百度地图SDK的配置以及利用API实现一个简单的地图应用

 

 再到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 }

执行结果:

Android开发学习01:基于百度地图SDK的配置以及利用API实现一个简单的地图应用