Flag AAOS della configurazione audio

Il sistema operativo Android Automotive (AAOS) utilizza flag e configurazioni per attivare diverse funzionalità, dal routing dinamico a flag di funzionalità più generici, come il controllo del volume dal servizio auto. I flag di configurazione AAOS attuali per la gestione audio sono descritti qui.

Segnala Finalità
audioUseDynamicRouting Definito nel file di configurazione del servizio auto per abilitare il routing AAOS. La configurazione deve essere impostata su true. Quando false, il routing e gran parte di CarAudioService sono disattivati, il sistema operativo riprende il comportamento predefinito descritto in Configurazione dei criteri audio.
audioUseCarVolumeGroupMuting Definito nel file di configurazione del servizio auto per attivare il silenziamento dei singoli gruppi di volume. Se impostato su false (il valore predefinito), la disattivazione del volume dei singoli gruppi di volume è disattivata. La disattivazione dell'audio attiva invece la disattivazione dell'audio principale. Se impostato su true, l'impostazione di disattivazione del volume del gruppo dell'auto è attivata e ciascun singolo gruppo di volume può essere disattivato separatamente. Quando true, la disattivazione del volume del gruppo deve essere implementata nell'HAL Audio Control.
audioUseHalDuckingSignals Definito nel file di configurazione del servizio auto per consentire all'API IAudioControl#onDevicesToDuckChange di informare HAL quando abbattersi. Quando è true (valore predefinito), l'API riceve indicatori che indicano quali dispositivi di output mettere in modalità di attesa e quali utilizzi hanno il controllo. Quando false, l'API non viene chiamata. L'API non viene chiamata a meno che l'HAL di controllo audio non implementi il ducking.
config_oemCarService Definito nel file di configurazione del servizio auto, è il nome del componente per il servizio di personalizzazione OEM. Gli OEM possono scegliere di implementare questo servizio per personalizzare le azioni di servizio auto per diversi criteri. Se gli OEM scelgono di implementare questo componente, devono implementare un servizio per estendere OemCarService esposto da car-lib e poi implementare i servizi di componenti richiesti. In particolare, per il servizio audio per auto, gli OEM possono implementare uno qualsiasi dei sottoservizi audio per gestire l'azione audio. Per maggiori dettagli, vedi Car Audio Plugin Service. Se il nome del componente non è valido, CarService non si connetterà a nessun servizio OEM. Il nome del componente non può essere un pacchetto di terze parti. Deve essere preinstallato.
audioVolumeAdjustmentContextsVersion

Definito nel file di configurazione del servizio auto, la configurazione per selezionare la versione dell'elenco di priorità del contesto di regolazione del volume.

La versione 1 include tutti i contesti audio, in questo ordine:

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

La versione 2 è limitata ai seguenti contesti, in questo ordine.

La versione predefinita è 1.

  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
audioPersistMasterMuteState Definito nel file di configurazione del servizio auto, la configurazione per mantenere attivo lo stato di disattivazione globale. Quando è impostato su true (il valore predefinito), Android ripristina lo stato di disattivazione audio globale all'avvio. Se audioUseCarVolumeGroupMuting è equale a true, le modifiche alla disattivazione dell'audio non vengono conservate perché si basano sui singoli gruppi di volume. Il valore predefinito è impostato su true e deve essere sovrascritto quando la disattivazione audio principale non deve essere mantenuta per un dispositivo.
audioVolumeKeyEventTimeoutMs

