米德宝/银河迁移到开放 API¶
最后更新:
目标是客户端完全改用 EVCC 开放 API 1.1,标准接口优先于旧 JSON 兼容。旧 v3 服务本期保持原事务、格式、开关和签名校验,只进入弃用过渡期;不会自动搬迁旧授权。
| 旧接口/语义 | 新接口/语义 |
|---|---|
getProtocolVersion() |
getApiInfo(),验证 major=1、minor>=1 |
| 固定包名和签名放行 | 用户为当前签名应用授予所需 music/property/variable 权限 |
getMusicSnapshotJson() |
readMusicState(),直接读取类型化字段 |
registerMusicCallback() / 注销 |
setMusicSubscription(true/false) |
onMusicStateChanged(String) |
onMusicStateChanged(EvccMusicState, sequence, eventType) |
onLyricsChunk() |
状态里的 lyricsRevision + readMusicLyrics(state),不再拼接分片 |
streamId 和音乐专属 sequence |
sessionId、SDK 连接代次和统一会话 sequence;不要混用旧基线 |
getSnapshotJson() 与属性回调 |
属性和变量的类型化读取及整集合订阅 |
writeProperty(id, area, value) |
writeProperty(EvccWriteRequest),显式处理来源与类型 |
| 自定义 key / map / 显示名称 | 保留在客户端业务映射中,不增加米德宝专用 API |
操作顺序¶
- 引入公开 Contract/Client SDK,声明
ACCESS_EVCC_API和 EVCC 包可见性。 - 引导车机用户打开音乐转发,在开放 API 的应用权限页授予
music.read和music.listen;需要播控才勾选music.control。原有授权也需要明确增加新权限。 - 建立授权会话并查询能力,使用新状态模型;自动完整歌词由 SDK 处理,Java 示例随 Demo 一起编译和打包。
- 同时迁移属性、变量、写入。原属性 JSON 的业务 key 与显示映射由客户端转换为 selector/变量名及本地显示逻辑,不要求 EVCC 用户继续维护旧配置。
- 测试时可以保留两套客户端,但只选一条链路作为业务源;切换先清空旧状态和订阅。开放 API 撤权或关闭后不得自动回退旧服务绕过用户选择。
- 关闭米德宝 AIDL 开关,确认歌曲、完整歌词、当前行、进度、BPM、属性和变量仍正常,再移除客户端旧 AIDL 依赖。
退役条件¶
旧服务至少保留一个完整发布周期。只有银河新版完成独立授权、断线恢复和车机验收,且停用公告已发布后,才另行发布移除版本;本期没有确定停用日期,也不宣称旧服务已关闭。完成 EVCC 服务端与 Demo 验证不等于银河正式客户端已经迁移。
新能力定义与边界见音乐与歌词,旧资料继续用于维护未迁移客户端。