状态与错误码¶
最后更新:
业务方法优先通过记录或 EvccOperationResult.status 返回状态;Binder 连接死亡、Parcelable 不兼容等
传输问题则表现为 Android 异常或 SDK 连接事件。
| 状态 | 含义与处理 |
|---|---|
OK |
操作完成 |
ACCEPTED |
请求部分接受或异步任务已接收;等待逐项结果/回调 |
PENDING |
正在初始化,尚无最终值 |
AVAILABLE |
属性或变量当前值可用 |
UNAVAILABLE |
来源当前不可用;可等待来源恢复 |
TIMEOUT |
本次读取、目录或任务超时;不要无间隔重试 |
UNSUPPORTED |
当前来源、车型或版本不支持 |
NOT_FOUND |
ID、名称、变量或动作不存在 |
AMBIGUOUS_SOURCE |
多来源匹配且策略要求唯一;查看候选或指定来源 |
AMBIGUOUS_AREA |
多个区域无法自动选择;指定 areaId |
INVALID_ARGUMENT |
参数、类型、变量名、页令牌或长度无效 |
PERMISSION_DENIED |
当前授权不包含所需权限;由用户在 EVCC 中处理 |
RATE_LIMITED |
同步调用、属性写入、动作、全量扫描或 Shell 并发超过限制;按提示等待并退避 |
PAYLOAD_TOO_LARGE |
单条记录、动作参数或结果超过安全 Binder 预算;缩小字段/页大小,不能原样重试 |
SERVICE_DISABLED |
云端关闭 EVCC 开放 API,或当前应用授权已不可用 |
SESSION_CLOSED |
会话已经关闭、撤权或失效;重新读取授权状态 |
CANCELLED |
异步任务已取消或取消请求被接受 |
FAILED |
已执行但失败;记录 requestId、message 和来源状态排障 |
推荐分层处理¶
AVAILABLE / OK:消费结果。AMBIGUOUS_* / INVALID_ARGUMENT / PAYLOAD_TOO_LARGE:修正选择器、分页或数据大小,不自动原样重试。PERMISSION_DENIED / SERVICE_DISABLED:提示用户进入 EVCC,不循环绑定。UNAVAILABLE / TIMEOUT:有限退避并监听来源状态。SESSION_CLOSED或 Binder death:由 SDK 重绑;会话恢复后重新读取基线。FAILED:保留requestId,使用 Demo 或 EVCC 开放 API 控制台查看结构化审计日志。
不要向普通用户显示堆栈、车辆内部协议类名或原始敏感值。开发者导出日志时也应默认脱敏。
API 1.1 音乐能力¶
新增 STALE_RESOURCE:请求的歌曲或资源版本已过期,应重读状态;不要把另一个版本的数据写入旧状态。音乐 state 的 SERVICE_DISABLED 不表示整个会话关闭。资源 PENDING/NOT_FOUND 不代表连接失败。
音量写入的不确定结果¶
音量写入返回 TIMEOUT 或发生 Binder/传输异常时,不能推断没有执行。尤其不要直接重试 adjustVolumeGroup。恢复连接后显式读取系统值,再根据新状态生成操作;请求 ID 不是幂等键。见音量组。