O Android Automotive OS (AAOS) usa flags e configurações para ativar diferentes recursos, começando com o roteamento dinâmico e indo até flags de recursos mais genéricas, como controle de volume do serviço do carro. As flags de configuração atuais do AAOS para gerenciamento de áudio são descritas aqui.
| Sinalização | Finalidade | 
|---|---|
| audioUseDynamicRouting | Definido no arquivo de configuração do serviço de carro para
    Ativar o roteamento do AAOS.
    A configuração precisa ser definida como true. Quandofalse,
    o roteamento e grande parte doCarAudioServicesão desativados, e o SO
    reverte para o comportamento padrão descrito em
    Configurar políticas de áudio. | 
| useCoreAudioRouting | Definido no arquivo de configuração do serviço de carro para
    ativar o gerenciamento de roteamento de áudio principal do AAOS.
    Quando o valor é definido como true, o serviço de áudio do carro usa as definições de configuração definidas com o mecanismo de política de áudio configurável.
    Se o valor for definido comofalse, o gerenciamento de roteamento vai usar
    a definição de combinação de política de áudio dinâmica do serviço de áudio do carro
    conforme configurado usandoaudioUseDynamicRouting. | 
| useCoreAudioVolume | Definido no arquivo de configuração do serviço de carro para ativar o gerenciamento de volume de áudio principal do AAOS.
    Quando o valor é definido como true, o serviço de áudio do carro usa
    as definições de grupos de volume configuradas com o
    mecanismo de política de áudio configurável.
    Se o valor for definido comofalse, o gerenciamento de volume vai usar a definição padrão do grupo de volume do serviço de áudio do carro, conforme configurado usandoaudioUseDynamicRouting. | 
| audioUseCarVolumeGroupMuting | Definido no arquivo de configuração do serviço de carro para ativar o silenciamento de grupos de volume individuais. Quando definido como false(o valor padrão), a desativação do som de
    grupos de volume individuais é desativada. Em vez disso, a opção de ativar/desativar o som ativa/desativa o som geral.
    Quando definido comotrue, o silenciamento do grupo de volume do carro é ativado, e cada grupo de volume individual pode ser silenciado separadamente. Quandotrue,
    o silenciamento do grupo de volume precisa ser implementado no
    HAL de controle de áudio. | 
| audioUseHalDuckingSignals | Definido no arquivo de configuração do serviço de carro para ativar a
    API IAudioControl#onDevicesToDuckChangee informar ao HAL quando
    reduzir a velocidade. Quandotrue(valor padrão), a API recebe indicadores que mostram quais
    dispositivos de saída precisam ser reduzidos e quais usos mantêm o foco. Quandofalse, a API não é chamada. A API não é chamada a menos que o
    HAL de controle de áudio
    implemente o ducking. | 
| config_oemCarService | Definido no arquivo de configuração do serviço de carro, este é o nome do componente para
    o serviço de personalização do OEM. Os OEMs podem implementar esse serviço para
    personalizar ações de serviço automotivo para diferentes políticas. Se os OEMs optarem por
    implementar esse componente, eles precisarão implementar um serviço para estender OemCarServiceexposto pela car-lib e, em seguida, implementar
    os serviços de componentes necessários. Para o serviço de áudio automotivo, os OEMs
    podem implementar qualquer um dos subserviços de áudio para gerenciar a ação de áudio. Para mais detalhes, consulte
    Serviço de plug-in de áudio do carro.
    Se o nome do componente for inválido, oCarServicenão se conectará a nenhum serviço OEM. O nome do componente não pode ser um pacote de terceiros. Ele
    precisa ser pré-instalado. | 
| audioVolumeAdjustmentContextsVersion | Definida no arquivo de configuração do serviço de carro, a configuração para selecionar a versão da lista de prioridade do contexto de ajuste de volume. A versão 1 inclui todos os contextos de áudio, nesta ordem: 
 A versão 2 é limitada aos seguintes contextos, nesta ordem: A versão padrão é  
 | 
| audioPersistMasterMuteState | Definido no arquivo de configuração do serviço de carro, configuração para manter o estado de
    silenciamento global. Quando true(o valor padrão), o Android restaura o
    estado de mudo global na inicialização. QuandoaudioUseCarVolumeGroupMutingétrue, isso não afeta a persistência das mudanças de
    mudo, já que elas são baseadas em grupos de volume individuais. O valor padrão é definido comotruee precisa ser substituído quando o silenciamento geral não deve ser mantido em um dispositivo. | 
| audioVolumeKeyEventTimeoutMs | Definida no arquivo de configuração do serviço de carro, a configuração indica o tempo limite em milissegundos enquanto um grupo de volume do carro é considerado ativo para mudanças no controle de volume durante eventos de tecla de volume. A configuração é usada da seguinte maneira: 
 O valor padrão é  | 
