Android Studio调用高德地图api
一.搜索高德开放平台,进行注册并登录,进入到自己的控制台,打开应用管理下的我的应用,点击创建新应用。

1.关于获取发布版安全码SHA1的过程如下:
打开Android Studio下方的Terminal,并自行找到.android在电脑中的位置,找到了之后,按照下图所示:

之后执行 keytool -list -v -keystore 签名文件的位置(即.keystore的位置),如下图所示:

若出现这个问题,则需要找到JDK的安装路径的bin子目录(里面有keytool.exe工具),这里若出现找不到该命令的提示,则说明还未在PATH环境变量中增加%JAVA_HOME%/bin路径。找到之后如下图所示:

默认口令为android,输入正确后,即可获得SHA1安全码,如下图所示:

2.关于包名如何获得?

填入后点击提交,即可获得key,后续会使用,如下图所示:
二.下载Android 地图SDK并设置相关权限。


下载后进行解压,会得到如图所示:

之后将最后面的那个jar包放到工程libs里面,并右键点击Add As Library... 将该jar包加载到build.gradle中,之后在src/main下面建jniLibs子目录,将上图前五个文件复制进去,就会得到如下图所示:

之后在AndroidManifest.xml设置相关的权限:
-
<!--允许程序打开网络套接字-->
-
<uses-permission android:name="android.permission.INTERNET" />
-
<!--允许程序设置内置sd卡的写权限-->
-
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-
<!--允许程序获取网络状态-->
-
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
-
<!--允许程序访问WiFi网络信息-->
-
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
-
<!--允许程序读写手机状态和身份-->
-
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
-
<!--用于进行网络定位-->
-
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
-
<!--用于访问GPS定位-->
-
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
-
<!--用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
-
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
-
<!--用于读取手机当前的状态-->
-
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
-
<!--用于申请调用A-GPS模块-->
-
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
同时在该文件application中添加如下代码:
-
<meta-data android:name="com.amap.api.v2.apikey" android:value="前面获取到的key值">
-
</meta-data>
设置好这些权限之后就来到了显示地图的部分。
三.显示地图。
设置布局文件,代码如下所示:
-
<com.amap.api.maps.MapView
-
xmlns:android="http://schemas.android.com/apk/res/android"
-
android:id="@+id/mapView"
-
android:layout_width="match_parent"
-
android:layout_height="match_parent" >
-
</com.amap.api.maps.MapView>
java中调用关键代码如下所示:
-
private AMap aMap;
-
MapView mMapView = null;
-
//获取地图控件引用
-
mMapView = (MapView)findViewById(R.id.mapView);
-
//在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),创建地图
-
mMapView.onCreate(savedInstanceState);
-
-
//初始化地图控制器对象
-
if (aMap == null) {
-
aMap = mMapView.getMap();
-
}
-
@Override
-
public void onDestroy() {
-
super.onDestroy();
-
//在activity执行onDestroy时执行mMapView.onDestroy(),销毁地图
-
mMapView.onDestroy();
-
}
-
@Override
-
public void onResume() {
-
super.onResume();
-
//在activity执行onResume时执行mMapView.onResume (),重新绘制加载地图
-
mMapView.onResume();
-
}
-
@Override
-
public void onPause() {
-
super.onPause();
-
//在activity执行onPause时执行mMapView.onPause (),暂停地图的绘制
-
mMapView.onPause();
-
}
-
@Override
-
public void onSaveInstanceState(Bundle outState) {
-
super.onSaveInstanceState(outState);
-
//在activity执行onSaveInstanceState时执行mMapView.onSaveInstanceState (outState),保存地图当前的状态
-
mMapView.onSaveInstanceState(outState);
-
}



浙公网安备 33010602011771号