AAOS-Flags für die Audiokonfiguration

In Android Automotive OS (AAOS) werden Flags und Konfigurationen verwendet, um verschiedene Funktionen zu aktivieren, angefangen beim dynamischen Routing bis hin zu allgemeineren Feature-Flags wie der Lautstärkeregelung über den Autoservice. Die aktuellen AAOS-Konfigurationsflags für die Audioverwaltung werden hier beschrieben.

Flag Zweck
audioUseDynamicRouting In der Konfigurationsdatei des Autoservice definiert, um AAOS-Routing zu aktivieren. Die Konfiguration muss auf true festgelegt sein. Wenn false, sind Routing und ein Großteil von CarAudioService deaktiviert und das Betriebssystem greift auf das Standardverhalten zurück, das unter Audio-Richtlinien konfigurieren beschrieben wird.
useCoreAudioRouting In der Konfigurationsdatei des Autoservice definiert, um die Verwaltung des AAOS-Kern-Audio-Routings zu aktivieren. Wenn der Wert auf true gesetzt ist, verwendet der Car Audio-Dienst die Konfigurationsdefinitionen, die mit der konfigurierbaren Audio Policy Engine eingerichtet wurden. Wenn der Wert auf false gesetzt ist, wird für die Verwaltung des Routings die dynamische Audio-Richtlinienmixdefinition des Car Audio-Dienstes verwendet, die mit audioUseDynamicRouting konfiguriert wurde.
useCoreAudioVolume Wird in der Konfigurationsdatei des Autoservice definiert, um die Lautstärkeregelung für AAOS-Core-Audio zu aktivieren. Wenn der Wert auf true gesetzt ist, verwendet der Car Audio-Dienst die mit der konfigurierbaren Audio-Richtlinien-Engine eingerichteten Lautstärkegruppendefinitionen. Wenn der Wert auf false gesetzt ist, wird für die Lautstärkeverwaltung die Standarddefinition der Lautstärkegruppe des Car Audio-Dienstes verwendet, die mit audioUseDynamicRouting konfiguriert wurde.
audioUseCarVolumeGroupMuting In der Konfigurationsdatei des Autoservice definiert, um das Stummschalten einzelner Lautstärkegruppen zu ermöglichen. Wenn der Wert auf false (Standardwert) gesetzt ist, ist das Stummschalten einzelner Lautstärkegruppen deaktiviert. Stattdessen wird durch das Stummschalten die Hauptstummschaltung aktiviert oder deaktiviert. Wenn diese Option auf true eingestellt ist, ist die Stummschaltung der Autolautstärkegruppe aktiviert und jede einzelne Lautstärkegruppe kann separat stummgeschaltet werden. Bei true muss die Stummschaltung der Lautstärkegruppe in der Audio Control HAL implementiert werden.
audioUseHalDuckingSignals In der Konfigurationsdatei des Autoservice definiert, um die IAudioControl#onDevicesToDuckChange API zu aktivieren, damit das HAL darüber informiert wird, wann die Lautstärke reduziert werden soll. Bei true (Standardwert) empfängt die API Signale, die angeben, welche Ausgabegeräte geduckt werden sollen und welche Verwendungen den Fokus behalten. Wenn false, wird die API nicht aufgerufen. Die API wird nur aufgerufen, wenn das Audio Control HAL Ducking implementiert.
config_oemCarService Dies ist der Komponentenname für den OEM-Anpassungsdienst, der in der Konfigurationsdatei des Autoservice definiert ist. OEMs können diesen Dienst implementieren, um Autoserviceaktionen für verschiedene Richtlinien anzupassen. Wenn OEMs diese Komponente implementieren möchten, müssen sie einen Dienst implementieren, um OemCarService zu erweitern, das von car-lib bereitgestellt wird, und dann die erforderlichen Komponentendienste implementieren. Speziell für den Car Audio Service können OEMs einen der Audio-Unterdienste implementieren, um Audioaktionen zu verwalten. Weitere Informationen finden Sie unter Car Audio Plugin Service. Wenn der Komponentenname ungültig ist, kann CarService keine Verbindung zu einem OEM-Dienst herstellen. Der Komponentenname darf kein Drittanbieterpaket sein. Es muss vorinstalliert sein.
audioVolumeAdjustmentContextsVersion

