Sinalizações do AAOS de configuração de áudio

O Android Automotive OS (AAOS) usa flags e configurações para permitir diferentes recursos, desde o roteamento dinâmico até sinalizações de recursos mais genéricas, como controle de volume do serviço veicular. Sinalizações atuais de configuração do AAOS para áudio de segurança são descritas aqui.

Sinalização Objetivo
audioUseDynamicRouting Definido no arquivo de configuração do serviço do carro para Ative o roteamento AAOS. A configuração precisa ser definida como true. Quando false, roteamento e grande parte do CarAudioService, estão desativados, e o SO volta ao comportamento padrão descrito em Como configurar políticas de áudio.
audioUseCarVolumeGroupMuting Definido no arquivo de configuração do serviço do carro para ativar o som de pessoas grupos de volumes. Quando definida como false (o valor padrão), a desativação do som de grupos de volumes individuais são desativados. Em vez disso, essa opção ativa o som do mestre. Quando definido como true, o som do grupo de volume do carro será ativado, e cada grupos de volumes individuais podem ser silenciados separadamente. Quando true, o silenciamento do grupo de volumes precisa ser implementado HAL de controle de áudio:
audioUseHalDuckingSignals Definida no arquivo de configuração do serviço do carro para ativar o API IAudioControl#onDevicesToDuckChange para informar à HAL quando pato. Quando true (valor padrão), a API recebe indicadores indicando quais de saída e de saída e quais usos mantêm o foco. Quando false, a API não é chamada. A API não é chamada, a menos que HAL de controle de áudio implementa redução de áudio.
config_oemCarService Definido no arquivo de configuração do serviço do carro, é o nome do componente do o serviço de personalização de OEM. OEMs podem optar por implementar esse serviço para personalizar ações de serviço do carro para diferentes políticas. Se os OEMs optarem por implementar esse componente, é preciso implementar um serviço para estender OemCarService exposto por car-lib e, em seguida, implemente os serviços dos componentes necessários. No caso específico do serviço de áudio veicular, os OEMs pode implementar qualquer um dos subserviços de áudio para gerenciar a ação de áudio. Para detalhes, consulte Serviço de plug-in de áudio do carro. Se o nome do componente for inválido, o CarService não conectaria a qualquer serviço de OEM. O nome do componente não pode ser um pacote de terceiros. Ela precisam estar pré-instalados.
audioVolumeAdjustmentContextsVersion

Definido no arquivo de configuração do serviço do carro, configuração para selecionar o versão da lista de prioridade de contexto de ajuste de volume.

A versão 1 inclui todos os contextos de áudio, nesta ordem:

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

A versão 2 é limitada aos contextos a seguir, nessa ordem.

A versão padrão é 1.

  • CALL
  • MUSIC
  • ANNOUNCEMENT
  • VOICE_COMMAND
audioPersistMasterMuteState Definido no arquivo de configuração do serviço do carro, configuração para persistir global sem som. Quando true (o valor padrão), o Android restaura o estado mudo global na inicialização. Quando audioUseCarVolumeGroupMuting for true, isso não afeta a persistência de mudanças de silenciamento como silenciamento as mudanças são baseadas em grupos de volumes individuais. O valor padrão é definido como true e precisa ser substituída quando o silenciamento do mestre não puder ser persistidos em um dispositivo.
audioVolumeKeyEventTimeoutMs

Definido no arquivo de configuração do serviço do carro. Configuração para indicar o tempo limite em milissegundos enquanto um grupo de volumes de carro é considerado ativo por o controle de volume muda durante eventos das teclas de volume. A configuração é usada da seguinte forma:

  • O tempo limite é usado para determinar se uma reprodução (volume de áudio associado com o uso de áudio da reprodução) ainda podem ser consideradas para processamento a seleção de volume após ter interrompido a reprodução.
  • O tempo limite também é usado como a duração da pausa exigida entre ajustes de volume para mudar o que o usuário está ajustando.

O valor padrão é 3000 milissegundos e deve ser ajustado por OEMs para personalizar a experiência do usuário.

audioUseCarVolumeGroupEvent Definido no arquivo de configuração do serviço do carro, configuração para ativar o callback de eventos para grupos de volumes. Quando true, os clientes recebem uma chamada de retorno até ICarVolumeGroupEvent para eventos que afetam o volume grupos. Quando esse recurso estiver ativado:

  • Recomendamos que os fornecedores também ofereçam suporte IAudioControl#setModuleChangeCallback e IAudioControl#registerGainCallback para eventos e alterações em o hardware de áudio.
  • Quando CarVolumeCallback e CarVolumeGroupEventCallback são registrados pelo mesmo app, o índice do grupo de volumes e os callbacks de silenciamento do grupo de volumes devem ser colocados somente pelo CarVolumeGroupEventCallback. Por isso, recomendamos que todos os apps migrem para a nova para garantir um desempenho consistente.
  • O valor padrão é false. Recomendamos que você defina essa opção para true porque as APIs para dar suporte a volumes legados callbacks foram descontinuados e serão totalmente removidos em breve.

config_useFixedVolume Definido em frameworks/base/core/res/res/values/config.xml. Precisa ser definido como true para permitir que o serviço de áudio do carro gerencie controle de volume. Quando a sinalização config_useFixedVolume não for for definido como false (o valor padrão), os apps poderão chamar a AudioManager APIs de gerenciamento de volume e mudar o volume em o tipo de transmissão no mixer de software. Isso pode ser indesejável por causa possível efeito em outros aplicativos e o fato de que a atenuação do volume no misturador de software pode resultar em menos bits significativos disponíveis nos quando recebidos no amplificador de hardware. Novos dispositivos que não foram configuradas e definidas como true receber alterações de volume usando as APIs AudioManager de volume e silenciamento.
config_handleVolumeKeysInWindowManager Definido em frameworks/base/core/res/res/values/config.xml, precisa ser definido como true para permitir a interceptação do serviço de áudio do carro de volume. Se definido como o volume false (o valor padrão), eventos principais podem ser encaminhados para o aplicativo em primeiro plano e levar a resultados resultados do gerenciamento de eventos das teclas de volume fora do serviço de áudio do carro.

Configurações do serviço de áudio do carro

Antes do Android 13, as configurações de serviço do carro eram substituídas com uma sobreposição de configuração do produto (para saber mais, consulte Como 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 arquivo local deve incluir packages/services/Car/service/res/values/.

RROs de manutenção veicular

Desde o Android 13, o AAOS oferece suporte Sobreposições de recursos do ambiente de execução. Use uma RRO para mudar da configuração de áudio do carro. Por exemplo, consulte as RROs do referência ao cuttlefish automotivo em device/google/cuttlefish/shared/auto/rro_overlay/. A A configuração audioUseDynamicRouting foi 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 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 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:

API ativada por recurso

O método retornará true se o recurso estiver ativado no dispositivo. Caso contrário, false. Na API CarAudioManager#isAudioFeatureEnabled, o parâmetro deve 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