常见问题 最后更新时间: 2026年08月19日
1、agent回复“不理解”等回复
- 当前是否处于多轮状态
- 顺路搜和泛搜需要将第一轮的选点数据传进去(存储的时候做好置空等逻辑)
2、顺路去xxx,最后是修改终点
- 服务的策略原因
- 如果有修改途径点,是因为服务记录了之前的行为,换一个地点还是会改成终点
3、app链路不生效,保证destination是否设置了app链路
AgentClient.AgentCommandDestination mAgentCommandDestination = AgentClient.AgentCommandDestination.AMAP_APP;4、泛搜/顺路搜支持多轮、泛搜支持打断的实现
泛搜和顺路搜支持多轮
if (queryResult.actionType != null && queryResult.actionType != AMapAgentQueryResult.ActionType.NONE) {
mCurrentActionType = queryResult.actionType;
}
if (queryResult.actionType == AMapAgentQueryResult.ActionType.SEARCH_POI) {
mCurrentPoiResult = (PoiResultWrapper) queryResult.resultObj;
} else if (queryResult.actionType == AMapAgentQueryResult.ActionType.ROUTE_SEARCH) {
mRoutePOIItemList = (List<RoutePOIItem>) queryResult.resultObj;
}泛搜支持打断
/**
* 填充上下文参数(用于选择场景)
*/
private void fillContextParam(AMapAgentQueryParam param) {
if (mCurrentActionType == AMapAgentQueryResult.ActionType.SEARCH_POI) {
param.selectedObject = mCurrentPoiResult;
param.lastActionType = AMapAgentQueryResult.ActionType.SEARCH_POI;
// 泛搜支持打断
mAMapApi.getAgentClient().resetAgentStatus();
} else if (mCurrentActionType == AMapAgentQueryResult.ActionType.ROUTE_SEARCH) {
param.selectedObject = mRoutePOIItemList;
param.lastActionType = AMapAgentQueryResult.ActionType.ROUTE_SEARCH;
}
}其他指令例如select poi work flow不需要填充上下文,直接进行多轮即可
5、排查问题,需要提供日志和时间点、adiu
5.1 LBS SDK侧全链路日志
- agent/link 日志,接入流程如下:
mAMapContext.setLogger(new ILogger() {
@Override
public void onLog(int level, String msg) {
Log.i(TAG, msg);
}
});- lbs的全链路日志
AMapNavi.setFullLinkLogCallback(new FullLinkLogCallback() {
@Override
public void onLogCallback(String s, long l) {
Log.i(TAG, "onLogCallback: " + s + ", " + l);
}
});5.2 定位引擎OPT日志
- 定位引擎 opt 日志开启 定位引擎Debug日志开启
- lbs alc日志开启 - 需要使用测试SDK包
# opt/alc 日志路径都在这里
adb pull /sdcard/Android/data/<wow包名>/files/autonavi/alc/5.3 导航ALC日志
参考文档 ALC 日志开关使用说明
5.4 adiu获取方法
- 获取adiu方式: AMapNavi#getDeviceId可以获取
6、跳转到高德app的授权应用名配置
在application android:label中配置即可
7、支持后台导航能力
Android
自己new AMapNaviView对象,但是记得调用onCreate方法
// mAMapNaviView = (AMapNaviView) findViewById(R.id.navi_view);
// 不挂activity,自己创建navi view,支持service后台导航
mAMapNaviView = new AMapNaviView(getApplicationContext());
mAMapNaviView.onCreate(savedInstanceState);iOS
自己new mAMapNaviView对象,不往父视图上添加
self.mAMapNaviView = [[AMapNaviDriveView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];
// **不往视图栈上添加
// [self.view addSubview:self.mAMapNaviView];
[self.mAMapNavi addDataRepresentative:self.mAMapNaviView];
8、如果路线数据太大,可以先裁剪发送小数据过去
type 2是路线数据,距离长就会比较大,可以先裁剪,然后再发完整的数据过去
// 参数是点的个数,返回值是裁剪后的pb数据
NaviInfo partialRouteInfo = mAMapApi.getNaviClient().getPartialRouteGroup
NaviInfo partialRouteInfo = mAMapApi.getLinkClient().getPartialRouteGrouppartialRouteInfo就是type 2类型的数据,直接传递给rtos即可
9、PB Data Type协议
enum AMapNaviDataType {
AMapNaviDataTypeNone = 0; // 无
AMapNaviDataCalcSuccess = 1; // 算路成功 since 3.0.0(算路成功回调,但是路线可能不会使用)
AMapNaviDataTypeUpdateRouteGroup = 2; // 路线数据更新 since 3.0.0(重算路成功且路线真正应用;备选路线更新)AMap Trigger By C++
AMapNaviDataCalcFailed = 3; // 算路失败 since 3.0.0
AMapNaviDataTypeUpdateNaviInfo = 4; // 行中导航信息 since 3.0.0
AMapNaviDataTypeUpdateTurnIcon = 5; // 导航中的转向图标更新(Amap 黑卡)
AMapNaviDataTypeUpdateNextTurnIcon = 6; // 导航中的下下个转向图标更新(本期不需要)
AMapNaviDataTypeStartNavi = 7; // 开始导航since 3.0.0(驾车、骑行、步行,第一次有路线真正开始导航)
AMapNaviDataTypePlayNaviSound = 8; // 播报导航信息(AMap Trigger By C++)
AMapNaviDataTypeArrivedWayPoint = 9; // 到达途经点 since 3.0.0
AMapNaviDataTypeShowRearApprVehicle = 10; // 后方来车提醒 since 3.0.0(AMap Trigger By C++)
AMapNaviDataTypeHideRearApprVehicle = 11; // 后方来车提醒信息隐藏 since 3.0.0 (AMap Trigger By C++)
AMapNaviDataTypeShowTrafficSignal = 12; // 红绿灯倒计时,实时更新 since 3.0.0 (AMap Trigger By C++)
AMapNaviDataTypeHideTrafficSignal = 13; // 红绿灯倒计时信息隐藏 since 3.0.0 (AMap Trigger By C++)
AMapNaviDataTypeShowLaneInfo = 14; // 车道线数据 since 3.0.0
AMapNaviDataTypeHideLaneInfo = 15; // 车道线隐藏 since 3.0.0
AMapNaviDataTypeUpdateNaviLocation = 16; // 定位信息 since 3.0.0 (AMap Trigger By C++)
AMapNaviDataTypeTrafficBarInfo = 17; // 光柱图信息(本期不需要)(AMap Trigger By C++)
AMapNaviDataTypeTrackingModeInfo = 18; // 跟随模式 since 3.0.0
AMapNaviDataTypeReset = 19; // 重置(开平侧重置眼镜数据,amap侧不用关注)
AMapNaviDataHighLightChanged = 20; // 高亮路线变更 since 3.0.0(重算路成功且路线真正应用;切换路线)
AMapNaviDataTypeVUIStructuredInfo= 21; //结构化数据(agent发送指令后,AMap返回)
AMapNaviDataTypeStopNavi = 100; // 结束导航 since 3.0.0
AMapNaviDataTypeArrivedDestination = 200; // 到达目的地 since 3.0.0
}
// AMapNaviDataType enum
enum AMapNaviDataSource {
AMapNaviDataSourceOpen = 0; // 用户App内集成开平SDK,并导航
AMapNaviDataSourceOpenAgent = 1; // 数据来自开平Agent SDK
AMapNaviDataSourceAMap = 2; // 数据来自AMap
}
// AMapNaviData 定义包含类型和数据的消息
message AMapNaviData {
AMapNaviDataType type = 1; // 类型
AMapNaviDataSource source = 2; // 数据来源
bytes data = 3; // 数据,使用 bytes 类型处理 NSData
uint64 len = 4; // 数据长度
string version = 5; // 数据版本号
}10、常量(错误码、场景等)
package com.amap.llm.agent.api;
public class AMapConstants {
public enum Status {
STATUS_SILENT, // silent初始状态
STATUS_TRANSLATE, // 意图识别状态
STATUS_AUTOLISTEN // 多轮状态
}
public static class SceneType {
// 行前场景 - 主图
public static final String HOME = "home";
// 行前场景 - 路线规划
public static final String ROUTE = "route";
// 行中场景
public static final String NAVI = "navi";
// 搜索场景
public static final String SEARCH = "search";
}
public static final String TRAVEL_TYPE_CAR = "0";
public static final String TRAVEL_TYPE_BUS = "1";
public static final String TRAVEL_TYPE_WALK = "2";
public static final String TRAVEL_TYPE_RIDE = "3";
public static final String POI_TYPE_POI = "0";
public static final String POI_TYPE_HOME = "1";
public static final String POI_TYPE_COMPANY = "2";
public static final String ERROR_CODE_GENERAL_STR = "-10001";
// 状态机状态不合法
public static final String ERROR_CODE_ILLEGAL_STATUS_STR = "-10002";
// so加载失败
public static final String ERROR_CODE_SO_LOAD_FAILED_STR = "-10003";
public static final String ERROR_CODE_AGENT_NOT_INIT = "-10004";
// 当前命令不支持
public static final int ERROR_CODE_CMD_NOT_SUPPORT = -20001;
// query超时
public static final int ERROR_CODE_QUERY_TIMEOUT = -20002;
// home未设置
public static final int ERROR_CODE_HOME_NOT_SET = -20003;
// company未设置
public static final int ERROR_CODE_COMPANY_NOT_SET = -20004;
// 当前命令执行超时
public static final int ERROR_CODE_CMD_TIMEOUT = -20005;
// cxx代码返回的错误码,和cxx错误码(AIDErrorCode)保持一致
public static final int AID_SUCCESS_CODE = 0;
public static final int AID_ERROR_CODE_NETWORK_ERROR = -30001;
public static final int AID_ERROR_CODE_NETWORK_DATA_EMPTY = -30002;
public static final int AID_ERROR_CODE_NETWORK_PARSE_FAILED = -30003;
public static final int AID_ERROR_CODE_LAST_DIALOG_ERROR = -30004;
}
11、版本信息
当前SDK版本可通过以下方式获取:
// Agent SDK 业务版本
NSString *version = [[AMapAgentClientManager shareInstance] version];
NSLog(@"SDK版本: %@", version);
// Link SDK 业务版本
NSString *linkVersion = [[AMapLinkManager sharedInstance] linkVersion];
