跳转至

米德宝/银河迁移到开放 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

操作顺序

  1. 引入公开 Contract/Client SDK,声明 ACCESS_EVCC_API 和 EVCC 包可见性。
  2. 引导车机用户打开音乐转发,在开放 API 的应用权限页授予 music.read 和 music.listen;需要播控才勾选 music.control。原有授权也需要明确增加新权限。
  3. 建立授权会话并查询能力,使用新状态模型;自动完整歌词由 SDK 处理,Java 示例随 Demo 一起编译和打包。
  4. 同时迁移属性、变量、写入。原属性 JSON 的业务 key 与显示映射由客户端转换为 selector/变量名及本地显示逻辑,不要求 EVCC 用户继续维护旧配置。
  5. 测试时可以保留两套客户端,但只选一条链路作为业务源;切换先清空旧状态和订阅。开放 API 撤权或关闭后不得自动回退旧服务绕过用户选择。
  6. 关闭米德宝 AIDL 开关,确认歌曲、完整歌词、当前行、进度、BPM、属性和变量仍正常,再移除客户端旧 AIDL 依赖。

退役条件

旧服务至少保留一个完整发布周期。只有银河新版完成独立授权、断线恢复和车机验收,且停用公告已发布后,才另行发布移除版本;本期没有确定停用日期,也不宣称旧服务已关闭。完成 EVCC 服务端与 Demo 验证不等于银河正式客户端已经迁移。

新能力定义与边界见音乐与歌词,旧资料继续用于维护未迁移客户端。