AAOS-Flags für die Audiokonfiguration

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

Melden Zweck
audioUseDynamicRouting In der Konfigurationsdatei des Autodienstes definiert, um AAOS-Routing zu aktivieren. Die Konfiguration muss auf true gesetzt sein. Wenn false, das Routing und ein Großteil von CarAudioService deaktiviert sind, greift das Betriebssystem auf das Standardverhalten zurück, das unter Audiorichtlinien konfigurieren beschrieben ist.
audioUseCarVolumeGroupMuting Wird in der Konfigurationsdatei des Autodienstes 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 die Stummschaltung der gesamten Videokonferenz deaktiviert oder aktiviert. Wenn true festgelegt ist, wird die Stummschaltung der Lautstärkegruppe im Auto aktiviert und jede einzelne Lautstärkegruppe kann separat stummgeschaltet werden. Bei true muss die Stummschaltung von Lautstärkegruppen in der Audio Control HAL implementiert werden.
audioUseHalDuckingSignals Wird in der Konfigurationsdatei des Autodienstes definiert, damit die IAudioControl#onDevicesToDuckChange API HAL darüber informieren kann, wann das Fahrzeug abgesenkt werden soll. Bei true (Standardwert) empfängt die API Signale, die angeben, welche Ausgabegeräte stummgeschaltet werden sollen und welche Verwendungen den Fokus haben. Bei false wird die API nicht aufgerufen. Die API wird nur aufgerufen, wenn die Audio Control HAL die Funktion „Ducking“ implementiert.
config_oemCarService In der Konfigurationsdatei des Autodienstes definierter Name der Komponente für den OEM-Anpassungsservice. OEMs können diesen Dienst implementieren, um Aktionen für Autoreparaturen für verschiedene Richtlinien anzupassen. Wenn OEMs diese Komponente implementieren möchten, müssen sie einen Dienst implementieren, um OemCarService zu erweitern, der von car-lib bereitgestellt wird, und dann die erforderlichen Komponentendienste implementieren. Speziell für den Autoaudiodienst können OEMs jeden der Audio-Unterdienste implementieren, um Audioaktionen zu verwalten. Weitere Informationen finden Sie unter Car Audio Plugin Service. Wenn der Komponentenname ungültig ist, stellt CarService keine Verbindung zu einem OEM-Dienst her. Der Komponentenname darf kein Drittanbieterpaket sein. Sie muss vorinstalliert sein.
audioVolumeAdjustmentContextsVersion

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

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 Autodienstes definierte Konfiguration, um den globalen Stummschaltungsstatus beizubehalten. Bei true (Standardwert) stellt Android beim Starten den globalen Stummschaltungsstatus wieder her. Wenn audioUseCarVolumeGroupMuting true ist, hat dies keine Auswirkungen auf dauerhafte Stummschaltungsänderungen, da diese auf einzelnen Lautstärkegruppen basieren. Der Standardwert ist true und muss überschrieben werden, wenn die Master-Stummschaltung für ein Gerät nicht gespeichert werden soll.
audioVolumeKeyEventTimeoutMs

In der Konfigurationsdatei des Autodienstes definierte Konfiguration, um das Zeitlimit in Millisekunden anzugeben, während eine Lautstärkegruppe für das Auto als aktiv für Änderungen der Lautstärkeregelung bei Lautstärketastenereignissen betrachtet wird. Die Konfiguration wird so verwendet:

  • Mit dem Zeitlimit wird ermittelt, ob eine Wiedergabe (Audiolautstärke, die mit der Audionutzung der Wiedergabe verknüpft ist) nach dem Ende der Wiedergabe noch für die automatische Lautstärkeauswahl berücksichtigt werden kann.
  • Die Zeitüberschreitung 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 Autodienstes definierte Konfiguration, um Rückrufereignisse für Volumegruppen zu aktivieren. Wenn true, erhalten Kunden über ICarVolumeGroupEvent einen Rückruf bei Ereignissen, die sich auf die Lautstärkegruppen auswirken. Wenn diese Option aktiviert ist, gilt Folgendes:

  • 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 sind, müssen die Rückrufe für den Lautstärkegruppenindex und die Stummschaltung der Lautstärkegruppe nur über CarVolumeGroupEventCallback erfolgen. Wir empfehlen daher dringend, alle Apps zur neuen Callback-Benutzeroberfläche zu migrieren, um eine gleichbleibende Leistung zu gewährleisten.
  • Der Standardwert ist false. Wir empfehlen, diese Einstellung auf true festzulegen, da die APIs zur Unterstützung alter Volume-Callbacks eingestellt und bald vollständig entfernt werden.

config_useFixedVolume Definiert in frameworks/base/core/res/res/values/config.xml. Muss auf true festgelegt sein, damit der Autoaudiodienst die Lautstärkeregelung verwalten kann. Wenn das Flag config_useFixedVolume nicht festgelegt ist oder auf false (Standardwert) gesetzt ist, können Apps die APIs zur Lautstärkeverwaltung AudioManager aufrufen und die Lautstärke im Software-Mixer nach Streamtyp ändern. Dies kann aufgrund der potenziellen Auswirkungen auf andere Apps und der Tatsache, dass die Lautstärkedämpfung im Software-Mixer zu weniger signifikanten Bits im Signal führen kann, wenn es am Hardwareverstärker empfangen wird, unerwünscht sein. Neue Geräte, die nicht konfiguriert wurden und auf true eingestellt sind, erhalten Lautstärkeänderungen über die AudioManager-Lautstärke- und Stummschalt-APIs.
config_handleVolumeKeysInWindowManager Muss in frameworks/base/core/res/res/values/config.xml auf true festgelegt sein, damit der Autoaudiodienst Lautstärketasten-Ereignisse abfangen kann. Wenn der Wert auf false (Standardwert) festgelegt ist, können Lautstärketasten-Ereignisse an die App im Vordergrund weitergeleitet werden. Dies kann zu unerwünschten Ergebnissen bei der Verwaltung von Lautstärketasten-Ereignissen außerhalb des Autoaudiodienstes führen.

Konfigurationen für Auto-Audiodienste

Vor Android 13 wurden die Konfigurationen für Mobilitätsdienste für die Datei packages/services/Car/service/res/values/config.xml mit einem Produktkonfigurations-Overlay ü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 Autoservice

Seit Android 13 unterstützt AAOS Laufzeitressourcen-Overlays. Verwenden Sie eine RRO, um den Wert der Autoaudiokonfiguration zu ändern. Siehe beispielsweise die RROs für die Referenz 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 für die Ressourcenüberlagerung 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 in 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 den folgenden 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