Skip to content

feat: 接入实验性 Android Auto 本机/USB/TCP 协议源 - #39

Merged
fython merged 5 commits into
mainfrom
feat/28-android-projection
Oct 23, 2026
Merged

fython merged 5 commits into
mainfrom
feat/28-android-projection

Conversation

@fython

@fython fython commented Oct 23, 2026 •

Copy link
Copy Markdown
Owner

为多输入源框架增加实验性的 Android Auto 本机、USB AOA 和显式 TCP Head Unit Server 接入:手机视频进入公共视频输出,浏览器触控转换为 AAP 输入事件。底部中间 Tab 改为“输入源”,按 CarPlay (iPhone)、Android Auto、ICCOA CarLink、诊断源展示大卡片,具体连接和设置放入各自二级页面。

Refs #28。本 PR 交付实验性 Android Auto 接入,不关闭完整多协议支持需求。

实现范围

  • 本机快捷连接固定使用 127.0.0.1:5277,提供首次设置引导、设置跳转及失败后恢复引导;仍需用户手动开启 Android Auto 开发者模式和 Head Unit Server。
  • USB 权限、AOA 切换/重新枚举及 bulk 传输;远程 TCP 使用用户指定的 IPv4 地址和 5277 端口。
  • AAP 版本交换、TLS 1.2、服务发现、通道管理、ping、焦点与退出;H.264 720p/30、逐片 ACK、有界媒体队列、最多 10 点触控和夜间模式。
  • 宿主本机播放三路 PCM;已授权且启用 Android 麦克风时提供录音回传与 ACK 窗口。浏览器音频能力独立声明。
  • 输入源页面导航不切换会话;停止操作仅作用于对应输入源,支持返回、Tab 重选及旋转/重建恢复。

异常恢复

  • PCM 部分写入保留剩余数据,缓冲区暂满时在播放线程重试;停止/焦点丢失可取消,设备错误或持续无进展会结束会话并保留实际错误原因。
  • 关键帧焦点通知无效时,2 秒后执行焦点释放/恢复;间隔至少 10 秒,每会话最多 3 次。仍无 IDR 时提示重连,停止或手机切回本地界面会取消恢复。
  • USB 授权等待锁注册后再次检查停止状态,避免停止恰好发生在注册前时继续等待 45 秒;取消路径释放广播接收器和 PendingIntent。

验证与限制

  • 当前提交 e0e5121:shared/common 完整单元测试 815 项通过,零失败、零跳过;其中 Android Auto 专项 18 项通过。
  • 新增 10 项回归测试覆盖 PCM 部分写入/缓冲区满/取消/错误、USB 取消竞态和关键帧恢复策略;扩展真实 SSLEngine + socket 模拟手机测试,覆盖忽略焦点通知、媒体 stop/start、恢复视频及正常退出。
  • Web 单元测试 167 项通过。
  • GitHub Actions #97 全部通过,包括构建检查及 Android 28 / 36 浏览器 HTTP 运行验证。
  • :mobile:assembleDebug、:common:assembleDebugAndroidTest、:mobile:lintDebug 全部通过;lint 无 Error/Fatal,保持 20 项 Warning。

尚未完成真实 Android Auto 手机/USB 硬件验收。 模拟端测试不能证明所有 AA 版本兼容;本机音频焦点、语音助手、CarPlay/AA 切换和拔插清理仍需真机验证。不包含自动无线发现/配对、浏览器音频/麦克风、Now Playing、HFP、动态分辨率或自动重连。

ICCOA 协议尚未实现。 公开 MiAuto 仓库缺少专有 icar-sdk.dex 运行库;ICCOA 卡片与二级页说明暂不可用,不提供无效连接操作,底层也在切源前拒绝启动。后续取得适用 SDK 后另行适配与验证。

Shizuku/ADB 本机虚拟桌面方案单独跟踪于 #40,不包含在本 PR 中。连接说明、恢复策略、完整限制与真机验收清单见 docs/ANDROID_AUTO.md。

@fython fython changed the title feat: 接入实验性 Android Auto USB/TCP 协议源 feat: 接入实验性 Android Auto 本机/USB/TCP 协议源 Oct 23, 2026
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

🚀 Deploying Preview to Cloudflare 🚀

Preview Deployments by commit

Status Deployment URL Commit Updated (UTC) See this deployment's details
  • Build: Failed ❌

View logs ↗
e0e5121 2026-10-23T13:54:05.861Z View logs ↗
  • Build: Failed ❌

View logs ↗
e054158 2026-10-23T13:23:01.116Z View logs ↗

@fython
fython marked this pull request as ready for review October 23, 2026 13:59
@fython
fython merged commit a4e3a1f into main Oct 23, 2026
7 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants