当前位置:   article > 正文

Android项目集成高德地图定位功能_请检查配置文件是否配置服务,并且manifest中service标签是否配置在application

请检查配置文件是否配置服务,并且manifest中service标签是否配置在application标

1.在Project的build.gradle文件中配置repositories,添加maven或jcenter仓库地址

Android Studio默认会在Project的build.gradle为所有module自动添加jcenter的仓库地址,如果已存在,则不需要重复添加。Project的build.gradle文件在Project目录中位置如图所示:

配置如下

  1. allprojects {
  2. repositories {
  3. jcenter() // 或者 mavenCentral()
  4. }
  5. }

2.在主工程的build.gradle文件配置dependencies,主工程的build.gradle文件在Project目录中位置:

定位SDK配置如下:

  1. dependencies {
  2. //定位功能
  3. compile 'com.amap.api:location:latest.integration'
  4. }

 3.在AndroidManifest文件下的application标签下配置高德地图的key

  1. <meta-data
  2. android:name="com.amap.api.v2.apikey"
  3. android:value="请输入您的用户Key"/>

4.在AndroidManifest文件下配置权限

  1. <uses-permission android:name="android.permission.INTERNET" />
  2. <!--允许获取粗略位置,若用GPS实现定位小蓝点功能则必选-->
  3. <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
  4. <!--允许获取设备和运营商信息,用于问题排查和网络定位,若无gps但仍需实现定位小蓝点功能则此权限必选-->
  5. <uses-permission android:name="android.permission.READ_PHONE_STATE" />
  6. <!--允许获取网络状态,用于网络定位,若无gps但仍需实现定位小蓝点功能则此权限必选-->
  7. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  8. <!--允许获取wifi网络信息,用于网络定位,若无gps但仍需实现定位小蓝点功能则此权限必选-->
  9. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  10. <!--允许获取wifi状态改变,用于网络定位,若无gps但仍需实现定位小蓝点功能则此权限必选-->
  11. <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
  12. <!--允许写入扩展存储,用于数据缓存,若无此权限则写到私有目录-->
  13. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  14. <!--允许写设备缓存,用于问题排查-->
  15. <uses-permission android:name="android.permission.WRITE_SETTINGS" />
  16. <!--允许读设备等信息,用于问题排查-->
  17. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

5. 进行合规检查

  1. AMapLocationClient.updatePrivacyShow(LocationActivity.this,true,true);
  2. AMapLocationClient.updatePrivacyAgree(LocationActivity.this,true);

具体方法说明如下: 

  1. /**
  2. * 更新隐私合规状态,需要在初始化地图之前完成
  3. * @param context: 上下文
  4. * @param isContains: 隐私权政策是否包含高德开平隐私权政策 true是包含
  5. * @param isShow: 隐私权政策是否弹窗展示告知用户 true是展示
  6. * @since 8.1.0
  7. */
  8. public static void updatePrivacyShow(Context context, boolean isContains, boolean isShow) ;
  1. /**
  2. * 更新同意隐私状态,需要在初始化地图之前完成
  3. * @param context: 上下文
  4. * @param isAgree: 隐私权政策是否取得用户同意 true是用户同意
  5. * @since 8.1.0
  6. */
  7. public static void updatePrivacyAgree(Context context, boolean isAgree) ;

6. 在Android项目的AndroidManifest.xml文件的application标签下添加如下代码

<service android:name="com.amap.api.location.APSService"></service>

每个应用都有自己单独单独定位服务

7.混淆

  1. -keep class com.amap.api.location.**{*;}
  2. -keep class com.amap.api.fence.**{*;}
  3. -keep class com.loc.**{*;}
  4. -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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/580158
推荐阅读
相关标签
  

闽ICP备14008679号