Flag AAOS per la configurazione audio

Android Automotive OS (AAOS) utilizza flag e configurazioni per attivare diverse funzionalità, a partire dal routing dinamico fino a flag di funzionalità più generici, come il controllo del volume dal servizio auto. I flag di configurazione AAOS attuali per la gestione dell'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 e il sistema operativo ripristina il comportamento predefinito descritto in Configurazione dei criteri audio.
useCoreAudioRouting Definito nel file di configurazione del servizio auto per abilitare la gestione del routing audio di base di AAOS. Quando il valore è impostato su true, il servizio audio per auto utilizza le definizioni di configurazione impostate con il motore di criteri audio configurabili. Se il valore è impostato su false, la gestione del routing torna a utilizzare la definizione del mix di policy audio dinamiche del servizio audio per auto come configurato utilizzando audioUseDynamicRouting.
useCoreAudioVolume Definito nel file di configurazione del servizio auto per abilitare la gestione del volume audio di base di AAOS. Quando il valore è impostato su true, il servizio audio per auto utilizza le definizioni dei gruppi di volume configurate con il motore di policy audio configurabile. Se il valore è impostato su false, la gestione del volume torna a utilizzare la definizione predefinita del gruppo di volume del servizio audio dell'auto come configurato utilizzando audioUseDynamicRouting.
audioUseCarVolumeGroupMuting Definito nel file di configurazione del servizio auto per attivare la disattivazione dell'audio di singoli gruppi di volumi. Se impostato su false (il valore predefinito), la disattivazione dell'audio dei singoli gruppi di volume è disattivata. Al contrario, la disattivazione dell'audio attiva la disattivazione dell'audio principale. Se impostato su true, il silenziamento del gruppo di volumi dell'auto è attivato e ogni singolo gruppo di volumi può essere silenziato separatamente. Quando true, il silenziamento del gruppo di volumi deve essere implementato nell'HAL di controllo audio.
audioUseHalDuckingSignals Definito nel file di configurazione del servizio auto per abilitare l'API IAudioControl#onDevicesToDuckChange per comunicare all'HAL quando abbassare il volume. Quando true (valore predefinito), l'API riceve indicatori che indicano quali dispositivi di output abbassare e quali utilizzi mantenere attivi. Quando false, l'API non viene chiamata. L'API non viene chiamata a meno che l'HAL di controllo audio non implementi l'abbassamento del volume.
config_oemCarService Definito nel file di configurazione del servizio auto, questo è il nome del componente per il servizio di personalizzazione OEM. Gli OEM possono scegliere di implementare questo servizio per personalizzare le azioni del servizio auto per criteri diversi. Se gli OEM scelgono di implementare questo componente, devono implementare un servizio per estendere OemCarService esposto da car-lib e poi implementare i servizi dei componenti richiesti. Per il servizio audio per auto in particolare, gli OEM possono implementare uno qualsiasi dei servizi secondari audio per gestire l'azione audio. Per maggiori dettagli, vedi Servizio di plug-in audio per auto. Se il nome del componente non è valido, CarService non si connette a nessun servizio OEM. Il nome del componente non può essere un pacchetto di terze parti. Deve essere preinstallato.
audioVolumeAdjustmentContextsVersion

Definita nel file di configurazione del servizio auto, 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, configurazione per rendere persistente lo stato di disattivazione globale. Quando true (il valore predefinito) Android ripristina lo stato di disattivazione dell'audio globale all'avvio. Quando audioUseCarVolumeGroupMuting è true, questa impostazione non influisce sulla persistenza delle modifiche al silenziamento, in quanto si basano su singoli gruppi di volumi. Il valore predefinito è impostato su true e deve essere sovrascritto quando la disattivazione dell'audio principale non deve essere mantenuta per un dispositivo.
audioVolumeKeyEventTimeoutMs

Definita nel file di configurazione del servizio auto, configurazione per indicare il timeout in millisecondi mentre un gruppo di volumi dell'auto è considerato attivo per le modifiche al controllo del volume durante gli eventi dei tasti del volume. La configurazione viene utilizzata nel seguente modo:

  • Il timeout viene utilizzato per determinare se una riproduzione (volume audio associato all'utilizzo dell'audio della riproduzione) può ancora essere presa in considerazione 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 ciò che l'utente sta regolando.

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

audioUseCarVolumeGroupEvent Definita nel file di configurazione del servizio auto, configurazione per attivare gli eventi di callback nei gruppi di volumi. Quando true, i clienti ricevono il richiamo 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 eventi e modifiche all'hardware audio.
  • Quando sia CarVolumeCallback che CarVolumeGroupEventCallback vengono registrati dalla stessa app, i callback dell'indice del gruppo di volumi e del gruppo di volumi disattivato passeranno CarVolumeGroupEventCallback solo. Pertanto, consigliamo vivamente a tutte le app di eseguire la migrazione alla nuova interfaccia di callback per garantire un rendimento coerente.
  • Il valore predefinito è false. Ti consigliamo di impostare questo valore su true perché le API per il supporto dei callback legacy del volume non sono più supportate e verranno rimosse 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 flusso nel mixer software. Ciò potrebbe essere indesiderabile a causa del potenziale effetto su altre app e del fatto che l'attenuazione del volume nel mixer software può comportare una riduzione dei 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 AudioManager per il volume e la disattivazione dell'audio.
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 del volume. Se impostato su false (il valore predefinito), gli eventi chiave del tasto del volume possono essere inoltrati all'app in primo piano e possono portare a risultati negativi dalla gestione degli eventi chiave del tasto del volume al di fuori del servizio audio dell'auto.
audioUseMinMaxActivationVolume Definito nel file di configurazione del servizio auto per attivare il volume di attivazione minimo e massimo. Quando true, l'indice di guadagno del volume può essere modificato a causa della gestione del volume di attivazione minimo e massimo. Quando false (valore predefinito), il volume di attivazione minimo e massimo non ha effetto.
audioUseFadeManagerConfiguration Definito nel file di configurazione del servizio auto per attivare il comportamento di perdita della messa a fuoco audio imposto dal sistema�. Quando true, il framework audio dell'auto analizza le definizioni di configurazione del dissolvenza dell'audio dell'auto e applica il rispettivo FadeManagerConfiguration durante l'invio della perdita di focus audio. Quando false (valore predefinito), il sistema non applica il comportamento di dissolvenza quando un'app perde lo stato attivo audio.

Configurazioni del servizio audio dell'auto

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

PRODUCT_PACKAGE_OVERLAYS := <path_to_overlay>

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

Organizzazioni di riparazione e manutenzione auto

A partire da Android 13, AAOS supporta i Runtime Resource Overlays. Utilizza un RRO per modificare il valore della configurazione audio dell'auto. Ad esempio, consulta le RRO per il riferimento cuttlefish per il settore automobilistico in device/google/cuttlefish/shared/auto/rro_overlay/. La configurazione audioUseDynamicRouting viene sottoposta a override 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 manifest di overlay delle risorse definito in device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/AndroidManifest.xml contiene targetPackage impostato su com.android.car.updatable.

Per saperne di più, consulta queste risorse:

API abilitata per le funzionalità

Il metodo restituisce true se la funzionalità è abilitata sul dispositivo, altrimenti false. Nell'API CarAudioManager#isAudioFeatureEnabled, il parametro passato 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