Control de las funciones del servicio de automóviles

De forma predeterminada, la mayoría de los servicios para vehículos son obligatorios y siempre están habilitados. Sin embargo, puedes designar un subconjunto de servicios de automóviles como opcional, ya que algunas funciones podrían no ser compatibles con todos los vehículos.

Lista de funciones opcionales

En la siguiente tabla, se enumeran las funciones opcionales de control del automóvil que puedes habilitar y deshabilitar.

Función de control del vehículo Valor de cadena
Servicio de EVS del vehículo car_evs_service
Servicio de bloqueo experimental de un automóvil experimental_car_keyguard_service
Servicio de navegación para automóviles car_navigation_service
Servicio de conexión para ocupantes de vehículos 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 vehículo car_telemetry_service
Servicio de avisos para usuarios de vehículos com.android.car.user.CarUserNoticeService
Servicio doméstico del clúster cluster_home_service
Servicio de diagnóstico diagnostic
Servicio de detección de ocupantes occupant_awareness
Servicio de supervisión de almacenamiento storage_monitoring
Servicio de mapas para vehículos vehicle_map_service

Habilita y habilita las funciones de control del vehículo

Puedes controlar la compatibilidad con las funciones de tus compilaciones de una de las siguientes dos maneras: con superposiciones de recursos de tiempo 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 toman nota de las posibles funciones opcionales y se habilitan si el 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 el VHAL

La capa de abstracción de hardware del vehículo (VHAL) controla las funciones, ya que funciona como una lista de bloqueo para inhabilitar funciones opcionales específicas. La propiedad 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 VHAL, consulta la descripción general de VHAL.

Cómo usar 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 de user-debug y se proporcionan para que los usen los desarrolladores. La tabla en Lista de funciones opcionales contiene los valores que se deben usar 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, 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 depuras problemas relacionados con funciones específicas, puede ser útil saber qué funciones están habilitadas y por qué. Para volcar 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 Funciones habilitadas actualmente
mDefaultEnabledFeaturesFromConfig Funciones opcionales que se enumeran en config_allowed_optional_car_features.
mDisabledFeaturesFromVhal Funciones que el VHAL especifica para inhabilitar en la propiedad 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.