使用 Android Auto 时,每次导航提示都会把音乐音量降到约 20%。即使在车机(MMI)和导航应用两边都关闭了"导航时降低媒体音量"也照样发生。这种闪避(ducking)由手机的 Android 框架引起,而不是车机。如果是三星 Galaxy,用 Good Lock 里 Sound Assistant 的一个开关即可关闭。2026-07-14 的实际驾驶通过
dumpsys audio实测确认,在此组合下闪避已消失。
本文帮助遇到相同症状的人 (1) 确认原因,(2) 在三星手机上解决。截至 2026-07,在三星 Galaxy S25 Ultra(Android 16 / One UI 8.5)+ Audi A5(2026, B10)+ Android Auto(USB)组合上,通过 adb shell dumpsys audio 直接确认。
从 Android 8.0(Oreo)开始,当某个应用以 AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK 类型请求音频焦点时,框架会直接降低其他应用的音量。 衰减量为固定的 -14dB(线性刻度约 0.2,即 20%)。不是应用自己调节音量,而是操作系统介入。
导航应用每次播放提示音都会请求这个 MAY_DUCK 焦点,因为 Google 的 Android Auto 导航应用指南要求在播放导航语音时请求 USAGE_ASSISTANCE_NAVIGATION_GUIDANCE + MAY_DUCK。也就是说导航应用遵守了规范,代价是被强制触发框架自动闪避。
adb shell dumpsys audio 的事件日志原样记录了这一过程。
导航应用在每次提示时请求焦点(req=3 = GAIN_TRANSIENT_MAY_DUCK):
07-13 22:28:57:337 requestAudioFocus() from uid/pid 10399/10098
AA=USAGE_ASSISTANCE_NAVIGATION_GUIDANCE/CONTENT_TYPE_SPEECH
callingPack=com.nhn.android.nmap req=3 flags=0x0
框架把音乐播放器从音量 1.0 → 0.2 闪避,提示结束后恢复:
07-13 22:28:57:338 ducking player piid:20199 (com.apple.android.music)
usage=USAGE_MEDIA ... VolumeShaper.Configuration{ mDurationMs=500.0, mVolumes[]=[1.0, 0.2] }
07-13 22:29:04:133 unducking piid:20199
ducking/unducking 事件与每次导航提示的开始和结束一一对应。
Android Auto 的结构是手机渲染音频后通过 USB 流式传输给车机。媒体和导航语音走不同的通道,由车机混音。在上面的日志中,音乐在手机内部就已经被降到 20%,所以车机收到的本来就是已经变小的声音。 这就是无论怎么改 MMI 设置都没用的原因。
adb dumpsys audio 显示音乐播放器和导航语音播放器渲染到不同的虚拟输出(deviceId),以及 Android Auto 会话(gearhead)的活动区间。闪避在混音器(AudioTrack)层级应用,因此输出给车机的媒体 PCM 本身就已经衰减。
需要注意,有些车机在导航语音通道激活时会额外衰减(双重闪避)。但本例仅凭手机侧的闪避就能完全解释整个症状。
Apple Music 不自行处理闪避(未声明 willPauseWhenDucked),因此由框架对其自动闪避。相比之下,像 Spotify 这样的应用会自己检测焦点丢失并调节自身音量,因此不会触发框架自动闪避,表现可能不同。若想隔离原因,可换一个音乐应用对比。
One UI 7 及以上的三星手机在框架中有一个忽略此闪避的标志(mIgnoreDuckingByNavigation)。默认为关闭。只能通过 Good Lock 中 Sound Assistant 模块的开关打开,adb settings put 无法更改(它不是 settings 数据库的键,而是 AudioService 的内部设置)。
工作原理: 如果取得焦点的应用其 usage 为 USAGE_ASSISTANCE_NAVIGATION_GUIDANCE,则跳过本地媒体闪避。这与本例(导航 usage = 导航引导,音乐在本地被闪避)完全吻合。
步骤:
adb shell dumpsys audio | grep -i ignoreducking
# 出现 mIgnoreDuckingByNavigation=true 即表示已生效
验证效果(驾驶后):
adb shell dumpsys audio > dumpsys_audio_after.txt
grep -E 'ducking player|unducking' dumpsys_audio_after.txt
如果在提示音前后没有出现 ducking player ... com.apple.android.music 事件,说明手机侧的闪避已解除。
实测验证(2026-07-14 实际驾驶): 在标志打开的状态下驾驶后再导出,导航应用仍然请求
req=3(MAY_DUCK)焦点(驾驶区间内 15 次),Apple Music 也在同时播放,但ducking player/unducking/VolumeShaper事件为0 次。对同一组合仅把标志改为打开,手机侧的闪避就完全消失了,实际听感上提示时音乐也不再变小。
dumpsys audio的事件环形缓冲区保留时间不长。要在驾驶结束后立即导出,才能保留提示时段的闪避事件。
注意: 社区报告中也有此开关在 Android Auto 会话下不起作用的案例(取决于车型和应用组合)。不过,当 dumpsys 确认闪避发生在手机框架时——如本次分析——该开关很可能有效,上面的实测验证就是一例。对于不同的组合,应用后请用上述步骤自行验证。
mIgnoreDuckingByNavigation 是三星 One UI 特有的功能。原生 Android、其他厂商和 iPhone(CarPlay)都没有这个开关。Android Auto(gearhead)本身也没有关闭闪避的设置,截至 2026-07 也没有 Google 官方的修复方案。这种情况下,换成能自行处理闪避的音乐应用(如 Spotify)是较现实的变通办法。
这不是 Audi 独有的问题。在多个品牌(Ford、梅赛德斯-奔驰、雪佛兰等)和多个导航应用(Naver Map、TMAP 等)上都有相同报告。许多用户测试称"仅用手机/蓝牙播放正常,只在 Android Auto 连接时才闪避",这与上面的分析(手机框架是原因)一致。它源于 Android Auto 投屏这一共同架构。
关于用 adb 缩小另一个 Android Auto 问题的案例,参见无线 Android Auto 反复断连诊断。