Flag AAOS di configurazione audio, Flag AAOS di configurazione audio

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

Bandiera Scopo
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 vengono disabilitati e il sistema operativo torna al comportamento predefinito descritto in Configurazione dei criteri audio .
audioUseCarVolumeGroupMuting Definito nel file di configurazione del servizio auto per abilitare la disattivazione dell'audio dei singoli gruppi di volumi. Se impostato su false (il valore predefinito), il silenziamento dei singoli gruppi di volumi è disabilitato. Invece, il silenziamento attiva/disattiva il master mute. Se impostato su true , la disattivazione dell'audio del gruppo di volume dell'auto è abilitata e ciascun singolo gruppo di volume può essere disattivato separatamente. Quando è true , il silenziamento del gruppo di volume deve essere implementato nell'HAL di controllo audio .
audioUseHalDuckingSignals Definito nel file di configurazione del servizio auto per abilitare l'API IAudioControl#onDevicesToDuckChange per informare l'HAL quando abbassarsi. Se true (valore predefinito), l'API riceve segnali che indicano quali dispositivi di output evitare e quali utilizzi mantengono il focus. Se 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, questo è il nome del componente per il servizio di personalizzazione OEM. Gli OEM possono scegliere di implementare questo servizio per personalizzare le azioni di servizio dell'auto per politiche diverse. Se gli OEM scelgono di implementare questo componente, devono implementare un servizio per estendere OemCarService esposto da car-lib e quindi implementare i servizi del componente richiesto. Nello specifico, per il servizio audio per auto, gli OEM possono implementare qualsiasi sottoservizi audio per gestire l'azione audio. Per i dettagli, vedere Servizio plug-in audio per auto . Se il nome del componente non è valido, CarService non si collegherà ad alcun 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, 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 mantenere lo stato di silenziamento globale. Se true (il valore predefinito) Android ripristina lo stato di disattivazione audio globale all'avvio. Quando audioUseCarVolumeGroupMuting è true , ciò non ha alcun impatto sulle modifiche di disattivazione persistenti poiché le modifiche di disattivazione si basano su singoli gruppi di volumi. Il valore predefinito è impostato su true e deve essere sovrascritto quando il master mute non deve essere persistente per un dispositivo.
audioVolumeKeyEventTimeoutMs

Definito 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 come segue:

  • 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 richiesta tra le regolazioni automatiche del volume per modificare ciò che l'utente sta regolando.

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

audioUseCarVolumeGroupEvent Definito nel file di configurazione del servizio auto, configurazione per abilitare gli eventi di richiamata ai gruppi di volumi. Se true , i client ricevono una richiamata tramite ICarVolumeGroupEvent agli eventi che influiscono sui gruppi di volumi. Quando abilitato:

  • Consigliamo vivamente ai fornitori di supportare anche IAudioControl#setModuleChangeCallback e IAudioControl#registerGainCallback per eventi e modifiche all'hardware audio.
  • Quando sia CarVolumeCallback che CarVolumeGroupEventCallback sono registrati dalla stessa app, l'indice del gruppo di volumi e le richiamate di silenziamento del gruppo di volumi passeranno solo attraverso CarVolumeGroupEventCallback . Pertanto, consigliamo vivamente di eseguire la migrazione di tutte le app alla nuova interfaccia di callback per garantire prestazioni costanti.
  • Il valore predefinito è false . Ti consigliamo di impostarlo su true perché le API per supportare i callback di volumi legacy sono deprecate e presto verranno rimosse del tutto.

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 indesiderato a causa del potenziale effetto su altre app e del fatto che l'attenuazione del volume nel mixer software può comportare un minor numero di bit significativi disponibili nel segnale quando viene ricevuto dall'amplificatore hardware. I nuovi dispositivi che non sono stati configurati e che sono impostati su true ricevono modifiche al volume tramite le API di volume e disattivazione 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 dei tasti del volume. Se impostati su false (il valore predefinito), gli eventi dei tasti del volume possono essere inoltrati all'app in primo piano e possono portare a risultati negativi dalla gestione degli eventi dei tasti del volume al di fuori del servizio audio dell'auto.

Configurazioni del servizio audio per auto

Prima di Android 13, le configurazioni dei servizi auto venivano sovrascritte con un overlay di configurazione del prodotto (per ulteriori informazioni, vedi Personalizzazione della 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 dovrebbe includere packages/services/Car/service/res/values/ .

RRO di servizio auto

A partire da Android 13, AAOS supporta gli overlay delle risorse runtime . Utilizzare un RRO per modificare il valore della configurazione dell'audio dell'auto. Ad esempio, consulta gli RRO per il riferimento al cuttlefish automobilistica in device/google/cuttlefish/shared/auto/rro_overlay/ . La configurazione audioUseDynamicRouting viene sovrascritta in device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/values/config.xml .

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

La mappa sovrapposta 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 della sovrapposizione delle risorse definito in device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/AndroidManifest.xml contiene il targetPackage impostato come com.android.car.updatable .

Consulta queste risorse per ulteriori informazioni:

API con funzionalità abilitate

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