Por padrão, a maioria dos serviços de carro é obrigatória e está sempre ativada. No entanto, é possível designar um subconjunto de serviços de carro como opcional porque alguns recursos podem não ser compatíveis com todos os carros.
Lista de recursos opcionais
Os recursos opcionais de controle do carro que podem ser ativados e desativados estão listados na tabela abaixo.
| Recurso de controle do carro | Valor de string |
|---|---|
| Serviço Car EVS | car_evs_service |
| Serviço experimental de proteção de chaves do carro | experimental_car_keyguard_service |
| Serviço de navegação do carro | car_navigation_service |
| Serviço de conexão de ocupantes do carro | car_occupant_connection_service |
| Serviço de acesso remoto do carro | car_remote_access_service |
| Serviço de dispositivo remoto do carro | car_remote_device_service |
| Serviço de telemetria do carro | car_telemetry_service |
| Serviço de aviso ao usuário do carro | com.android.car.user.CarUserNoticeService |
| Serviço de cluster inicial | cluster_home_service |
| Serviço de diagnóstico | diagnostic |
| Serviço de reconhecimento de ocupantes | occupant_awareness |
| Serviço de monitoramento de armazenamento | storage_monitoring |
| Serviço de mapa veicular | vehicle_map_service |
Ativar e desativar recursos de controle do carro
É possível controlar o suporte a recursos nas suas builds de duas maneiras: com sobreposições de recursos de tempo de execução (RROs, na sigla em inglês) ou pela camada de abstração de hardware do veículo (VHAL, na sigla em inglês).
Usar RROs
Use a configuração de recursos chamada config_allowed_optional_car_features, que
lista todos os recursos opcionais que podem ser ativados. Quando um carro é inicializado pela primeira vez, os possíveis
recursos opcionais são observados e ativados se não estiverem na lista de bloqueio da VHAL.
Para saber mais sobre RROs, consulte
Mudar o valor dos recursos de um app durante a execução.
Usar a VHAL
A camada de abstração de hardware do veículo (VHAL) controla os recursos servindo como uma
lista de bloqueio para desativar recursos opcionais específicos. A propriedade VHAL chamada
DISABLED_OPTIONAL_FEATURES lista os recursos opcionais na sobreposição que
precisam ser desativados. Se essa propriedade não existir, a lista de recursos opcionais de
as RROs serão ativadas. Para saber mais sobre a VHAL, consulte a
visão geral da VHAL.
Usar comandos do shell de depuração
Uma terceira maneira de controlar quais recursos opcionais ativar ou desativar é usando um
par de comandos de shell, que estão disponíveis apenas em builds user-debug e são
fornecidos para uso por desenvolvedores. A tabela em
Lista de recursos opcionais contém os valores a serem usados em vez de
<FEATURE_STRING_VALUE>.
Para ativar um recurso:
adb root; adb shell cmd car_service enable-feature <FEATURE_STRING_VALUE>; adb reboot
Para desativar um recurso:
adb root; adb shell cmd car_service disable-feature <FEATURE_STRING_VALUE>; adb reboot
Determinar quais recursos estão ativados
Ao depurar problemas relacionados a recursos específicos, pode ser útil saber quais recursos estão
ativados e por quê. Para despejar informações feature-related, execute:
adb shell dumpsys car_service --services CarFeatureController
Esse comando lista os tipos de informações mostrados abaixo.
| Valor | Descrição |
|---|---|
mEnabledFeatures |
Recursos ativados no momento. |
mDefaultEnabledFeaturesFromConfig |
Recursos opcionais listados em config_allowed_optional_car_features. |
mDisabledFeaturesFromVhal |
Recursos especificados pela VHAL para serem desativados na propriedade VHAL,
DISABLED_OPTIONAL_FEATURES. |
mPendingEnabledFeatures |
Recursos a serem ativados após uma reinicialização. |
mPendingDisabledFeatures |
Recursos a serem desativados após uma reinicialização. |