您现在的位置: 开发 > Android 导航SDK > 开发指南 > 创建工程 > 其他配置注意事项

其他配置注意事项 最后更新时间: 2021年11月12日

1. 添加高德Key

需要将您刚申请的高德 Key 配置到项目中,打开项目的 “AndroidManifest.xml” 文件中,在application标签下添加一个 meta-data 标签,并填入之前申请好的key,如下: 

<application 
     android:icon="@drawable/icon"
     android:label="@string/app_name" >
     <meta-data
         android:name="com.amap.api.v2.apikey"
         android:value="请输入您的用户Key"/>
         ……
 </application>

2. 声明定位 service 组件

如果您的项目中使用了高德定位sdk,那么为了保证定位sdk功能正常使用,需在 AndroidManifest.xml 中声明定位 service 组件。请在application标签中声明service 组件,添加如下代码: 

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

3. 配置权限

Android 6.0及以上系统可以参考 Android 6.0权限说明章节

请在 AndroidManifest.xml中配置权限,代码如下: 

<!--允许访问网络,必选权限-->
<uses-permission android:name="android.permission.INTERNET" />

<!--允许获取精确位置,实时导航为必选-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
 
<!--允许获取粗略位置,实时导航为必选-->
<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.ACCESS_BACKGROUND_LOCATION" /> 

<!--用于申请调用A-GPS模块,卫星定位加速-->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> 

<!--允许写入扩展存储,用于写入缓存定位数据-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

 <!--用于用户链接蓝牙时,在导航组件页面的蓝牙连接提醒,建立链接后开发者可选用蓝牙通道进行tts播报-->
<uses-permission android:name="android.permission.BLUETOOTH" />

<!--用与导航状态中保持屏幕常亮-->
<uses-permission android:name="android.permission.WAKE_LOCK"/>

<!--允许写设备缓存,用于问题排查-->
<uses-permission android:name="android.permission.WRITE_SETTINGS" />  

<!--允许读设备等信息,用于问题排查-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

4. 隐私合规接口说明

1.导航的合规接口说明如下:

/**
* 设置包含隐私政策,并展示用户授权弹窗 必须在AMapNavi.getInstance(context)实例化之前调用
*
* @param  context 
* @param  isContains: 隐私权政策是否包含高德开平隐私权政策  true是包含 
* @param  isShow: 隐私权政策是否弹窗展示告知用户 true是展示 
* @since  8.1.0 
*/
public static void updatePrivacyShow(Context context, boolean isContains, boolean isShow);
/**
 * 设置是否同意用户授权政策 <b>必须在AMapNavi.getInstance(context)实例化之前调用</b>
 * @param context
 * @param isAgree:隐私权政策是否取得用户同意  true是用户同意
 *
 * @since 8.1.0
 */
public static void updatePrivacyAgree(Context context, boolean isAgree) ;

2.在调用AMapNavi.getInstance 之前必须进行合规检查,设置接口之前保证隐私政策合规,检查接口如下:

NaviSetting.updatePrivacyShow(context, true, true);
NaviSetting.updatePrivacyAgree(context, true);

3.在AMapNavi.getInstance调用时要捕获异常信息,具体方式可参考如下:

try {
  mAMapNavi = AMapNavi.getInstance(getApplicationContext());
} catch (Exception e) {
        e.printStackTrace();
    }

4.并在使用mAMapNavi的时候,请进行空指针判断,确保可以使用;

if (mAMapNavi != null){
// TODO
}

5. 代码混淆

在生成 apk 进行代码混淆时,请对混淆配置文件 proguard-rules.pro 添加如下配置(如果报出 warning,在报出 warning 的包加入类似的语句:-dontwarn 包名)  

#2D地图:
-keep class com.amap.api.maps2d.**{*;}
-keep class com.amap.api.mapcore2d.**{*;}

#3D地图 V5.0.0之前:
-keep class com.amap.api.maps.**{*;} 
-keep class com.autonavi.amap.mapcore.*{*;} 
-keep class com.amap.api.trace.**{*;}

#3D地图 V5.0.0之后: 
-keep class com.amap.api.maps.**{*;}
-keep class com.autonavi.**{*;}
-keep class com.amap.api.trace.**{*;}

#定位:
-keep class com.amap.api.location.**{*;}
-keep class com.amap.api.fence.**{*;}
-keep class com.autonavi.aps.amapapi.model.**{*;}

#搜索:
-keep class com.amap.api.services.**{*;}

#导航 V7.3.0以前:
-keep class com.amap.api.navi.**{*;}
-keep class com.alibaba.idst.nls.** {*;}
-keep class com.nlspeech.nlscodec.** {*;}
-keep class com.google.**{*;}

#导航 V7.3.0及以后:
-keep class com.amap.api.navi.**{*;}
-keep class com.alibaba.mit.alitts.*{*;}
-keep class com.google.**{*;}

#导航 V8.1.0及以后:
-keep class com.amap.api.navi.**{*;}
-keep class com.alibaba.idst.nui.* {*;}
-keep class com.google.**{*;}
示例
中心
常见
问题
智能
客服