In der Konfigurationsdatei des Autoservice definierte Konfiguration zur Auswahl der Version der Prioritätsliste für den Kontext der Lautstärkeanpassung.

Version 1 enthält alle Audiokontexte in dieser Reihenfolge:

  • NAVIGATION
  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
  • CALL_RING
  • SYSTEM_SOUND
  • SAFETY
  • ALARM
  • NOTIFICATION
  • VEHICLE_STATUSEMERGENCY

Version 2 ist auf die folgenden Kontexte beschränkt (in dieser Reihenfolge):

Die Standardversion ist 1.

  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
audioPersistMasterMuteState In der Konfigurationsdatei des Autoservice definierte Konfiguration zum Beibehalten des globalen Stummschaltungsstatus. Wenn true (der Standardwert) festgelegt ist, stellt Android den globalen Stummschaltungsstatus beim Start wieder her. Wenn audioUseCarVolumeGroupMuting = true, hat dies keine Auswirkungen auf das Beibehalten von Stummschaltungsänderungen, da diese auf einzelnen Lautstärkegruppen basieren. Der Standardwert ist auf true festgelegt und muss überschrieben werden, wenn die Master-Stummschaltung nicht für ein Gerät beibehalten werden soll.
audioVolumeKeyEventTimeoutMs

In der Konfigurationsdatei des Autoservice definierte Konfiguration, um das Zeitlimit in Millisekunden anzugeben, während eine Autolautstärkegruppe bei Lautstärkeregelungsänderungen während Lautstärketasteneingaben als aktiv gilt. Die Konfiguration wird so verwendet:

  • Mit dem Zeitlimit wird festgelegt, ob eine Wiedergabe (die Lautstärke, die mit der Audioverwendung der Wiedergabe verknüpft ist) noch für die automatische Lautstärkeauswahl berücksichtigt werden kann, nachdem sie beendet wurde.
  • Das Zeitlimit wird auch als Pausendauer zwischen automatischen Lautstärkeanpassungen verwendet, um zu ändern, was der Nutzer anpasst.

Der Standardwert ist 3000 Millisekunden und sollte von OEMs angepasst werden, um die Nutzerfreundlichkeit zu optimieren.

audioUseCarVolumeGroupEvent In der Konfigurationsdatei des Autoservice definierte Konfiguration zum Aktivieren von Callback-Ereignissen für Lautstärkegruppen. Wenn true festgelegt ist, erhalten Clients über ICarVolumeGroupEvent einen Callback zu Ereignissen, die sich auf Volumengruppen auswirken. Wenn aktiviert:
  • Wir empfehlen Anbietern dringend, auch IAudioControl#setModuleChangeCallback und IAudioControl#registerGainCallback für Ereignisse und Änderungen an der Audiohardware zu unterstützen.
  • Wenn sowohl CarVolumeCallback als auch CarVolumeGroupEventCallback von derselben App registriert werden, werden die Rückrufe für den Lautstärkegruppenindex und die Stummschaltung der Lautstärkegruppe nur über CarVolumeGroupEventCallback gesendet. Wir empfehlen daher dringend, alle Apps zur neuen Callback-Schnittstelle zu migrieren, um eine gleichbleibende Leistung zu gewährleisten.
  • Der Standardwert ist false. Wir empfehlen, diesen Wert auf true festzulegen, da die APIs zur Unterstützung von Legacy-Volume-Callbacks eingestellt werden und bald vollständig entfernt werden.

