Cases Android Automotive OS
Case study / Audio & integration

Audio focus loss is not proof of silence

A navigation prompt interrupts music. The focus log looks correct, but it cannot tell you what reached the driver's seat. An AAOS review needs separate evidence for policy, player behavior and output.

Yahagu Research · Published 2026-09-29 · Sources checked 2026-09-29 · 5 min read

Case scope

AAOS audio-focus and Audio Control HAL documentation, with Android media API references checked on 29 September 2026. System-enforced fade is discussed within its Android 15 and OEM-configuration scope.

The prompt finishes. What should the music do?

Three separate evidence layers: policy decision, player behavior and observed output
Yahagu review proposal. These are independent observations to correlate, not a guaranteed order of callbacks or measured vehicle behavior. Yahagu, Original Yahagu illustration. Unaltered except for display size.

Imagine reviewing a music app while a navigation prompt plays. The intended experience is simple: the driver hears the direction, then the music returns at its previous level. During the prompt, however, the app might pause, continue at reduced gain, or keep playing behind a system fade. A focus log alone cannot distinguish those outcomes.

This is a proposed integration scenario, not a report of a defect in a car. My recommendation is to review the policy decision, the player response and the output separately. Correlate their timestamps, but do not promote a callback into proof that a speaker became quiet.

Start by writing down the intended behavior for this interruption. Music can often tolerate reduced volume; spoken material may lose meaning when two voices overlap. Decide whether this product should pause or duck before judging a trace. Otherwise, two teams can agree that focus handling works while expecting different listening experiences.

The app's request describes an intention

AudioFocusRequest.Builder lets an app supply audio attributes, a focus-change listener and its preference to pause when ducked. setWillPauseWhenDucked(true) requires a listener; it declares how the app intends to respond. It does not implement the player's pause operation. [2]

For the proposed review, capture both the incoming event and the player action it triggers. A log entry at the listener's first line establishes receipt. A later player-state observation provides different evidence. Keep the original user request as well: a pause caused by an interruption should not erase a subsequent pause chosen by the user.

Delayed focus deserves its own state. AudioManager defines AUDIOFOCUS_REQUEST_DELAYED as a request that has not yet received its grant. Treating it like AUDIOFOCUS_REQUEST_GRANTED would start from the wrong premise. [3] In the UI, distinguish waiting to play from a failed request. If the user cancels while waiting, a later gain should not revive an intention that the user has withdrawn. That cancellation rule is a product recommendation, not a claim that Android maintains your app's intent state.

Concurrent focus still leaves a mixing problem

AAOS supports exclusive, rejected and concurrent interactions. Concurrent focus has specific prerequisites, including the incoming transient-may-duck request and the existing holder's ducking preferences. AOSP recommends separate output devices for streams that need independent downstream handling; mixing them together first limits that control. [1]

The Audio Control HAL documentation describes ducking notifications by zone and output-device address, with the usages holding focus. OEMs enable this path through audioUseHalDuckingSignals and implement the corresponding HAL behavior. Multiple usages can map to one device, which is why the active-usage information matters. [4]

For a navigation-over-music review, record the actual route mapping before blaming the app. If both streams share a path that cannot attenuate them independently at the relevant stage, a correct policy decision will not by itself produce the desired mix. This is a diagnostic possibility to inspect, not a finding about every shared route.

Choose the listening point deliberately. A recording at a digital tap answers a different question from a measurement near the driver's seat. Neither automatically describes a passenger zone. Keep the route, gain settings and observation location with the result so another reviewer can reproduce the same question.

Android 15 does not settle the configuration question

Official AOSP diagram connecting car audio fade configuration to Android audio policy and fade management
AOSP's system-enforced fade design, unmodified. Inspect the target build's configuration rather than assuming every component shown is enabled. Android Open Source Project, AOSP content license: Apache 2.0 documentation; CC BY 4.0 image attribution. Unaltered except for display size.

AOSP documents system-enforced fade for AAOS in Android 15. It uses OEM-defined rules to target eligible playback after focus loss. The audioUseFadeManagerConfiguration flag is disabled by default; enabling it and providing applicable configuration are separate from knowing the Android version. [1]

Ask the platform owner for the enabled configuration and the rule that covers the stream under review. Then test the intended behavior on that build. A version label, a configuration file found in a source tree, or a quiet speaker on one attempt does not establish that the expected rule ran.

Keep system intervention distinct from app cooperation. A system fade can reduce output while the player continues advancing. For an audiobook, restoring volume at a later position may mean the listener missed words. An app pause can preserve the position, but its resume behavior still needs review. These outcomes may sound equally quiet during the interruption and feel quite different afterward.

Read the evidence without overclaiming

These are proposed judgments for an integration review, not test results. Their purpose is to prevent a passing observation at one layer from hiding an unexamined outcome at another.

Review judgments for the illustrative interruption; no vehicle measurements.
ObservationSupported conclusionStill needs checking
Focus-loss callback loggedThe app received a notification.Player response and output at the intended listening point.
Request result is DELAYEDFocus has not yet been granted.Waiting state, cancellation and handling of a later gain.
Concurrent focus grantedPolicy permits the interaction.Actual routing, independent gain control and audible mix.
Build reports Android 15The documented fade feature is relevant to inspect.Enabled OEM flag and rules applicable to this stream.
Music is inaudible during the promptThat observation point has no audible music.Whether pause, fade, mute or routing produced the result.
Focus returns after the user pressed PauseThe focus state changed again.The app retains the user's decision instead of auto-resuming.

Include recovery in the acceptance result

An interruption review should finish after the prompt, not at its loudest moment. Check the return level, playback position and behavior when the user intervenes. Retain the evidence needed to distinguish app recovery from a change in system gain. Avoid a single success flag whose meaning differs between the app, audio and HMI teams.

For this scenario, I would accept the integration only when the chosen pause-or-duck behavior reaches the intended output and recovery respects the user's latest action. Set product-specific timing and audibility criteria with the responsible teams; this documentation analysis supplies neither safety thresholds nor a vehicle certification.

The official architecture image is reproduced without modification from work created and shared by the Android Open Source Project. AOSP's content-license page specifies Apache 2.0 for documentation and Creative Commons Attribution 4.0 for other site content, and requests image attribution. The separate observation diagram is original Yahagu work. [5]

Open questions

Product
Should this content pause or duck during the chosen interruption?
Integration
Which enabled configuration and output route apply to this stream?
Validation
Does recovery preserve playback context and the user's latest action?

Sources & scope

The interruption scenario and review outcomes are proposals, not vehicle or emulator measurements. This article does not certify warning audibility or describe a particular manufacturer's implementation.

  1. AAOS audio focus and system-enforced fadeEnglish original · Checked 29 September 2026
  2. AudioFocusRequest.BuilderEnglish original · Checked 29 September 2026
  3. AudioManager focus request resultsEnglish original · Checked 29 September 2026
  4. Audio Control HAL: ducking and output devicesEnglish original · Checked 29 September 2026
  5. AOSP content license and image attributionEnglish original · Checked 29 September 2026
Contact the editor

What would you add?

Share a different implementation, flag a correction, or tell us where this analysis helps with your work. A public source link is welcome.

Your message and email are stored privately for handling this request. Do not include confidential product information.