De forma predeterminada, la mayoría de los servicios de automóviles son obligatorios y siempre están habilitados. Sin embargo, puedes designar un subconjunto de servicios de automóviles como opcionales porque es posible que algunas funciones no sean compatibles con todos los automóviles.
Lista de funciones opcionales
En la siguiente tabla, se enumeran las funciones de control de automóviles opcionales que puedes habilitar y inhabilitar.
| Función de control de automóviles | Valor de cadena |
|---|---|
| Servicio EVS del vehículo | car_evs_service |
| Servicio experimental de Keyguard del vehículo | experimental_car_keyguard_service |
| Servicio de navegación del vehículo | car_navigation_service |
| Servicio de conexión de ocupantes del vehículo | car_occupant_connection_service |
| Servicio de acceso remoto del vehículo | car_remote_access_service |
| Servicio de dispositivo remoto del vehículo | car_remote_device_service |
| Servicio de telemetría del vehículo | car_telemetry_service |
| Servicio de aviso para el usuario del vehículo | com.android.car.user.CarUserNoticeService |
| Servicio de inicio de clúster | cluster_home_service |
| Servicio de diagnóstico | diagnostic |
| Servicio de reconocimiento de ocupantes | occupant_awareness |
| Servicio de supervisión de almacenamiento | storage_monitoring |
| Servicio de mapas para vehículos | vehicle_map_service |
Cómo habilitar y inhabilitar las funciones de control de automóviles
Puedes controlar la compatibilidad con las funciones en tus compilaciones de dos maneras: con superposiciones de recursos del entorno de ejecución (RRO) o a través de la capa de abstracción de hardware del vehículo (VHAL).
Usa RRO
Usa la configuración de recursos llamada config_allowed_optional_car_features, que
enumera todas las funciones opcionales que puedes habilitar. Cuando se inicia un automóvil por primera vez, se registran las posibles
funciones opcionales del automóvil y se habilitan si la VHAL no las incluye en la lista de bloqueados.
Para obtener más información sobre las RRO, consulta
Cómo cambiar el valor de los recursos de una app en el entorno de ejecución.
Usa la VHAL
La capa de abstracción de hardware del vehículo (VHAL) controla las funciones, ya que sirve como una
lista de bloqueados para inhabilitar funciones opcionales específicas. La propiedad de VHAL llamada
DISABLED_OPTIONAL_FEATURES enumera las funciones opcionales de la superposición que
se inhabilitarán. Si esta propiedad no existe, se habilitará la lista de funciones opcionales de
las RRO. Para obtener más información sobre la VHAL, consulta la
descripción general de la VHAL.
Usa comandos de shell de depuración
Una tercera forma de controlar qué funciones opcionales habilitar o inhabilitar es mediante el uso de un
par de comandos de shell, que solo están disponibles en compilaciones user-debug y que los desarrolladores pueden usar. La tabla de la lista de funciones opcionales contiene los valores que se usarán en lugar de
<FEATURE_STRING_VALUE>.
Para habilitar una función, haz lo siguiente:
adb root; adb shell cmd car_service enable-feature <FEATURE_STRING_VALUE>; adb reboot
Para inhabilitar una función, haz lo siguiente:
adb root; adb shell cmd car_service disable-feature <FEATURE_STRING_VALUE>; adb reboot
Determina qué funciones están habilitadas
Cuando depuras problemas relacionados con funciones específicas, puede ser útil saber qué funciones están
habilitadas y por qué. Para volcar información feature-related, ejecuta lo siguiente:
adb shell dumpsys car_service --services CarFeatureController
Este comando enumera los tipos de información que se muestran a continuación.
| Valor | Descripción |
|---|---|
mEnabledFeatures |
Funciones habilitadas actualmente |
mDefaultEnabledFeaturesFromConfig |
Funciones opcionales enumeradas en config_allowed_optional_car_features |
mDisabledFeaturesFromVhal |
Funciones especificadas por la VHAL para inhabilitarse en la propiedad de VHAL,
DISABLED_OPTIONAL_FEATURES. |
mPendingEnabledFeatures |
Funciones que se habilitarán después de un reinicio |
mPendingDisabledFeatures |
Funciones que se inhabilitarán después de un reinicio |