Android定位与地图应用
一、百度地图创建自己的应用
百度地图 Android SDK是一套基于Android 4.0及以上版本设备的应用程序接口。 可以使用该套 SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,可轻松访问百度地图服务和数据,构建功能丰富、交互性强的地图类应用程序。
1.申请百度开发者账号
2.创建应用
填写应用名,根据自己的需求勾选应用服务。
需要填写SHA1和包名
3.获取SHA1和包名
首先打开项目的控制台
再cd进入自己的 jdk 所在的路径,keytool就在该文件夹里面
进入你的jdk目录下,然后输入: keytool -list -v -keystore debug.keystore
提示找不到debug.store,那就把他的根目录拼接上:
keytool -list -v -keystoreC:\Users\Lenovo.android\debug.keystore
回车后会要求输入密钥库口令,一般默认为android,出现以下情况则说明密钥生成成功,复制证书指纹中的SHA1
打开项目查看包名
正确填写并提交
创建完成
二、下载SDK并完成AS配置
1.下载SDK
2、选择SDK功能与配置并下载jar包
3、把下载的文件添加到本地项目中
4、配置AndroidManifest.xml文件
添加权限声明
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.baidumap">
<!--百度定位所需要权限,前面2个是LOCATE权限组的2个危险权限-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!--百度定位所需要的普通权限-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/> <!--因为程序要与百度云服务交互-->
添加注册远程服务和配置应用Key
<service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote"/>
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="tSWadQMr5WVaZHHHroUgWgrv9bQwansx"/><!--应用Key是在百度开发者页面里生成的,需要替换-->
三、显示地图与定位
编写MainActivity.java文件
package com.example.baidumap;
import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu