Control de funciones del servicio de automóviles

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