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. |