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. Quandofalse,
    il routing e gran parte diCarAudioServicesono 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 sufalse, la gestione del routing torna
    a utilizzare la definizione del mix di policy audio dinamiche del servizio audio per auto come
    configurato utilizzandoaudioUseDynamicRouting. | 
| 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 sufalse, la gestione del volume torna
    a utilizzare la definizione predefinita del gruppo di volume del servizio audio dell'auto come configurato
    utilizzandoaudioUseDynamicRouting. | 
| 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 sutrue, il silenziamento del gruppo di volumi dell'auto è attivato e ogni
    singolo gruppo di volumi può essere silenziato separatamente. Quandotrue,
    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#onDevicesToDuckChangeper comunicare all'HAL quando abbassare il volume. Quandotrue(valore predefinito), l'API riceve indicatori che indicano quali
    dispositivi di output abbassare e quali utilizzi mantenere attivi. Quandofalse,
    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 OemCarServiceesposto 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,CarServicenon 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: 
 La versione 2 è limitata ai seguenti contesti, in questo ordine. La versione predefinita è  
 | 
| 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. QuandoaudioUseCarVolumeGroupMutingètrue, questa impostazione non influisce sulla persistenza delle modifiche al silenziamento, in quanto
    si basano su singoli gruppi di volumi. Il valore predefinito è impostato sutruee 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 valore predefinito è  | 
| 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
    tramiteICarVolumeGroupEventper gli eventi che influiscono sui gruppi
    di volume. Quando è attiva:
 Il valore predefinito è  | 
| config_useFixedVolume | Definito in frameworks/base/core/res/res/values/config.xml.
    Deve essere impostato sutrueper consentire al servizio audio dell'auto di gestire
    il controllo del volume. Quando il flagconfig_useFixedVolumenon è
    impostato o è impostato sufalse(il valore predefinito), le app possono chiamare le
    API di gestione del volumeAudioManagere 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 sutrueper ricevere modifiche al volume
    tramite le APIAudioManagerper il volume e la disattivazione dell'audio. | 
| config_handleVolumeKeysInWindowManager | Definito in frameworks/base/core/res/res/values/config.xml, deve
    essere impostato sutrueper consentire al servizio audio dell'auto di intercettare
    gli eventi chiave del volume. Se impostato sufalse(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. Quandofalse(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 rispettivoFadeManagerConfigurationdurante l'invio
    della perdita di focus audio. Quandofalse(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:
- Overlay delle risorse di runtime
- Risoluzione dei problemi relativi alle risorse di runtime sovrapposte
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
