默认情况下,大多数汽车服务是强制性的,并且始终处于启用状态。但是,您可以将汽车服务的一个子集指定为可选,因为并非每辆汽车都可能支持某些功能。
可选功能列表
下表列出了您可以启用和停用的可选汽车控制功能。
汽车控制功能 | 字符串值 |
---|---|
汽车 EVS 服务 | car_evs_service |
汽车实验性 Keyguard 服务 | experimental_car_keyguard_service |
汽车导航服务 | car_navigation_service |
汽车乘员连接服务 | car_occupant_connection_service |
汽车远程访问服务 | car_remote_access_service |
汽车远程设备服务 | car_remote_device_service |
汽车遥测服务 | car_telemetry_service |
汽车用户通知服务 | com.android.car.user.CarUserNoticeService |
Cluster Home 服务 | cluster_home_service |
诊断服务 | diagnostic |
乘员感知服务 | occupant_awareness |
存储监控服务 | storage_monitoring |
车辆地图服务 | vehicle_map_service |
启用和停用汽车控制功能
您可以通过两种方式之一控制构建版本中对功能的支持,即使用运行时资源叠加层 (RRO) 或通过车辆硬件抽象层 (VHAL)。
使用 RRO
使用名为 config_allowed_optional_car_features
的资源配置,其中列出了您可以启用的所有可选功能。当汽车首次启动时,会注意到可能的可选汽车功能,如果它们未被 VHAL 阻止,则会启用这些功能。要了解更多 RRO,请参阅在运行时更改应用资源的值。
使用 VHAL
车辆硬件抽象层 (VHAL) 通过充当阻止列表来停用特定的可选功能,从而控制这些功能。名为 DISABLED_OPTIONAL_FEATURES
的 VHAL 属性列出了叠加层中要停用的可选功能。如果此属性不存在,则 RRO 中的可选功能列表将全部启用。要详细了解 VHAL,请参阅VHAL 概览。
使用调试 Shell 命令
控制要启用或停用哪些可选功能的第三种方法是使用一对 Shell 命令,这些命令仅在 user-debug
构建版本中可用,并且供开发者使用。可选功能列表中的表格包含要使用的值,而不是 <FEATURE_STRING_VALUE>
。
启用功能
adb root; adb shell cmd car_service enable-feature <FEATURE_STRING_VALUE>; adb reboot
停用功能
adb root; adb shell cmd car_service disable-feature <FEATURE_STRING_VALUE>; adb reboot
确定启用了哪些功能
在调试与特定功能相关的问题时,了解启用了哪些功能以及原因可能会有所帮助。要转储 feature-related
信息,请运行
adb shell dumpsys car_service --services CarFeatureController
此命令列出了如下所示的信息类型。
值 | 说明 |
---|---|
mEnabledFeatures |
当前启用的功能。 |
mDefaultEnabledFeaturesFromConfig |
config_allowed_optional_car_features 中列出的可选功能。 |
mDisabledFeaturesFromVhal |
VHAL 指定要在 VHAL 属性 DISABLED_OPTIONAL_FEATURES 中停用的功能。 |
mPendingEnabledFeatures |
重启后要启用的功能。 |
mPendingDisabledFeatures |
重启后要停用的功能。 |