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.

Melden Zweck
audioUseDynamicRouting In der Konfigurationsdatei des Autoservice definiert, um AAOS-Routing zu aktivieren. Die Konfiguration muss auf true festgelegt sein. Wenn false, sind das Routing und ein Großteil von CarAudioService deaktiviert und das Betriebssystem greift auf das in Audioprichtlinien konfigurieren beschriebene Standardverhalten zurück.
useCoreAudioRouting Wird 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-Richtlinien-Engine eingerichtet wurden. Wenn der Wert auf false gesetzt ist, wird für die Routenverwaltung die dynamische Audio-Richtlinienmixdefinition des Car Audio-Dienstes verwendet, die mit audioUseDynamicRouting konfiguriert wurde.
useCoreAudioVolume In der Konfigurationsdatei des Autoservice definiert, um die Lautstärkeregelung von AAOS-Kernaudio zu aktivieren. Wenn der Wert auf true festgelegt 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 Wird 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. Wenn diese Option auf true eingestellt ist, ist die Stummschaltung der Lautstärkegruppe für das Auto aktiviert und jede einzelne Lautstärkegruppe kann separat stummgeschaltet werden. Wenn true, muss das Stummschalten der Volume-Gruppe in der Audio Control HAL implementiert werden.
audioUseHalDuckingSignals In der Konfigurationsdatei des Autoservice definiert, um die IAudioControl#onDevicesToDuckChange API zu aktivieren, damit HAL informiert wird, wann die Lautstärke reduziert werden soll. Wenn 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-Dienst können OEMs einen der Audio-Unterdienste implementieren, um Audio-Aktionen 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ätenliste 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 beim Starten den globalen Stummschaltungsstatus 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 true und muss überschrieben werden, wenn die Master-Stummschaltung nicht für ein Gerät beibehalten werden soll.
audioVolumeKeyEventTimeoutMs

Wird in der Konfigurationsdatei des Autoservice definiert. Konfiguration zur Angabe des Zeitlimits in Millisekunden, während eine Autolautstärkegruppe bei Lautstärketastenereignissen als aktiv für Lautstärkeregelungsänderungen 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, erhalten Clients über ICarVolumeGroupEvent einen Callback für Ereignisse, die sich auf Volumengruppen auswirken. Wenn aktiviert, gilt Folgendes:
  • Wir empfehlen dringend, dass Anbieter auch IAudioControl#setModuleChangeCallback und IAudioControl#registerGainCallback für Ereignisse und Änderungen an der Audiohardware 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. Daher empfehlen wir 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ärkeverwaltung aufrufen und die Lautstärke nach Streamtyp im Softwaremixer ändern. Das 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, erhalten Lautstärkeänderungen über die AudioManager-APIs für Lautstärke und Stummschaltung.
config_handleVolumeKeysInWindowManager Muss in frameworks/base/core/res/res/values/config.xml definiert und auf true gesetzt werden, damit der Car Audio-Dienst Lautstärketastenereignisse abfangen kann. Wenn der Wert auf false (Standardwert) festgelegt ist, können Lautstärketastenereignisse an die Vordergrund-App weitergeleitet werden. Dies kann zu unerwünschten Ergebnissen führen, wenn Lautstärketastenereignisse 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 Volumensteigerung 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 die entsprechende FadeManagerConfiguration an, wenn der Audiofokus verloren geht. Bei false (Standardwert) 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> bis zum tatsächlichen Speicherort muss packages/services/Car/service/res/values/ enthalten.

RROs für Autodienste

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 cuttlefish-Referenz 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 den targetPackage-Satz als com.android.car.updatable.

Weitere Informationen finden Sie in den folgenden Ressourcen:

API mit aktivierter Funktion

Die Methode gibt true zurück, wenn das Feature 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