Headunit App for displaying Android Auto
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 20 天前 | ||
| 19 天前 | ||
| 1 个月前 | ||
| 8 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 19 天前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 1 个月前 | ||
| 19 天前 | ||
| 9 个月前 | ||
| 8 个月前 | ||
| 9 个月前 | ||
| 2 个月前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 9 个月前 | ||
| 8 个月前 | ||
| 1 个月前 |
Open Headunit
Open Headunit 是一款 Android 应用,可将您的 Android 平板或手机转变为 Android Auto 接收器。本项目是 Michael Reid 大神所著原始 headunit 项目的重生版本。原始项目地址如下: https://github.com/mikereidis/headunit
注意!
Android Auto 17.4 将会破坏几乎所有无线连接方式,包括非原生或非 headunit 服务器的自模式连接。因此,Wireless Helper 将无法继续使用。 我们希望 Google 能在下一个 Android Auto 更新中撤回这些变更,但在此之前,我们只能耐心等待。如果您需要使用无线连接,请使用原生连接方式、手机上的 headunit 服务器,或购买无线 Android Auto USB 转接器。
截图
使用方法
请查阅 Wiki 获取详细的文档、设置指南和故障排除信息!
有线 USB 连接
- 使用 USB 数据线将您的 Android 手机连接到运行 Open Headunit 的平板设备。
- 确保您的手机已安装 Android Auto。
- 如有必要,将手机设置为主机模式(Host-Mode),并选择 Android Auto。
- 在 Open Headunit 中点击 USB 按钮,找到您的手机,然后点击右侧按钮以允许连接。
- 在列表中点击您的手机,等待 Android Auto 启动。
无线辅助模式(推荐)
这是最可靠的无线连接方式。它通过手机上的配套应用来触发连接。
- 下载: Google Play 商店中的 Wireless Helper
- 功能特点: 配置极简,支持 NSD、Wi-Fi Direct 自动连接以及蓝牙自动启动。
设置步骤:
- 在 Open Headunit 的设置中:将 无线模式 设置为 辅助模式(Helper Mode)。
- 确保两台设备处于同一网络中(热点或 WiFi)。
- 在手机上打开 Wireless Helper 应用并启动服务。
- 辅助应用会自动找到您的 headunit 并发起连接。
传统无线连接选项
- 无线启动器: 您仍可使用 Emil Borconi 开发的原始 Wireless Launcher。
- 手动 / 原生模式: 使用 Android Auto 开发者设置内置的原生“Headunit Server”功能(在 10.x.x.x 网段下可能连接失败)。
通过 Intent 无线连接(高级用户)
您可以通过 Android Intent 触发无线连接尝试。这适用于 Tasker、MacroDroid 等自动化工具,或通过 ADB 进行操作。
URI 协议: headunit://connect?ip=<PHONE_IP>
ADB 命令示例:
adb shell am start -a android.intent.action.VIEW -d "headunit://connect?ip=192.168.1.25"
已知问题
- 竖屏模式下的谷歌地图: 在部分设备上使用竖屏模式时,谷歌地图内的触摸操作(搜索、滚动)可能无法正常工作。解决方法: 尝试在应用设置中将像素密度(DPI)调低至200以下(例如190),这通常能恢复全部功能。
- 无线连接断开: 若连接频繁中断,请在手机的Wi-Fi设置中关闭**“WiFi助理”或“网络自动切换”**功能,防止系统因“无互联网连接”而切断连接。同时请检查电池优化选项。
- Android 10(Q)及更低版本上的Self-mode模式: 谷歌已在Android Auto 16.4及以上版本中禁用了Android 10及更低版本的无线投影自动启动功能。虽然Self-mode在更新的Android版本上仍可使用,但在Android 10及更低版本上,使用最新的谷歌应用更新通常无法直接触发投影。解决办法: 在这些设备上仍可通过启动内置的Android Auto Headunit Server并以Wi-Fi模式(回环)连接来使用Self-mode模式。详细步骤请参阅故障排除指南。
- WiFi-Direct连接耗时过长: 有用户发现此问题与Google Assistant(而非适用于AA的Gemini)有关。如果在较新版本的AA上使用Gemini,连接即可恢复流畅。原因尚不明确。
- 卡在“Android正在启动”界面: 请在设置中检查视频编解码器,若您的设备不支持h265,请将其设置为h264。部分设备的h265解码器存在缺陷,这会导致应用卡在“Android正在启动”界面而无法开始投影。
计划中
- 为UI和应用本身提供更多自定义选项
更新日志
v.3.3.0-alpha
- 开始为应用引入主题功能。
- 将Wi-Fi代码从AapService中重构到独立类中,以提高可维护性,感谢@MrEAlderson。
- 新增USB黑名单过滤器,避免应用对非Android手机弹出请求。
v.3.2.6
- 修复旧版 Android 设备上设置界面崩溃及 DPI 输入问题
- 修复视频画面异常
- 修复无线连接栈故障后持续失效、需重启才能恢复的问题
- 恢复经典风格的 USB 列表
- 修复导入设置后主题失效的问题:导入设置后重新应用主题选择
v.3.2.5
- 修复应用进入后台后黑屏,以及丢帧导致的画面泛白问题
- 修复 headunit 服务器套接字泄漏
- 车载 GPS:在手机请求时及时提供车机定位数据,并保持持续输出
v.3.2.4
- 修复:无线连接出现短暂停滞时,视频和音频无法同步恢复的问题,感谢 @o-jcardenass
- 修复:原生 AA 唤醒操作导致车机自有免提连接中断的问题,感谢 @o-jcardenass
- 修复设置向导覆盖已上报的制造商信息的问题,感谢 @o-jcardenass
- 新增:允许蓝牙侧保留媒体按键控制,感谢 @o-jcardenass
v.3.2.3
- 新增自定义日志存储位置(应用文件夹或下载文件夹)
- 针对帧率/卡顿问题做进一步修复,感谢 @o-jcardenass 和 @andrecuellar 的协助
- 修复/热点配置无法读取的问题
- 原生 AA:当 P2P 组落在信道 12 或 13 时显示提示信息
v.3.2.2
- 修复定位跳变问题,尤其是在低速行驶时
- 再次修复视频解码器中的屏幕闪烁问题
- 修复视频吞吐量遥测与关键帧锁定问题,感谢 @o-jcardenass
- 修复方向盘按键失效的问题
- 新增无需创建 WiFi-Direct 的原生模式,感谢 @o-jcardenass
v.3.2.1
- 修复新欢迎界面反复出现的问题,感谢 @andrecuellar
- 修复每 10 秒出现一次屏幕闪烁的问题,感谢 @o-jcardenass
- 修复 KitKat 系统上的硬件解码问题,感谢 @o-jcardenass
- 修复 Play 控制台中显示的两个致命错误
- 修复:将麦克风时间戳移至加密载荷内部(第 4 字节),感谢 @bruno303
- 提升原生模式的兼容性和稳定性,适用于更多设备,感谢 @o-jcardenass
v.3.2.0
- 动态模式下连接时不再抢占音频焦点,感谢 @bnayahu
- 在 AA 音频播放期间获取临时音频焦点,感谢 @bnayahu
- 添加 GitHub Actions 持续集成(构建 + 单元测试),感谢 @bnayahu
- 修复在 DUDU 的画中画模式下画面卡住的问题,感谢 @MrEAlderson
- 修复(WiFi):使用公共 API 获取频率,感谢 @DerTeufel
- 新增像素宽高比设置,感谢 @axel92b
- 新增更多音频功能,可获取音频焦点,并支持作为设置项适配带 DSP 的车机
- 新增“在其他应用上层显示”权限,以提升与部分车机的兼容性,尤其是在 Self 模式下
- 修复多次重连后传输卡住的问题,感谢 @notathf
- 为 FYT 车机添加车钥匙按键支持,感谢 @MrEAlderson
- 新增水平翻转投影选项,用于抬头显示设备
- 自动从首帧后的视频显示停滞中恢复,感谢 @andrecuellar
- 重新设计设置界面和引导向导,提升易用性,感谢 @andrecuellar
- 修复多个 WiFi-Direct 和原生 AA 连接问题,感谢 @o-jcardenass、@andrecuellar 和 @notathf
- 多项杂项修复的合并请求,感谢 @MrEAlderson
- 在 AA 17.4 上,Self 模式现在会连接车机开发服务器,或打开 AA 设置以启动该模式
- 应用更名为 Open Headunit,以避免与 Headunit Reloaded (HUR) 混淆
v.3.1.1
- 减轻夜间模式与GPS等传感器事件的压力,并在
onConnected、onDisconnect和onDestroy中启停这些事件 - 合并了来自 @mmwtl 的 ffmpeg PR #625。该更新为 h265 增加了 ffmpeg 软件解码器,对旧设备而言收益显著。感谢!
- Wi-Fi Direct 相关改进:防止重复启动、实现优雅重置、清理失效分组
- 移除自动 Play 完整性校验,因此 Playstore 将不再检查许可证,也不会在车机中关联 Playstore 链接
- 为原生模式新增手动 BSSID 设置。这有助于解决应用无法获取 BSSID 的问题,感谢 @rakshan-kumr
- 新增 Wi-Fi 连接后立即进行网络扫描的功能,感谢 @MrEAlderson 的 PR
v.3.1.0
- 引入 libusb 作为原生 USB 协议栈的替代方案,以提升部分设备的兼容性
- 修复近方形设备在竖屏模式下的布局问题
- 为加载屏幕媒体新增缩放滑块
v.3.0.1
- 修复:断开连接时应用退出的问题
- 增强:优化 USB 工作流程,有望减少偶发的 USB 断开现象
- 修复 Android 6 以下设备的键盘输入问题
- 增强 Wi-Fi Direct 模式
- 完善部分设备的文件选择器
- 修复 Play 控制台中显示的若干致命错误
v.3.0.0
- 新增:自定义加载屏幕(图片/GIF/视频),感谢 @andrecuellar
- 新增:设置重置按钮,若设置出错可一键恢复默认值
- 移除:旧版基于 C 代码的弃用 SSL 库,以提升可维护性、稳定性和减小文件体积
- 新增:绕过 logcat 直接写入日志文件的功能,感谢 @Anton111111
- 再次尝试修复运营商信号丢失时的连接断开问题
- 保持 USB 断开连接后 8 秒存活,以应对 USB 适配器可能的重启
- 实现车灯信号模式(ILL+)用于夜间主题管理,感谢 @minhtuanact
- 新增设置导出与导入功能,并配备备份选项,感谢 @JanRi3D
- 为 USB 连接新增白名单机制,避免与 iPhone 及其他 USB 设备产生冲突
- 新增二维码,便于通过无线助手快速连接,感谢 @andrecuellar
- 修复:在 USB 会话期间,蓝牙自动连接将手机误带入无线流程的问题,感谢 @andrecuellar
- 同步持久化 Auto-Optimize 向导的设置,感谢 @andrecuellar
- 新增双指从屏幕右侧滑动以切换全屏模式与标准(含状态栏)模式的功能,感谢 @Anton111111
- 改进:USB 按钮自动连接功能,感谢 @bezprobeloff
- 捕获了 Play 控制台中列出的一个致命错误
- 修复:自 2.1.1 起部分设备出现的音频卡顿问题
- 修复:USB 设备列表重复以及 Android 10+ 上 Android Auto 投影启动问题,感谢 @jeancarloscc
- 增强:Google Nearby 功能。此前在 2 FPS 视频下存在异常
- 修复:导航按钮映射现已正常工作
v.2.3.1
- 修复了例如在边境地区连接丢失的问题
- 在可用时将 Socket 绑定到 Wi-Fi 网络,以避免因运营商网络丢失导致的连接中断
- 新增静态音频焦点开关,以防止在某些设备上丢失音频焦点
- 修复了三星日常程序与模式的问题
- 修复了手机持握方向不正确时启动方向错误的问题,现在会使用设置中的方向
- 尝试修复 AAwireless 无线投屏器导致的 USB 错误
- 新增音频混音器,可混合不同的音轨,感谢 @jeffdapaz 提出的想法
- 新增多设备蓝牙自动启动功能
- 修复了麦克风输入源映射错误的问题
- 新增越南语翻译 🇻🇳,感谢 @minhtuanact
- 合并 PR #549 —— 实现返回键路由并为返回键添加按键映射,感谢 @JanRi3D
v.2.3.0
- 为按键映射新增了一些按钮
- 修复了 3 个致命错误
- 修复了全志(Allwinner)设备的视频解码器设置
- 新增了新的导航意图(Intent)
- 合并了 PR #456
- 新增“Wi-Fi 自动启动”设置 #324
- 修复了原生 Android Auto 中 BSSID 为空的问题,现在应该能在更多设备上正常工作
- 修复了媒体会话相关的一个新的致命错误
- 重新添加了全屏覆盖层的系统图标显示 #351
- 将回车键(66)重新映射为 D-pad 中心键(23),以支持旋钮操作 #459
- 对相同按键事件在 100ms 内重复触发进行去抖处理 #465
- 将麦克风设置移动到独立的分区,并为 2.2.2 版本新增的麦克风增强功能增加了 3 个新选项,默认关闭以提升兼容性
- 合并 PR #481 —— 应用联发科(MediaTek)60fps 与音频优化,感谢 @mrkontrast-coder
- 对 AudioTrackWrapper 进行了部分重写,以增强稳定性并减少音频卡顿
- 合并 PR #490 —— 新增界面缩放设置,感谢 @Anton11111
- 合并 PR #502 —— 导航广播更新,感谢 @Bastel2020
v.2.2.2
- 修复:断开连接后退出现在也会同时退出车载模式
- 修复:退出意图无法关闭应用的问题
- 修复:在应用切换时方向显示不佳的问题(当您启用“自动或传感器”模式时)
- 再次:方向盘按键与按键映射进行了一些调整,希望能在更多设备上正常工作
- 扩展了麦克风调试功能,并添加了噪声抑制器、自动增益控制和声学回声消除器,以提升语音质量
- 修复了手机可能不弹出 Android USB 系统提示的问题。现在该提示默认启用,并可针对 USB 闪存盘单独关闭。该功能对应“监听 USB 设备”设置,同时将系统 USB 提示与自动启动行为解耦。这将恢复所有用户的原有功能,而厌烦非 Android Auto 设备弹出提示的用户也可以将其关闭
- 修复:当可用区域与协商区域不一致时,重新调整界面大小并更新 UI。该问题发生在那些虚报导航栏尺寸的设备上
- 修复:在低于 Android 5.0(Lollipop)的设备上断开连接时发生致命崩溃的问题
- 修复了英国及其他国家/地区超过 3 小时的自动夜间模式问题,感谢 @BinarySimple17
- 新增独立的音频流设置并更新相关功能,感谢 @Anton111111
- 增强:当音频输出关闭时,应用将不再尝试获取媒体焦点
v.2.2.1
- 修复了自 2.2.0 以来 UBS 连接中的致命错误。此修复至关重要,因此提前发布了此版本,尽管部分计划中的问题尚未完全解决
- Google Nearby Connection 现在在启用自动连接时会自动连接
- UI:为 Android 10 及以下版本的自模式添加了错误提示信息
- 采用新的缩放和触控方案,以避免偏移问题
- 修复了应用在应用抽屉中多次出现的问题
- 修复了例程和意图无法正常工作的问题
v.2.2.0
- 新增:原生 AA 支持。🎉 注意!此功能仅在部分车机上可用!大多数 Android 设备不支持通过蓝牙连接两台 Android 设备,而这是该功能运行的关键前提。
- 新增:Google Nearby 连接方式支持。需要 Wireless Helper 1.6.0 或更高版本
- 新增:画中画支持
- 新增:选择中的 4K 选项
- 尝试修复 WiFi 连接问题
- 新增:通过意图和例程直接启动应用到自模式的选项
- 新增:针对旧设备的 Surface View 强制缩放选项
- 新增:全新沉浸式全屏模式,自动避开刘海区域。这应能解决如 Pixel 手机等设备的显示问题
- 增强:视频解码器错误处理
- 新增:针对 WiFi-Direct 的 2 个新 WiFi 选项。感谢 @andrecuellar
- 新增日语支持 🇯🇵 感谢 @mattyann87
- 增强:媒体会话通知。感谢 @irwanrhmn
- 全新应用图标,移除文字以提升辨识度
- 修复:非 Android Auto 设备上出现的 USB 弹窗问题,感谢 @andrecuellar
- 新增:在设置中可配置音频队列和音频缓冲区,感谢 @irwanrhmn
v.2.1.1
- 修复:Android 4.2 上的布局崩溃问题
- 新增:启用热点选项。注意:此功能并非在所有设备上均可用,尤其是在 Android 13 之后!
- 新增:针对离线模式下新版 Android Auto 的虚拟 VPN 处理程序。由于无法再向 AA 发送网络信息,因此当设备处于离线状态时需要使用此方案
- 增强:音频焦点处理更加主动,希望能解决音频无法从平板/车机输出的问题
- 新增:自动启动功能。感谢 @andrecuellar
- 注意:GitHub 与 Play Store 版本的发布已被拆分。Google 不允许在离线自模式中使用虚拟 VPN,因此 Play Store 版本中不再包含此功能!
v.2.1.0
- 修复:退出意图(Exit Intent)无效的问题。感谢 benyjr
- 新增:旋钮(Rotary)支持
- 修复:Android 5 以下系统崩溃问题
- 修复:按钮双击触发,以及回车/旋钮点击映射为 D-pad 中心键的问题
- 增强:自启动模式下,Android Auto 启动现在会尝试所有方式并捕获异常
- 修复:自动启动、连接断开遮罩层、Toast 提示以及 API 17 蓝牙崩溃问题。感谢 @andrecuellar
- 新增:断开连接时退出应用的开关/设置项。感谢 @Tilak-03 和 @andrecuellar
- 增强:Wi-Fi 设置跳转已移除,现在仅显示 Toast 提示
- 修复:样式错误
v.2.0.2
- 修复:60FPS 从未生效的问题
- 修复:针对截断消息的 SSL 握手指纹修复
- 新增:应用自身的深色模式和极暗模式设置。感谢 @andrecuellar!
- 移除:应用类别中的 "maps" 属性,使导航按钮重新识别该应用
- 修复:多次按钮事件以及双击/三击跳转问题
- 修复:USB 权限请求问题。感谢 @Bastel2020
- 新增:禁用“拉伸适配”的设置项,可修复某些设备上的渲染错误。感谢 tsabaia
- 修复:旧设备非全屏模式下的触屏精度问题
- 修复:DPI 较低且屏幕较宽时,主界面大图标按钮的显示问题
v.2.0.1
- 修复:现代设备上出现多个音量滑块的问题(Pixel 9 修复)
- 新增:媒体按钮模拟支持(针对 MacroDroid 等工具的 SWC 改进)
- 新增:应用快捷方式和深链接,用于完全退出应用(headunit://exit)
- 新增:改进 Wi-Fi Direct 的可靠性,增加递归发现和 ping 切换机制
- 新增:罗马尼亚语翻译 🇷🇴,感谢 @LeeWiu
- 合并 PR #189:添加导航消息处理,感谢 @Bastel2020
- 合并 PR #215:修复 USB 重连竞争以及 AA 退出后残留 dongle 数据的问题,感谢 @andrecuellar
- 合并 PR #205:修复网络切换时无线 dongle 断开的问题,感谢 @andrecuellar
- 合并 PR #216:添加蓝牙 SCO 麦克风支持,感谢 tgigli
v.2.0.0
- 新增:Wi-Fi Direct(P2P)支持。无需共享网络或热点即可将手机连接到车机。车机现在会自动作为 P2P 对等设备被发现。
- 重构:连接核心重构。使用全新的 CommManager 彻底重写内部连接处理逻辑。稳定性提升、握手速度更快、协程集成更优。
- 增强:全屏逻辑增强。可在“沉浸模式”(隐藏全部)、“仅状态栏”(保留导航栏)和“无”之间选择。改善之前按钮被遮挡的设备的兼容性。
- 新增:自动优化向导。自动为您的特定硬件推荐最佳分辨率、DPI 和编解码器。
- 新增:MediaSession 早期初始化。修复音频路由问题,避免手机有时通过自身扬声器而非车机播放声音。
- 新增:全新日志系统。集成日志级别控制和文件捕获功能,便于调试。
- 重要:修复 Android Auto 16.4 在自启动模式下的 Intent 问题,无线助手同步修复。请更新至 1.2.0 版本。
v.1.15.1
- 新功能:新增自动优化向导,可自动为您的硬件寻找最佳分辨率、DPI 和编解码器设置。
- 缺陷修复:修复了在离线/热点场景下自助模式无法启动的问题(网络 ID 为 0 时的修复)。
- 缺陷修复:改进了音频路由。手机现在更有可能在连接后立即将音频路由到车机,这是通过使用带有远程播放元数据的提前初始化的 MediaSession 实现的。
- 缺陷修复:修复了 GPS 速度计算问题。之前由于单位换算错误(使用了节而非毫米/秒),速度显示为实际值的两倍。
- 界面:通过允许多行描述,提高了小屏幕上的设置可读性。
v.1.15.0
- 感谢 A5H0,新增阿拉伯语支持。
- 新增用于设置地图日间/夜间模式的 Intent。
- 为旧设备新增窗口标志,彻底修复全屏问题。
- 新增 Intent,使车机能够将本应用识别为导航应用。
- 新增 LegacyOptimizer,可针对单核 CPU 直接、快速地处理事务,应能提升 Android 4.1 - 4.4 设备的性能。
- 修复了蓝牙权限错误。
- 修改了暮光计算器,以便在自动模式下更好地切换日间/夜间模式,防止屏幕过亮。
- 新增更多 MediaSession 逻辑,以获取音频焦点和音频路由。
- 合并了连接屏幕上的重试按钮,感谢 @andrecuellar。
- 合并了 USB 自动连接功能,感谢 @andrecuellar。
v.1.14.3
- 自动化: 新增应用快捷方式,支持三星模式和日常程序。
- 导航: 已正式注册为导航服务提供商(兼容导航按钮)。
- 稳定性: 通过改进内部数据处理和内存管理,修复了罕见的应用冻结问题。
- 兼容性: 提升了对亚马逊 Fire 平板电脑和无 GPS 设备的硬件支持。
v.1.14.2
- 缺陷修复:通知和退出按钮现在可以正确关闭应用。
- 改进:移除了旧的隐藏蓝牙设置,防止蓝牙长时间后台开启。
v.1.14.1
- 改进:将 USB 自动连接整合到“自动连接上次会话”中。应用现在表现得像原生车机一样,在启动或插入 USB 时自动连接。
- 新功能:新增 USB 软复位逻辑。当 USB 出现“停滞”时,无需重新插拔线缆即可自动恢复。
- 重大改进:音频焦点和路由全面 overhaul。新增
MediaSession支持,并可向手机即时响应焦点请求。修复了平板后台应用会阻断 Android Auto 音频的问题。 - 改进:稳健的任务切换。通过主页键或点击启动器图标离开应用不再中断连接。音乐在后台继续播放,点击图标或通知可正确返回投影界面。
- 新功能:增强型按键调试器(“按键嗅探器”)。醒目地显示所有按键事件,包括特殊字符(ö, ü, ß)和专有的方向盘按键 Intent(MTC、FYT)。
- 新功能:官方导航应用注册。OpenHU 现在被识别为导航服务提供商(
geo:、google.navigation:、android.intent.action.NAVIGATE),兼容硬件“导航”按钮。 - 缺陷修复:移除了冗余的“已连接”和“需要重新连接”提示,优化用户体验。
- 本地化:所有新增文本均已翻译成 10 种语言。
v.1.14.0
- 新增独立音量设置 #91
- 新增蓝牙连接后自动启动选项
- 合并 PR #134 —— 修复 Mediathek 车载主机上的连接问题
- 合并 PR #131 —— 修复 Android 6 以下设备上的 SystemUI 问题
- 合并 PR #127 —— 修复音频截断问题
v.1.13.3
- 修复 Android 4 设备上标题栏与导航栏的屏幕显示问题 #114
- 修复夜间模式缺陷 #116
- 合并多个 PR,引入新的语言选择器以改进多语言处理。感谢 @andrecuellar
v.1.13.2
- 修复边距问题,现已支持 Android 5 Lollipop 之前的设备
- 修复若干警告
- 修复日间/夜间混合模式下颜色显示异常的问题
- 修复约 20 分钟后消息体积超出预期导致连接关闭的缺陷
v.1.13.1
- 为“自定义边距”对话框添加滚动视图支持
- 修复 Play 控制台中列出的 4 个应用崩溃问题
- 修复 Play 控制台中关于全面屏显示的 2 个警告
- 修复 SSL 读写过程中的竞态条件
- 防止 SSL 传输中因单个数据包损坏而触发断连
v.1.13.0
- 改进:USB 连接稳定性全面升级(采用 16KB 内部缓冲区)
- 新功能:新增“自定义边距(Margin)”设置,支持实时预览
- 修复:部分 AI-Box 上视频解码器黑屏问题(H.264 NAL 填充)
- 修复:设置界面中焦点问题导致系统栏重新出现
- 修复:重连过程中出现的原生 SIGABRT 崩溃
- 清理调试设置项
v.1.12.0
- 重大改进:无线连接机制全面重构(套接字复用、更优握手流程)
- 新功能:无线模式切换(手动扫描、自动扫描、无线助手支持)
- 新增:支持 Wireless Helper 配套应用
- 修复:Android 15(16KB 页大小)下原生库的兼容性问题
v.1.11.1
- 改进:现在同时检测 1440p 和 h265 支持情况。部分旧设备分辨率超过 1080p 但不支持 h265,导致 Android Auto 报错 11 崩溃
- 修复 KitKat 设备在搜索无线设备时的缺陷
- 合并 PR #94 —— 修复图标模糊问题。感谢 @nicoruy
- 合并 PR #95 —— 将设置改为独立视图以即时生效。感谢 @nicoruy
v.1.11.0
- 新功能:高级夜间模式(光线传感器、屏幕亮度、独立阈值、手动时间设置)
- 改进:修复音频卡顿问题(优化了 ACK 处理机制)
- 改进:提升 USB 重连稳定性(针对会话卡死新增“需要重新连接”提示对话框)
- 改进:优化 WiFi 发现功能(新增多接口扫描及 NSD/mDNS 支持)
- 新功能:增强服务通知(减少干扰信息,新增退出按钮)
- 新增:西班牙语翻译 🇪🇸,感谢 @andrecuellar
- 新增:乌克兰语翻译 🇺🇦,感谢 welshi32
- 修复:非全屏视图被拉伸,触摸位置可能偏移的问题
- 修复:Headunit Server 的 WiFi 连接现可兼容热点模式
v.1.10.4
- 新增:荷兰语翻译 🇳🇱,感谢 safariking
- 多项黑屏及连接错误问题优化
- 修复:未作为前台服务启动时后台崩溃的问题
v.1.10.3
- 修复:强制软件解码器并非始终启用软件解码的问题
- 新增:俄语翻译 🇷🇺,感谢 @prostozema
- 优化:修复视频解码器中的小问题,有助于低配置设备正常渲染(但运行速度可能稍慢)
v.1.10.2
- 修复:按键映射被忽略的问题 #71
- 新功能:屏幕方向锁定功能,可锁定为横屏或竖屏 #69,感谢 @JanRi3D
- 优化:SSL 连接将进行多次尝试,不再立即中断,感谢 @MicaelJarniac
- 新增:繁体中文翻译 🇹🇼,感谢 @GazCore
- 新增:捷克语翻译 🇨🇿,感谢 @teodortomas #75
- 修复:巴西葡萄牙语文件夹名称错误
v.1.10.1
- 修复:补充缺失的 3 字节起始码,解决部分设备无法启动投影的问题
- 合并 PR #68 - 修复 WiFi Direct 检测,感谢 @rakshan-kumr
- 合并 PR #67 - 新增巴西葡萄牙语翻译 🇧🇷,感谢 @MicaelJarniac
- 合并 PR #66 - 添加 Conscrypt 以修复低版本 Android 上的错误 7 🚀,感谢 @JanRi3D
- 当 PR #66 运行稳定后,旧的 jni 文件和 c 代码可考虑移除,从而进一步精简项目。
v.1.10.0
- 新功能:支持竖屏模式(仪表盘与投影),具备智能分辨率缩放。已知问题:地图无法响应触摸,此问题存在于所有Headunit应用中
- 新功能:重新设计的按键映射界面(配置更简便)
- 新功能:右侧驾驶位设置(#63)
- 新功能:自动连接上次会话(感谢 @JanRi3D)(#21)
- 新功能:在设置中启用后自动进入自管理模式
- 新功能:允许安装侧载应用(#57)
- 本地化:新增德语翻译 🇩🇪 欢迎贡献其他语言翻译
- 改进:TextureView 现为默认渲染器(对大多数设备兼容性更佳)
- 改进:修复仪表盘布局旋转问题
- 重写:视频解码器已完全重写,此前版本难以调试,现已移除异步模式等
v.1.9.0
- 新功能:GLES20 视频渲染器(修复旧款车机上的黑屏/画质异常/缩放问题)
- 新功能:应用内日志导出(保存到文件/分享),便于调试
- 改进:修复音频输出逻辑(始终声明系统音频)→ 修复音频输出禁用时出现的黑屏问题
- 改进:针对旧设备优化视频解码器(缓冲区大小调整、溢出处理)
- 希望修复:解决音频卡顿(缓冲区/队列逻辑恢复至稳定状态)
- 修复:部分设备上的视频分片问题(支持分帧/偏移2头)
- 修复:Android 5.1 上的崩溃问题(NoSuchMethodError)
- 修复:音频输出禁用功能不起作用
- 界面:统一对话框主题(青绿色/圆角),优化列表按钮
- 兼容性:确认支持 Android 4.1+(minSdk 16)
- 兼容性:重新启用原生 SSL 支持(JNI),提升旧设备性能(可在调试设置中切换)
v.1.8.1
- 修复全屏/非全屏布局问题(黑边、重叠)
v.1.8.0
- 新增音频输出设置(启用/禁用将音频路由至车机)
- 新增 AAC 音频支持设置(实验性)
- 将缓冲逻辑恢复至 v.1.4.1 默认值,修复音频卡顿问题
- 恢复稳健的视频解码器逻辑(SPS 解析),修复联发科设备上的黑屏/崩溃问题
- 修复导航栏和全屏切换时的视觉异常
- 改进列表项界面,提供更佳的点击反馈
- 修复 SSL 解密崩溃问题(ArrayIndexOutOfBoundsException)
v.1.7.0
- 新增 WiFi 网络发现(端口扫描)及自动连接功能
- 新增 Intent 支持(
headunit://connect?ip=...),便于自动化操作 - 新增 Wifi-Launcher 支持,并添加相应设置项
- 更新 README
v.1.6.3
- 首次启动时新增强制安全免责声明
- 提升音频稳定性,修复声音卡顿问题
- 通过透明系统栏增强全屏稳定性
- 修复 WiFi 断开同步问题(ByeBye 请求)
- 整体 UI 与稳定性改进
v.1.6.2
- 修复启动及全屏切换过程中的严重屏幕闪烁问题
- 解决平板及老旧设备上的视频解码器冻结问题
- 改进系统栏处理,提升投屏体验的稳定性
v.1.6.1
- 新增“关于”页面,包含版本信息、更新日志与许可证
- 新增“强制使用旧版解码器”(同步模式)设置,用于修复部分设备(如联发科)上的兼容性问题
- 改进 surface 处理,防止解码器重新配置时崩溃
- 修复设置中“未保存更改”对话框问题
- 更新 UI,统一返回箭头与主题风格
- 优化解码器初始化,修复部分设备黑屏问题
v.1.6.0
- 修复 Selfmode 在 WiFi 范围外无法使用的问题
- 全面重新设计应用外观与体验,采用现代 Material 3 风格
- 优化设置界面
- 大幅更新 Android Auto 协议
- 在 Android Auto 中点击退出将直接关闭投屏
v.1.5.0
- 完全重写视频解码器,提升视频性能
- 更新 Android Auto 协议,支持最新可用编解码器(如 h265)
- 新增 1440p 视频选项(注意:仅适用于 h265)
- 新增帧率设置
- 新增编解码器设置
- 新增强制使用软件解码器设置
- 整合 Android 原生 SSL 库,移除旧的 jni 文件
v.1.4.1
- 修复高分辨率设备上的触摸事件问题
- 移除文件日志,仅在调试模式开启时记录日志
v.1.4.0
- 新增 Selfmode
- 优化应用关闭流程
v.1.3.0
- 更改设置界面的外观与体验
- 新增 DPI 选项
- 新增全屏选项
- 修复键位映射变更与按钮识别问题
v.1.2.1 - 分辨率增强
- 对分辨率进行了一次小幅增强。在我看来尚未尽善尽美,但已较之前有所改善。
- 这是今年的最后一个版本。祝大家节日愉快,新年快乐。
v.1.2.0 - 错误修复版本
- 在应用程序中添加了退出按钮。
- 重新加入分辨率设置,以更好地兼容不同屏幕尺寸。
- 增加了纹理选择选项。部分设备在 SurfaceView 上表现更佳,而另一些则在 TextureView 上更为流畅。
- 修复了按键映射问题。
- 修复了大量颜色显示问题。
- 修复了部分设备在启动时应用崩溃的缺陷。
- 修复了宽屏上的布局问题。
- 进行了部分代码重构,并修复了一些小错误。
v1.1.0 - 全新设计
- 将基础设计改为现代风格,并增大了按钮尺寸。
- 希望通过音频线程及相关日志修复音频卡顿问题。
- 移除了一些已弃用的功能。
v1.0.0 - 初始复兴版本
- 将依赖项更新至最新版本。
- 提升了与新版 Android 系统的兼容性。
- 增加了多点触控支持。
- 通过手机端 Headunit-Server 实现了某种形式的无线支持。
参与贡献
生成发布版 APK 需要密钥库文件。您可以在根目录下使用以下命令创建自己的密钥库文件:
keytool -genkey -v -keystore headunit-release-key.jks -alias headunit-revived -keyalg RSA -keysize 2048 -validity 10000
之后,您需要根据操作系统设置环境变量: MAC: 打开 ~/.zshrc 或 ~/.bashrc
sudo nano ~/.zshrc 或 sudo nano ~/.bashrc
export HEADUNIT_KEYSTORE_PASSWORD="您的密钥库密码"
export HEADUNIT_KEY_PASSWORD="您的密钥密码"
原始 Headunit
适用于 Android Auto (tm) 的 Headunit 应用
享受 Android Auto 带来的整合性与低干扰驾驶环境,并不一定需要购买新车或价值 600 美元以上的车载主机。
这款 Headunit 应用可以将支持 USB Host 模式的 Android 4.1+ 平板设备,转变为兼容 Android Auto 的基础车载主机。
Android、Google Play、Google Maps、Google Play Music 和 Android Auto 均为 Google Inc. 的商标。

