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 . Quando false ,
o roteamento e grande parte do CarAudioService sã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 como false , 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 usando audioUseDynamicRouting .
|
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 como false , o gerenciamento de volume vai usar a definição padrão do grupo de volume do serviço de áudio do carro, conforme configurado usando audioUseDynamicRouting .
|
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 como true , o silenciamento do grupo de volume do carro é ativado, e cada grupo de volume individual pode ser silenciado separadamente. Quando true ,
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#onDevicesToDuckChange e informar ao HAL quando
reduzir a velocidade. Quando true (valor padrão), a API recebe indicadores que mostram quais
dispositivos de saída precisam ser reduzidos e quais usos mantêm o foco. Quando false , 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
OemCarService exposto 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, o CarService nã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. Quando audioUseCarVolumeGroupMuting é
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 como true e 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
pelo ICarVolumeGroupEvent para 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 como true para permitir que o serviço de áudio do carro gerencie
o controle de volume. Quando a flag config_useFixedVolume não está
definida ou está definida como false (o valor padrão), os apps podem chamar as
APIs de gerenciamento de volume AudioManager e 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 como true recebem mudanças de volume
pelas APIs de volume e mudo AudioManager .
|
config_handleVolumeKeysInWindowManager |
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 intercepte
eventos de teclas de volume. Se definido como false (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. Quando false (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 o FadeManagerConfiguration respectivo ao despachar
a perda da seleção de áudio. Quando false (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