O Android Automotive OS (AAOS) usa sinalizadores e configurações para habilitar diferentes recursos, começando com roteamento dinâmico até sinalizadores de recursos mais genéricos, como controle de volume do serviço automotivo. Os sinalizadores atuais de configuração do AAOS para gerenciamento de áudio são descritos aqui.
Bandeira | Propósito | |
---|---|---|
audioUseDynamicRouting | Definido no arquivo de configuração do serviço automotivo para Habilitar roteamento AAOS . A configuração deve ser definida como true . Quando false , o roteamento e grande parte do CarAudioService são desabilitados e o sistema operacional volta ao comportamento padrão descrito em Configurando políticas de áudio . | |
audioUseCarVolumeGroupMuting | Definido no arquivo de configuração do serviço automotivo para ativar o silenciamento de grupos de volumes individuais. Quando definido como false (o valor padrão), o silenciamento de grupos de volumes individuais é desativado. Em vez disso, o silenciamento alterna o silenciamento mestre. 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 volumes deve ser implementado no HAL de controle de áudio . | |
audioUseHalDuckingSignals | Definido no arquivo de configuração do serviço automotivo para permitir que a API IAudioControl#onDevicesToDuckChange informe ao HAL quando se abaixar. Quando true (valor padrão), a API recebe sinais indicando quais dispositivos de saída devem ser evitados 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 a redução. | |
config_oemCarService | Definido no arquivo de configuração do serviço automotivo, este é o nome do componente para o serviço de personalização OEM. Os OEMs podem optar por implementar este serviço para personalizar as ações de serviço automotivo para diferentes políticas. Se os OEMs optarem por implementar este componente, eles deverão implementar um serviço para estender OemCarService exposto por car-lib e, em seguida, implementar os serviços do componente necessários. Especificamente para serviços de áudio automotivo, os OEMs podem implementar qualquer um dos subserviços de áudio para gerenciar a ação de áudio. Para obter detalhes, consulte Serviço de plug-in de áudio automotivo . Se o nome do componente for inválido, CarService não se conectará a nenhum serviço OEM. O nome do componente não pode ser um pacote de terceiros. Deve ser pré-instalado. | audioVolumeAdjustmentContextsVersion | Definido no arquivo de configuração do serviço automotivo, configuração para selecionar a versão da lista de prioridades de contexto de ajuste de volume. A versão 1 inclui todos os contextos de áudio, nesta ordem:
A versão 2 está limitada aos seguintes contextos, nesta ordem. A versão padrão é
|
audioPersistMasterMuteState | Definido no arquivo de configuração do serviço automotivo, configuração para persistir o estado mudo global. Quando true (o valor padrão), o Android restaura o estado mudo global na inicialização. Quando audioUseCarVolumeGroupMuting for true , isso não terá impacto nas alterações persistentes de mudo, pois as alterações de mudo são baseadas em grupos de volume individuais. O valor padrão é definido como true e deve ser substituído quando o silenciamento mestre não deve ser persistido para um dispositivo. | |
audioVolumeKeyEventTimeoutMs | Definido no arquivo de configuração do serviço automotivo, configuração para indicar o tempo limite em milissegundos enquanto um grupo de volume do carro é considerado ativo para alterações de controle de volume durante eventos de tecla de volume. A configuração é usada da seguinte forma:
O valor padrão é | |
audioUseCarVolumeGroupEvent | Definido no arquivo de configuração do serviço automotivo, configuração para ativar eventos de retorno de chamada para grupos de volumes. Quando true , os clientes recebem retorno de chamada por meio de ICarVolumeGroupEvent para eventos que impactam grupos de volumes. Quando ativado:
O valor padrão é | |
config_useFixedVolume | Definido em frameworks/base/core/res/res/values/config.xml . Deve ser definido como true para permitir que o serviço de áudio automotivo gerencie o controle de volume. Quando o sinalizador config_useFixedVolume não está definido ou está definido como false (o valor padrão), os aplicativos podem chamar as APIs de gerenciamento de volume AudioManager e alterar o volume por tipo de fluxo no mixer de software. Isso pode ser indesejável devido ao efeito potencial em outros aplicativos e ao fato de que a atenuação do 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 alterações de volume por meio das APIs de volume e mudo AudioManager . | |
config_handleVolumeKeysInWindowManager | Definido em frameworks/base/core/res/res/values/config.xml , deve ser definido como true para permitir que o serviço de áudio do carro intercepte eventos de chave de volume. Se definido como false (o valor padrão), os eventos de chave de volume podem ser encaminhados para o aplicativo em primeiro plano e podem levar a resultados adversos do gerenciamento de eventos de chave de volume fora do serviço de áudio do carro. |
Configurações do serviço de áudio automotivo
Antes do Android 13, as configurações de serviço automotivo eram substituídas por uma sobreposição de configuração de produto (para saber mais, consulte Personalização do build com sobreposições de recursos ) para o arquivo packages/services/Car/service/res/values/config.xml
.
PRODUCT_PACKAGE_OVERLAYS := <path_to_overlay>
A localização do arquivo de configuração de <path_to_overlay>
até a localização real deve incluir packages/services/Car/service/res/values/
.
RROs de serviço de carro
Desde o Android 13, o AAOS oferece suporte a sobreposições de recursos de tempo de execução . Use um RRO para alterar o valor da configuração de áudio do carro. Por exemplo, consulte os RROs para a referência cuttlefish
automotivo 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 obter mais informações:
- Sobreposições de recursos de tempo de execução
- Solução de problemas de sobreposições de recursos de tempo de execução
API habilitada para recursos
O método retorna true
se o recurso estiver habilitado no dispositivo, caso contrário, false
. Na API CarAudioManager#isAudioFeatureEnabled
, o parâmetro passado 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