| audioUseCarVolumeGroupEvent | Definida no arquivo de configuração do serviço de carro, a configuração para ativar eventos de callback
    em grupos de volume. Quando true, os clientes recebem callback
    peloICarVolumeGroupEventpara eventos que afetam grupos
    de volume. Quando ativado:
 O valor padrão é  | 
| config_useFixedVolume | Definido em frameworks/base/core/res/res/values/config.xml.
    Precisa ser definido comotruepara permitir que o serviço de áudio do carro gerencie
    o controle de volume. Quando a flagconfig_useFixedVolumenão está
    definida ou está definida comofalse(o valor padrão), os apps podem chamar as
    APIs de gerenciamento de volumeAudioManagere mudar o volume por
    tipo de stream no mixer de software. Isso pode ser indesejável devido ao efeito potencial em outros apps e ao fato de que a atenuação de volume no mixer de software pode resultar em menos bits significativos disponíveis no sinal quando recebido no amplificador de hardware. Os novos dispositivos que não foram
    configurados e que estão definidos comotruerecebem mudanças de volume
    pelas APIs de volume e mudoAudioManager. | 
| config_handleVolumeKeysInWindowManager | Definido em frameworks/base/core/res/res/values/config.xml, precisa
    ser definido comotruepara permitir que o serviço de áudio do carro intercepte
    eventos de teclas de volume. Se definido comofalse(o valor padrão), os eventos de tecla de volume poderão ser encaminhados para o app em primeiro plano e gerar resultados adversos no gerenciamento de eventos de tecla de volume fora do serviço de áudio do carro. | 
| audioUseMinMaxActivationVolume | Definido no arquivo de configuração do serviço de carro para ativar o
    
    volume mínimo e máximo de ativação. Quando true, o índice de ganho de volume pode ser ajustado devido ao gerenciamento de volume de ativação mínimo e máximo. Quandofalse(valor padrão), o volume mínimo e máximo de ativação não entra em vigor. | 
| audioUseFadeManagerConfiguration | Definido no arquivo de configuração do serviço de carro para ativar
    o 
    comportamento de perda de foco de áudio imposto pelo sistema. Quando true,
    o framework de áudio do carro analisa as definições de configuração de esmaecimento de áudio do carro e
    aplica oFadeManagerConfigurationrespectivo ao despachar
    a perda da seleção de áudio. Quandofalse(valor padrão), o sistema não
    aplica o comportamento de esmaecimento quando um app perde a seleção de áudio. | 
Configurações do serviço de áudio do carro
Antes do Android 13, as configurações do serviço de carro eram substituídas
por uma sobreposição de configuração do produto (para saber mais, consulte
Personalizar o build com sobreposições de recursos)
para o arquivo packages/services/Car/service/res/values/config.xml.
PRODUCT_PACKAGE_OVERLAYS := <path_to_overlay>
O local do arquivo de configuração de <path_to_overlay> para o local
real precisa incluir packages/services/Car/service/res/values/.
RROs de serviços automotivos
Desde o Android 13, o AAOS oferece suporte a
sobreposições de recursos no momento da execução. Use uma RRO para mudar o valor da configuração de áudio do carro. Por exemplo, consulte os RROs para a referência automotiva cuttlefish em device/google/cuttlefish/shared/auto/rro_overlay/. A configuração
audioUseDynamicRouting é substituída em
device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/values/config.xml.
<resources>
    <bool name="audioUseDynamicRouting">true</bool>
...
O mapa de sobreposição de recursos está contido em
device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/res/xml/overlays.xml:
<overlay>
...
  <item target="bool/audioUseDynamicRouting"
value="@bool/audioUseDynamicRouting" />
...
</overlay>
O manifesto de sobreposição de recursos definido em
device/google/cuttlefish/shared/auto/rro_overlay/CarServiceOverlay/AndroidManifest.xml
contém o targetPackage definido como com.android.car.updatable.
Consulte estes recursos para mais informações:
- Sobreposições de recursos no momento da execução
- Solução de problemas relacionados a sobreposições de recursos no ambiente de execução
API com recursos ativados
O método retorna true se o recurso estiver ativado no dispositivo. Caso contrário, ele retorna false. Na API CarAudioManager#isAudioFeatureEnabled, o parâmetro transmitido precisa ser um dos seguintes:
- AUDIO_FEATURE_DYNAMIC_ROUTING
- AUDIO_FEATURE_VOLUME_GROUP_MUTING
- AUDIO_FEATURE_OEM_AUDIO_SERVICE
- AUDIO_FEATURE_VOLUME_GROUP_EVENTS
- AUDIO_FEATURE_AUDIO_MIRRORING
