赞
踩
1.在Project的build.gradle文件中配置repositories,添加maven或jcenter仓库地址
Android Studio默认会在Project的build.gradle为所有module自动添加jcenter的仓库地址,如果已存在,则不需要重复添加。Project的build.gradle文件在Project目录中位置如图所示:
配置如下
- allprojects {
- repositories {
- jcenter() // 或者 mavenCentral()
- }
- }
2.在主工程的build.gradle文件配置dependencies,主工程的build.gradle文件在Project目录中位置:
定位SDK配置如下:
- dependencies {
- //定位功能
- compile 'com.amap.api:location:latest.integration'
- }
3.在AndroidManifest文件下的application标签下配置高德地图的key
- <meta-data
- android:name="com.amap.api.v2.apikey"
- android:value="请输入您的用户Key"/>
4.在AndroidManifest文件下配置权限
- <uses-permission android:name="android.permission.INTERNET" />
-
- <!--允许获取粗略位置,若用GPS实现定位小蓝点功能则必选-->
- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
-
- <!--允许获取设备和运营商信息,用于问题排查和网络定位,若无gps但仍需实现定位小蓝点功能则此权限必选-->
- <uses-permission android:name="android.permission.READ_PHONE_STATE" />
-
- <!--允许获取网络状态,用于网络定位,若无gps但仍需实现定位小蓝点功能则此权限必选-->
- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
-
- <!--允许获取wifi网络信息,用于网络定位,若无gps但仍需实现定位小蓝点功能则此权限必选-->
- <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
-
- <!--允许获取wifi状态改变,用于网络定位,若无gps但仍需实现定位小蓝点功能则此权限必选-->
- <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
-
- <!--允许写入扩展存储,用于数据缓存,若无此权限则写到私有目录-->
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-
- <!--允许写设备缓存,用于问题排查-->
- <uses-permission android:name="android.permission.WRITE_SETTINGS" />
-
- <!--允许读设备等信息,用于问题排查-->
- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
5. 进行合规检查
- AMapLocationClient.updatePrivacyShow(LocationActivity.this,true,true);
- AMapLocationClient.updatePrivacyAgree(LocationActivity.this,true);
具体方法说明如下:
- /**
- * 更新隐私合规状态,需要在初始化地图之前完成
- * @param context: 上下文
- * @param isContains: 隐私权政策是否包含高德开平隐私权政策 true是包含
- * @param isShow: 隐私权政策是否弹窗展示告知用户 true是展示
- * @since 8.1.0
- */
- public static void updatePrivacyShow(Context context, boolean isContains, boolean isShow) ;
- /**
- * 更新同意隐私状态,需要在初始化地图之前完成
- * @param context: 上下文
- * @param isAgree: 隐私权政策是否取得用户同意 true是用户同意
- * @since 8.1.0
- */
- public static void updatePrivacyAgree(Context context, boolean isAgree) ;
6. 在Android项目的AndroidManifest.xml文件的application标签下添加如下代码
<service android:name="com.amap.api.location.APSService"></service>
每个应用都有自己单独单独定位服务
7.混淆
- -keep class com.amap.api.location.**{*;}
- -keep class com.amap.api.fence.**{*;}
- -keep class com.loc.**{*;}
- -keep class com.autonavi.aps.amapapi.model.**{*;}
8,注意事项:()
错误1:当报缺少定位权限 请到http://lbs.amap.com/api/android-location-sdk/guide/utilities/errorcode/查看错误码说明,错误详细信息:定位权限被禁用,请授予应用定位权限#1201
解决方案:在App中打开定位权限
错误2:KEY错误 请到http://lbs.amap.com/api/android-location-sdk/guide/utilities/errorcode/查看错误码说明,错误详细信息:auth fail:INVALID_USER_KEY#SHA1AndPackage#EB:13:3F:8B:6D:41:3F:78:10:2C:4B:18:38:69:A7:17:14:80:AC:7E:com.itcast.mobilesafe07#gsid#033015172117164499203404900010620403365#csid#c8460cb6b29043a390d0da7822e396ad#0701,KEY鉴权失败。
解决方案,查看项目的正式keystore的SHA1值是否正确,如果是使用的不是正式包,请注意调试版的SHA1值是否正确
错误3:定位服务启动失败 请到http://lbs.amap.com/api/android-location-sdk/guide/utilities/errorcode/查看错误码说明,错误详细信息:请检查配置文件是否配置服务,并且manifest中service标签是否配置在application标签内#1003
解决方案:需要检查AndroidManifest.xml文件下是否配置了
<service android:name="com.amap.api.location.APSService"></service> 代码
9. 高德地图定位官方文档(https://lbs.amap.com/api/android-location-sdk/guide/android-location/getlocation)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。