Audiokonfiguration AAOS-Flags,Audiokonfiguration AAOS-Flags

Android Automotive OS (AAOS) verwendet Flags und Konfigurationen, um verschiedene Funktionen zu ermöglichen, angefangen beim dynamischen Routing bis hin zu allgemeineren Feature-Flags, wie z. B. der Lautstärkeregelung durch den Autoservice. Aktuelle AAOS-Konfigurationsflags für die Audioverwaltung werden hier beschrieben.

Flagge Zweck
audioUseDynamicRouting In der Autoservice-Konfigurationsdatei definiert, um AAOS-Routing zu aktivieren . Die Konfiguration muss auf true gesetzt sein. Bei false werden Routing und ein Großteil von CarAudioService deaktiviert und das Betriebssystem greift auf das Standardverhalten zurück, das unter „Konfigurieren von Audiorichtlinien“ beschrieben wird.
audioUseCarVolumeGroupMuting Definiert in der Konfigurationsdatei des Autoservices, um die Stummschaltung einzelner Lautstärkegruppen zu ermöglichen. Bei der Einstellung false (Standardwert) ist die Stummschaltung einzelner Lautstärkegruppen deaktiviert. Stattdessen wird durch Stummschalten die Master-Stummschaltung umgeschaltet. Bei Einstellung auf true ist die Stummschaltung der Auto-Lautstärkegruppe aktiviert und jede einzelne Lautstärkegruppe kann separat stummgeschaltet werden. Wenn true , muss die Stummschaltung der Lautstärkegruppe am Audio Control HAL implementiert werden.
audioUseHalDuckingSignals Definiert in der Konfigurationsdatei des Autoservice, um die IAudioControl#onDevicesToDuckChange -API zu aktivieren, um HAL zu informieren, wann sich ducken soll. Bei true (Standardwert) empfängt die API Signale, die angeben, welche Ausgabegeräte ausgeblendet werden sollen und welche Verwendungen den Fokus behalten. Bei false wird die API nicht aufgerufen. Die API wird nicht aufgerufen, es sei denn, die Audiosteuerungs-HAL implementiert Ducking.
config_oemCarService In der Konfigurationsdatei des Autoservices definiert, ist dies der Komponentenname für den OEM-Anpassungsservice. OEMs können sich für die Implementierung dieses Dienstes entscheiden, um Autoservice-Aktionen für verschiedene Richtlinien anzupassen. Wenn sich OEMs für die Implementierung dieser Komponente entscheiden, müssen sie einen Dienst implementieren, um den von car-lib bereitgestellten OemCarService zu erweitern, und dann die erforderlichen Komponentendienste implementieren. Speziell für Car-Audio-Dienste können OEMs jeden der Audio-Subdienste implementieren, um die Audio-Aktion zu verwalten. Einzelheiten 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 Paket eines Drittanbieters sein. Es muss vorinstalliert sein.
audioVolumeAdjustmentContextsVersion

Definiert in der Konfigurationsdatei des Autoservice, Konfiguration zur Auswahl der Version der Kontextprioritätsliste für die 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 in dieser Reihenfolge beschränkt.

Die Standardversion ist 1 .

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

Definiert in der Car-Service-Konfigurationsdatei, Konfiguration zur Anzeige des Timeouts in Millisekunden, während eine Car-Lautstärkegruppe für Änderungen der Lautstärkeregelung bei Lautstärketastenereignissen als aktiv gilt. Die Konfiguration wird wie folgt verwendet:

  • Timeout wird verwendet, um zu bestimmen, ob eine Wiedergabe (die mit der Audionutzung der Wiedergabe verbundene Audiolautstärke) nach dem Stoppen der Wiedergabe noch für die automatische Lautstärkeauswahl berücksichtigt werden kann.
  • Timeout wird auch als Pausendauer verwendet, die zwischen automatischen Lautstärkeanpassungen erforderlich ist, um zu ändern, was der Benutzer anpasst.

Der Standardwert beträgt 3000 Millisekunden und sollte von OEMs angepasst werden, um das Benutzererlebnis anzupassen.

audioUseCarVolumeGroupEvent Definiert in der Car-Service-Konfigurationsdatei, Konfiguration zum Aktivieren von Rückrufereignissen für Volumengruppen. Bei true erhalten Clients über ICarVolumeGroupEvent einen Rückruf zu Ereignissen, die sich auf Volume-Gruppen 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, dürfen der Volume-Gruppenindex und die Mute-Rückrufe der Volume-Gruppe nur über CarVolumeGroupEventCallback erfolgen. Daher empfehlen wir dringend, dass alle Apps auf die neue Callback-Schnittstelle migrieren, um eine konsistente Leistung sicherzustellen.
  • Der Standardwert ist false . Wir empfehlen, dies auf true zu setzen, da die APIs zur Unterstützung von Legacy-Volume-Callbacks veraltet sind und bald ganz 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 oder auf false (Standardwert) gesetzt ist, können Apps die AudioManager Lautstärkeverwaltungs-APIs aufrufen und die Lautstärke je nach Stream-Typ im Software-Mixer ändern. Dies kann aufgrund der möglichen Auswirkungen auf andere Apps und der Tatsache, dass die Lautstärkedämpfung im Software-Mixer dazu führen kann, dass beim Empfang am Hardware-Verstärker weniger signifikante Bits im Signal verfügbar sind, möglicherweise unerwünscht sein. 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 und muss auf true gesetzt werden, damit der Car-Audio-Dienst Lautstärketastenereignisse abfangen kann. Bei Einstellung auf false (Standardwert) können Lautstärketastenereignisse an die Vordergrund-App weitergeleitet werden und zu nachteiligen Ergebnissen bei der Lautstärketastenereignisverwaltung außerhalb des Car-Audio-Dienstes führen.

Konfigurationen für Car-Audio-Dienste

Vor Android 13 wurden Autoservice-Konfigurationen mit einem Produktkonfigurations-Overlay (weitere Informationen finden Sie unter Anpassen des Builds mit Ressourcen-Overlays ) für die packages/services/Car/service/res/values/config.xml überschrieben.

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/ umfassen.

Autoservice-RROs

Seit Android 13 unterstützt AAOS Runtime-Ressourcen-Overlays . Verwenden Sie ein RRO, um den Wert der Car-Audio-Konfiguration zu ändern. Sehen Sie sich beispielsweise die RROs für die Automobil- cuttlefish 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 Ressourcen-Overlay-Karte ist in device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/xml/overlays.xml enthalten:

<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 das targetPackage , das als com.android.car.updatable festgelegt ist.

Weitere Informationen finden Sie in diesen Ressourcen:

Funktionsfähige API

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 sein:

  • AUDIO_FEATURE_DYNAMIC_ROUTING
  • AUDIO_FEATURE_VOLUME_GROUP_MUTING
  • AUDIO_FEATURE_OEM_AUDIO_SERVICE
  • AUDIO_FEATURE_VOLUME_GROUP_EVENTS
  • AUDIO_FEATURE_AUDIO_MIRRORING