config_useFixedVolume Definiert in frameworks/base/core/res/res/values/config.xml. Muss auf true gesetzt sein, damit der Car Audio-Dienst die Lautstärkeregelung verwalten kann. Wenn das Flag config_useFixedVolume nicht festgelegt oder auf false (Standardwert) gesetzt ist, können Apps die AudioManager-APIs zur Lautstärkeregelung aufrufen und die Lautstärke nach Streamtyp im Softwaremixer ändern. Dies kann unerwünscht sein, da es sich auf andere Apps auswirken kann und die Lautstärkeabschwächung im Softwaremixer dazu führen kann, dass weniger signifikante Bits im Signal verfügbar sind, wenn es am Hardwareverstärker empfangen wird. Neue Geräte, die nicht konfiguriert wurden und auf true eingestellt sind, empfangen Lautstärkeänderungen über die AudioManager-APIs für Lautstärke und Stummschaltung.
config_handleVolumeKeysInWindowManager Definiert in frameworks/base/core/res/res/values/config.xml, muss auf true gesetzt werden, damit der Car Audio-Dienst Lautstärketastenereignisse abfangen kann. Wenn der Wert auf false (Standardwert) festgelegt ist, können Lautstärketasteneingaben an die Vordergrund-App weitergeleitet werden. Dies kann zu unerwünschten Ergebnissen führen, wenn Lautstärketasteneingaben außerhalb des Car Audio-Dienstes verwaltet werden.
audioUseMinMaxActivationVolume In der Konfigurationsdatei des Autoservice definiert, um Mindest- und Höchstaktivierungsvolumen zu aktivieren. Wenn true, kann der Index für die Steigerung des Volumens aufgrund der Verwaltung des Mindest- und Höchstaktivierungsvolumens angepasst werden. Bei false (Standardwert) werden das Mindest- und das maximale Aktivierungsvolumen nicht berücksichtigt.
audioUseFadeManagerConfiguration In der Konfigurationsdatei des Autoservice definiert, um vom System erzwungenes Verhalten bei Verlust des Audiofokus zu aktivieren. Wenn true, parst das Car Audio-Framework die Konfigurationsdefinitionen für das Car Audio-Fading und wendet beim Senden des Audiofokusverlusts die entsprechende FadeManagerConfiguration an. Wenn false (Standardwert) festgelegt ist, erzwingt das System kein Einblendungsverhalten, wenn eine App den Audiofokus verliert.

Konfigurationen für den Car Audio Service

Vor Android 13 wurden Autoservice-Konfigurationen mit einem Produktkonfigurations-Overlay für die Datei packages/services/Car/service/res/values/config.xml überschrieben. Weitere Informationen finden Sie unter Build mit Ressourcen-Overlays anpassen.

PRODUCT_PACKAGE_OVERLAYS := <path_to_overlay>

Der Speicherort der Konfigurationsdatei von <path_to_overlay> zum tatsächlichen Speicherort sollte packages/services/Car/service/res/values/ enthalten.

RROs für Autoservice

Seit Android 13 unterstützt AAOS Laufzeit-Ressourcen-Overlays. Verwenden Sie ein RRO, um den Wert der Car-Audio-Konfiguration zu ändern. Beispiele finden Sie in der Referenz zu RROs für cuttlefish für die Automobilbranche in device/google/cuttlefish/shared/auto/rro_overlay/. Die audioUseDynamicRouting-Konfiguration wird in device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/values/config.xml überschrieben.

<resources>
    <bool name="audioUseDynamicRouting">true</bool>
...

Die Karte mit Ressourcen-Overlays befindet sich in device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/xml/overlays.xml:

<overlay>
...
  <item target="bool/audioUseDynamicRouting"
value="@bool/audioUseDynamicRouting" />
...
</overlay>

Das im device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/AndroidManifest.xml definierte Ressourcen-Overlay-Manifest enthält die targetPackage, die als com.android.car.updatable festgelegt ist.

Weitere Informationen finden Sie in diesen Ressourcen:

API mit aktivierter Funktion

Die Methode gibt true zurück, wenn die Funktion auf dem Gerät aktiviert ist, andernfalls false. In der CarAudioManager#isAudioFeatureEnabled API muss der übergebene Parameter einer der folgenden Werte sein:

  • AUDIO_FEATURE_DYNAMIC_ROUTING
  • AUDIO_FEATURE_VOLUME_GROUP_MUTING
  • AUDIO_FEATURE_OEM_AUDIO_SERVICE
  • AUDIO_FEATURE_VOLUME_GROUP_EVENTS
  • AUDIO_FEATURE_AUDIO_MIRRORING