Control de las 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 opcional, ya que algunas funciones podrían no en todos los vehículos.

Lista de funciones opcionales

En la siguiente tabla, se indican las funciones opcionales de control del vehículo que puedes habilitar o inhabilitar.

Función de control del vehículo Valor de cadena
Servicio EVS del automóvil 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 de los ocupantes del vehículo car_occupant_connection_service
Servicio de acceso remoto de automóviles 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 usuarios del vehículo com.android.car.user.CarUserNoticeService
Servicio doméstico del clúster cluster_home_service
Servicio de diagnóstico diagnostic
Visualización de conocimiento de los ocupantes occupant_awareness
Servicio de supervisión de almacenamiento storage_monitoring
Servicio de mapas para vehículos vehicle_map_service

Habilita o inhabilita las funciones de control del vehículo

Puedes controlar la compatibilidad de las funciones en tus compilaciones de dos maneras: 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, es posible se señalan las funciones opcionales del vehículo y se habilitan si no están incluidas en la lista de entidades bloqueadas por el VHAL. Para obtener más información sobre las RRO, consulta Cambiar el valor de los recursos de una app durante el tiempo de ejecución

Cómo usar la VHAL

La capa de abstracción de hardware del vehículo (VHAL) controla funciones como lista de entidades bloqueadas 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, la lista de funciones opcionales de de que estén habilitadas todas las RRO. Para obtener más información sobre el VHAL, consulta la Descripción general de VHAL.

Cómo usar los comandos de shell de depuración

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 compilaciones de user-debug y se para que los usen los desarrolladores. La tabla en La 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, haz lo siguiente:

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 cuáles son 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 Funciones habilitadas actualmente.
mDefaultEnabledFeaturesFromConfig Las funciones opcionales que se mencionan en config_allowed_optional_car_features.
mDisabledFeaturesFromVhal Las funciones especificadas por el VHAL que se inhabilitarán en la propiedad de VHAL. DISABLED_OPTIONAL_FEATURES
mPendingEnabledFeatures Funciones que se habilitarán al reiniciar el dispositivo.
mPendingDisabledFeatures Funciones que se inhabilitarán después de reiniciar el dispositivo.