进入高德开发者平台
参考:http://lbs.amap.com/api/android-location-sdk/locationsummary/
配置
下载
从网站下载并解压得到定位包“AMap_Location_V2.x.x.jar“。
Eclipse配置工程
开发工程中新建“libs”文件夹,将定位包拷贝到 libs 的根目录下。拷贝完成后的工程目录(以 V1.0.4 为例)如图所示:
注意:若您在 Eclipse 上使用 adt22 以下的版本插件,则需要在 Eclipse 上进行如下配置:
选中 Eclipse 的工程,右键选择 “Properties > Java Build Path > Order and Export”,勾选 “Android Private Libraries”。
Android Studio配置工程
1.打开Android Studio编译器,切换到project查看方式,如图所示:
2.将下载的定位SDK的jar包复制到libs目录下,如果有老版本定位jar包在其中,请删除。如图所示:
进行定位之前,需要在 AndroidManifest.xml 文件中进行权限设置,确保定位功能可以正常使用。
配置AndroidManifest.xml
首先,请在application标签中声明service组件,每个app拥有自己单独的定位service。
1
|
<service android:name=
"com.amap.api.location.APSService"
></service>
|
接下来声明使用权限
Android 6.0及以上系统可以参考Android 6.0权限说明章节。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<!--用于进行网络定位-->
<uses-permission android:name=
"android.permission.ACCESS_COARSE_LOCATION"
></uses-permission>
<!--用于访问GPS定位-->
<uses-permission android:name=
"android.permission.ACCESS_FINE_LOCATION"
></uses-permission>
<!--获取运营商信息,用于支持提供运营商信息相关的接口-->
<uses-permission android:name=
"android.permission.ACCESS_NETWORK_STATE"
></uses-permission>
<!--用于访问wifi网络信息,wifi信息会用于进行网络定位-->
<uses-permission android:name=
"android.permission.ACCESS_WIFI_STATE"
></uses-permission>
<!--这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
<uses-permission android:name=
"android.permission.CHANGE_WIFI_STATE"
></uses-permission>
<!--用于访问网络,网络定位需要上网-->
<uses-permission android:name=
"android.permission.INTERNET"
></uses-permission>
<!--用于读取手机当前的状态-->
<uses-permission android:name=
"android.permission.READ_PHONE_STATE"
></uses-permission>
<!--写入扩展存储,向扩展卡写入数据,用于写入缓存定位数据-->
<uses-permission android:name=
"android.permission.WRITE_EXTERNAL_STORAGE"
></uses-permission>
|
最后设置Key,在application标签中加入
1
2
3
|
<meta-data android:name=
"com.amap.api.v2.apikey"
android:value=
"key"
>
//开发者申请的key
</meta-data>
|
定位模式介绍
高德定位服务包含GPS和网络定位(Wi-Fi和基站定位)两种能力。定位SDK将GPS、网络定位能力进行了封装,以三种定位模式对外开放
高精度定位模式:会同时使用网络定位和GPS定位,优先返回最高精度的定位结果;
低功耗定位模式:不会使用GPS,只会使用网络定位(Wi-Fi和基站定位);
仅用设备定位模式:不需要连接网络,只使用GPS进行定位,这种模式下不支持室内环境的定位。
初始化定位客户端
注:请在主线程中声明AMapLocationClient类对象,需要传Context类型的参数。推荐用getApplicationConext()方法获取全进程有效的context。
1
2
3
4
5
6
7
8
|
//声明AMapLocationClient类对象
public
AMapLocationClient mLocationClient =
null
;
//声明定位回调监听器
public
AMapLocationListener mLocationListener =
new
AMapLocationListener();
//初始化定位
mLocationClient =
new
AMapLocationClient(getApplicationContext());
//设置定位回调监听
mLocationClient.setLocationListener(mLocationListener);
|
配置定位参数
设置定位参数包括:定位模式(高精度定位模式,低功耗定位模式和仅设备定位模式),是否返回地址信息等。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|