Control de funciones del servicio de automóviles

De forma predeterminada, la mayoría de los servicios para 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 opcionales de control del automóvil que puedes habilitar o inhabilitar.

Función de control del automóvil Valor de cadena
Servicio EVS del vehículo car_evs_service
Servicio experimental de protección de llaves para automóviles experimental_car_keyguard_service
Servicio de navegación para automóviles car_navigation_service
Servicio de conexión para ocupantes del automóvil car_occupant_connection_service
Servicio de acceso remoto al automóvil car_remote_access_service
Servicio de dispositivos remotos para automóviles car_remote_device_service
Servicio de telemetría del automóvil car_telemetry_service
Servicio de aviso al usuario del automóvil com.android.car.user.CarUserNoticeService
Servicio a domicilio de Cluster cluster_home_service
Servicio de diagnóstico diagnostic
Servicio de detección de ocupantes occupant_awareness
Servicio de supervisión del almacenamiento storage_monitoring
Servicio de mapas para vehículos vehicle_map_service

Cómo habilitar y inhabilitar las funciones de control del automóvil

Puedes controlar la compatibilidad con las funciones en tus compilaciones de dos maneras: con superposiciones de recursos en tiempo de ejecución (RRO) o a través de la capa de abstracción de hardware del vehículo (VHAL).

Usa las 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 bloqueo. Para obtener más información sobre las RRO, consulta Cómo cambiar el valor de los recursos de una app en el tiempo de ejecución.

Usa la VHAL

La capa de abstracción de hardware del vehículo (VHAL) controla las funciones actuando como una lista de bloqueo para inhabilitar funciones opcionales específicas. La propiedad de VHAL llamada DISABLED_OPTIONAL_FEATURES enumera las funciones opcionales de la superposición que se deben inhabilitar. Si esta propiedad no existe, se habilitan todos los componentes opcionales de los RR.OO. Para obtener más información sobre la VHAL, consulta la descripción general de la VHAL.

Cómo usar comandos de depuración del shell

Una tercera forma de controlar qué funciones opcionales habilitar o inhabilitar es a través del uso de un par de comandos de shell, que solo están disponibles en las compilaciones de user-debug y se proporcionan para que los usen los desarrolladores. La tabla en Lista de atributos opcionales contiene los valores que se deben usar en lugar de <FEATURE_STRING_VALUE>.

Para habilitar una función, sigue estos pasos:

adb root; adb shell cmd car_service enable-feature <FEATURE_STRING_VALUE>; adb reboot

Para inhabilitar una función, sigue estos pasos:

adb root; adb shell cmd car_service disable-feature <FEATURE_STRING_VALUE>; adb reboot

Cómo determinar qué funciones están habilitadas

Cuando depures problemas relacionados con funciones específicas, puede ser útil saber qué funciones están habilitadas y por qué. Para volcar la información de 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 Son las funciones habilitadas actualmente.
mDefaultEnabledFeaturesFromConfig Son las funciones opcionales que se indican en config_allowed_optional_car_features.
mDisabledFeaturesFromVhal Son las funciones especificadas por el VHAL que se deben inhabilitar en la propiedad del VHAL, DISABLED_OPTIONAL_FEATURES.
mPendingEnabledFeatures Son las funciones que se habilitarán cuando se reinicie el dispositivo.
mPendingDisabledFeatures Son las funciones que se inhabilitarán después de un reinicio.