O Android Automotive OS (AAOS) usa flags e configurações para ativar diferentes recursos, começando pelo roteamento dinâmico para flags de recursos mais genéricas, como o 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 | Objetivo | |
---|---|---|
audioUseDynamicRouting |
Definido no arquivo de configuração do serviço do carro para
Ativar o roteamento do AAOS.
A configuração precisa ser definida como true . Quando false ,
o roteamento e grande parte de CarAudioService são desativados, 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 de carro para ativar o silenciamento de grupos de volume
individuais. Quando definido como false (o valor padrão), o silenciamento de
grupos de volume individuais é desativado. Em vez disso, o botão de ativação/desativação de som principal é ativado.
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 do carro para permitir que a
API IAudioControl#onDevicesToDuckChange informe o HAL quando
precisar se esconder. Quando true (valor padrão), a API recebe sinais indicando quais
dispositivos de saída devem ser ocultados 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 do carro, é o nome do componente do
serviço de personalização do OEM. Os OEMs podem implementar esse serviço para
personalizar as ações de serviço do carro para diferentes políticas. Se os OEMs optarem por
implementar esse componente, eles precisarão implementar um serviço para estender
OemCarService exposto por car-lib e, em seguida, implementar
os serviços de componentes necessários. Para o serviço de áudio do carro especificamente, os OEMs
podem implementar qualquer um dos subserviços de áudio para gerenciar a ação de áudio. Para
saber mais, consulte
Serviço de plug-in de áudio para carros.
Se o nome do componente for inválido, o CarService não vai se conectar
a nenhum serviço OEM. O nome do componente não pode ser um pacote de terceiros. Ele
precisa estar pré-instalado. |
|
audioVolumeAdjustmentContextsVersion |
Definido no arquivo de configuração do serviço do carro, configuração para selecionar a versão da lista de prioridade de 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 do carro, a configuração para manter o estado
de silenciamento global. Quando true (o valor padrão) é usado, o Android restaura o
estado de silenciamento global na inicialização. Quando audioUseCarVolumeGroupMuting é
true , isso não afeta as mudanças de mudo persistente, já que as mudanças
são baseadas em grupos de volume individuais. O valor padrão é definido como
true e precisa ser substituído quando o silenciamento principal não pode ser
mantido para um dispositivo. |
|
audioVolumeKeyEventTimeoutMs |
Definido no arquivo de configuração do serviço do carro, a configuração para indicar o tempo limite em milissegundos enquanto um grupo de volume do carro é considerado ativo para mudanças de controle de volume durante eventos de tecla de volume. A configuração é usada desta forma:
O valor padrão é de |
|
audioUseCarVolumeGroupEvent |
Definido no arquivo de configuração do serviço de carro, configuração para ativar eventos de callback
para grupos de volume. Quando true , os clientes recebem um callback
por 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 transmissão no mixer de software. Isso pode ser indesejável devido ao
possível efeito 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. Novos dispositivos que não
foram configurados e que estão definidos como true recebem mudanças de volume
pelas APIs de volume e silenciamento 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
teclas de volume podem ser encaminhados para o app em primeiro plano e podem levar a resultados
adversos do gerenciamento de eventos de 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 de carro eram substituídas
por uma sobreposição de configuração de 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 um RRO para mudar o
valor da configuração de áudio do carro. Por exemplo, consulte as RROs para a
referência cuttlefish
automotiva 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
.
Confira estes recursos para mais informações:
- Sobreposições de recursos no momento da execução
- Solução de problemas de sobreposições de recursos no ambiente de execução
API com recurso ativado
O método retorna true
se o recurso estiver ativado no dispositivo. Caso contrário, ele retornará
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