Definito nel file di configurazione del servizio auto, la configurazione per indicare il timeout in millisecondi mentre un gruppo di volumi dell'auto è considerato attivo per le modifiche del controllo del volume durante gli eventi delle chiavi del volume. La configurazione viene utilizzata come segue:

  • Il timeout viene utilizzato per determinare se una riproduzione (il volume audio associato all'utilizzo audio della riproduzione) può essere ancora considerata per la selezione automatica del volume dopo l'interruzione della riproduzione.
  • Il timeout viene utilizzato anche come durata della pausa necessaria tra le regolazioni automatiche del volume per modificare l'impostazione regolata dall'utente.

Il valore predefinito è 3000 millisecondi e deve essere aggiustato dagli OEM per personalizzare l'esperienza utente.

audioUseCarVolumeGroupEvent Definito nel file di configurazione del servizio auto, la configurazione per attivare gli eventi di callback ai gruppi di volumi. Quando true, i clienti ricevono un callback tramite ICarVolumeGroupEvent per gli eventi che influiscono sui gruppi di volume. Quando è attiva:

  • Consigliamo vivamente ai fornitori di supportare anche IAudioControl#setModuleChangeCallback e IAudioControl#registerGainCallback per gli eventi e le modifiche all'hardware audio.
  • Quando sia CarVolumeCallback sia CarVolumeGroupEventCallback sono registrati dalla stessa app, gli indici dei gruppi di volume e i relativi callback di disattivazione del volume devono essere inviati solo tramite CarVolumeGroupEventCallback. Pertanto, consigliamo vivamente di eseguire la migrazione di tutte le app alla nuova interfaccia di callback per garantire un rendimento costante.
  • Il valore predefinito è false. Ti consigliamo di impostarlo su true perché le API per il supporto dei callback relativi al volume legacy non sono più supportate e verranno rimosse del tutto a breve.

config_useFixedVolume Definito in frameworks/base/core/res/res/values/config.xml. Deve essere impostato su true per consentire al servizio audio dell'auto di gestire il controllo del volume. Quando il flag config_useFixedVolume non è impostato o è impostato su false (il valore predefinito), le app possono chiamare le API di gestione del volume AudioManager e modificare il volume in base al tipo di stream nel mixer software. Ciò potrebbe non essere auspicabile a causa del potenziale effetto su altre app e del fatto che l'attenuazione del volume nel mixer software può comportare un numero inferiore di bit significativi disponibili nel segnale quando viene ricevuto dall'amplificatore hardware. Nuovi dispositivi che non sono stati configurati e che sono impostati su true per ricevere modifiche al volume tramite le API di volume e disattivazione audio AudioManager.
config_handleVolumeKeysInWindowManager Definito in frameworks/base/core/res/res/values/config.xml, deve essere impostato su true per consentire al servizio audio dell'auto di intercettare gli eventi chiave relativi al volume. Se impostato su false (il valore predefinito), gli eventi chiave relativi al volume possono essere inoltrati all'app in primo piano e possono portare a risultati negativi dalla gestione degli eventi chiave relativi al volume al di fuori del servizio audio dell'auto.

Configurazioni del servizio audio per auto

Prima di Android 13, le configurazioni dei servizi per auto venivano sovrascritte con un overlay di configurazione del prodotto (per saperne di più, consulta Personalizzare la build con overlay di risorse) per il file packages/services/Car/service/res/values/config.xml.

PRODUCT_PACKAGE_OVERLAYS := <path_to_overlay>

La posizione del file di configurazione da <path_to_overlay> alla posizione effettiva deve includere packages/services/Car/service/res/values/.

RRO per servizi per auto

A partire da Android 13, AAOS supporta overlay delle risorse di runtime. Utilizza un RRO per modificare il valore della configurazione dell'impianto audio dell'auto. Ad esempio, consulta le RRO per il riferimento cuttlefish auto e motori in device/google/cuttlefish/shared/auto/rro_overlay/. La configurazione audioUseDynamicRouting viene sostituita in device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/values/config.xml.

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

La mappa di overlay delle risorse è contenuta in device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/xml/overlays.xml:

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

Il file manifest dell'overlay delle risorse definito in device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/AndroidManifest.xml contiene targetPackage impostato su com.android.car.updatable.

Per ulteriori informazioni, consulta queste risorse:

API con funzionalità abilitate

Il metodo restituisce true se la funzionalità è attivata sul dispositivo, altrimentifalse. Nell'API CarAudioManager#isAudioFeatureEnabled, il parametro fornito deve essere uno dei seguenti:

  • AUDIO_FEATURE_DYNAMIC_ROUTING
  • AUDIO_FEATURE_VOLUME_GROUP_MUTING
  • AUDIO_FEATURE_OEM_AUDIO_SERVICE
  • AUDIO_FEATURE_VOLUME_GROUP_EVENTS
  • AUDIO_FEATURE_AUDIO_MIRRORING