文章目录

  • 百度地图简介
  • Android地图SDK
  • Android定位SDK
  • Android鹰眼轨迹Android SDK (了解)
  • Android导航SDK (了解)
  • Android HUD SDK (了解)
  • Android全景SDK(了解)
  • 下面开始配置百度地图环境(AndroidStudio)
  • 准备1:SDK下载
  • 下面开始正式安装环境。
  • 1. 新建工程
  • 2. 导包
  • 创建本地密钥
  • 查询SHA1
  • 申请百度密钥
  • 打开应用,添加ak
  • 添加一个我也不知道是啥的东西
  • 添加权限
  • 编写布局
  • MainActivity
  • 链接真机或者安卓版本10的模拟器


前言:
模拟器不要版本太高,容易出很多意料之外的不是BUG的BUG。
这次的配置androidStudio百度地图环境就学到了,吐了,模拟器系统版本android11。

我也是一个刚学习百度地图的学生,被环境搞得一度崩溃,鼓捣了一天,在老师帮助下找到了原因。模拟器系统版本是Android11.同样项目在真机上运行就可以,模拟器就不行。都是泪啊。

原内容是在word文档中,如果觉得网页看博客不舒服,或者觉得太长,排版太丑,可以下载文档本地看,一步一截图的那种。
蓝奏云盘地址:https://yxmiaoyu.lanzous.com/b01btdgxe
https://yxmiaoyu.lanzous.com/b01btdgxe

先放效果图,界面很丑,但是功能还是可以的,

Android模拟位置 安卓10模拟定位app_android


百度地图简介

百度地图API是为开发者免费提供 的一套基于百度地图服务的应用接 口,包括JavaScript API、Web服务 API、Android SDK、iOS SDK、定 位SDK、车联网API、LBS云等多种 开发工具与服务,提供基本地图展 现、搜索、定位、逆/地理编码,适 用于PC端、移动端、路线规划、 LBS云存储与检索等功能服务器等多 种设备,多种操作系统下的地图应 用开发。

使用地图需要先向百度申请,就是key(密钥)

Android地图SDK

基于 Android 4.0及以上版本设备的应用程序接口。

功能

地图 	POI检索 	地理编码 	线路规划 	地图覆盖物 	
定位 	离线地图	调启百度地图 	周边雷达 	LBS云 	
特色功能	 个性化地图 	室内图 	Android Wear

Android定位SDK

为 Android移动端应用提供的一套简单易 用的LBS定位服务接口,专注于为广大开 发者提供最好的综合定位服务

百度地图Android定位SDK提供GPS,基站,Wi-Fi等 多种定位方式

LBS(全称Location Based Services)可以理解 为移动定位服务

Android鹰眼轨迹Android SDK (了解)

设备轨迹追踪与显示

Android导航SDK (了解)

Android HUD SDK (了解)

夜间投影导航

Android全景SDK(了解)

下面开始配置百度地图环境(AndroidStudio)

准备1:SDK下载

百度地图 Android SDK 开发资源下载平台 
http://lbsyun.baidu.com/index.php?title =androidsdk/sdkandev-download

百度地图 Android SDK 开发资源下载平台

Android模拟位置 安卓10模拟定位app_android_02

Android模拟位置 安卓10模拟定位app_百度地图_03

Android模拟位置 安卓10模拟定位app_Android模拟位置_04


下载后

Android模拟位置 安卓10模拟定位app_Android_05


选择因为是刚学习,功能要求少,所以先选择基础的jar包解压,别的以后在运用。

Android模拟位置 安卓10模拟定位app_Android_06

下面开始正式安装环境。

1. 新建工程

我的工程名字为MyBaiduMap3

(第三次尝试才成功,尴尬😅)

2. 导包

复制6个文件到项目中。
切换project视图,复制粘贴即可。

Android模拟位置 安卓10模拟定位app_android_07

Android模拟位置 安卓10模拟定位app_Android_08

开始导包,上面解压复制的六个文件中有一个是jar包,单纯复制无法正常使用,需要导入工程才行。

Android模拟位置 安卓10模拟定位app_Android_09

Android模拟位置 安卓10模拟定位app_Android模拟位置_10


Android模拟位置 安卓10模拟定位app_百度地图_11


效果

Android模拟位置 安卓10模拟定位app_Android模拟位置_12


效果

Android模拟位置 安卓10模拟定位app_android_13

创建本地密钥

用过本地密钥获得SHA1进而向百度申请密钥。

这是两个密钥,前面是你自己搞得,本地的,后面那个是百度给你的,网络的,不一样。

具体过程大家可以百度,比我说的好很多,我就不献丑误导大家了。

大致过程如下

Android模拟位置 安卓10模拟定位app_Android模拟位置_14

创建本地密钥

Android模拟位置 安卓10模拟定位app_android_15

使用上面建好的密钥

账号密码都是:12345678

Android模拟位置 安卓10模拟定位app_Android模拟位置_16

Android模拟位置 安卓10模拟定位app_Android模拟位置_17

Android模拟位置 安卓10模拟定位app_Android_18


file目录下,在androidStudio最左上角哪里。

Android模拟位置 安卓10模拟定位app_android_19

Android模拟位置 安卓10模拟定位app_android_20


输入你创建本地密钥是设置的信息

Android模拟位置 安卓10模拟定位app_百度地图_21


效果

Android模拟位置 安卓10模拟定位app_百度地图_22

查询SHA1

windous +r 输入cmd
先找到你生成的本地密匙路径
进入路径
输入 keytool -v -list -keystore xxxx
xxxx是你的本地密钥的名字,全称,我的就是BaiduMapKey.jks

Android模拟位置 安卓10模拟定位app_Android模拟位置_23


复制SHA1

申请百度密钥

Android模拟位置 安卓10模拟定位app_android_24


Android模拟位置 安卓10模拟定位app_android_25

点击确认,在出现的页面中复制AK值;

Android模拟位置 安卓10模拟定位app_百度地图_26

打开应用,添加ak

Android模拟位置 安卓10模拟定位app_Android模拟位置_27

<meta-data
            android:name="com.baidu.lbsapi.API_KEY"
            android:value="你的ak" />

添加一个我也不知道是啥的东西

注意位置,别添加错了。

Android模拟位置 安卓10模拟定位app_百度地图_28

sourceSets { main { jniLibs.srcDirs = ['libs'] } }

添加权限

Android模拟位置 安卓10模拟定位app_Android模拟位置_29

定位什么的权限
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />


		解决高版本联网权限	
        android:usesCleartextTraffic="true">

编写布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.baidu.mapapi.map.MapView
        android:id="@+id/mvMap"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

MainActivity

package com.example.mybaidumap;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;

import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.MapView;

public class MainActivity extends AppCompatActivity {
    //添加地图控件属性
    private MapView mvMap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //初始化地图服务,必须要在setContentView方法调用之前-------
        SDKInitializer.initialize(getApplicationContext());
        setContentView(R.layout.activity_main);

        //获取地图控件
        mvMap = findViewById(R.id.mvMap);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        //调用地图销毁的方法
        mvMap.onDestroy();
        Log.i("lww", "onDestroy");
    }

    @Override
    protected void onResume() {
        super.onResume();
        mvMap.onResume();
        Log.i("lww", "onResume");
    }

    @Override
    protected void onPause() {
        super.onPause();
        mvMap.onPause();
        Log.i("lww", "onPause");
    }

}

链接真机或者安卓版本10的模拟器

运行,OK了。

完结撒花

Android模拟位置 安卓10模拟定位app_android