VHAL admite Java y clientes nativos. Car Service es el único cliente Java para VHAL. Para aplicaciones típicas de automóviles, use las API de automóviles (por ejemplo, CarPropertyManager
) para acceder a las propiedades de VHAL en lugar de comunicarse directamente con VHAL. De hecho, SELinux bloquea esto. Para obtener más información, consulte la documentación de Car API en Package Index .
Para clientes nativos, a partir de Android 13, use libvhalclient
en lugar de conectarse directamente con VHAL. Esta es una biblioteca cliente que expone una interfaz común, IVhalClient.h
para implementaciones AIDL y HIDL VHAL. El siguiente ejemplo muestra cómo crear un cliente nativo VHAL y usarlo para obtener un número de identificación del vehículo (VIN):
using ::aidl::android::hardware::automotive::vehicle::VehicleProperty; using ::android::frameworks::automotive::vhal::IVhalClient; using ::android::hardware::automotive::vehicle::toInt; auto vhalClient = IVhalClient::tryCreate(); if (vhalClient == nullptr) { // handle error. } auto result = vhalClient->getValueSync( *vhalClient->createHalPropValue(toInt(VehicleProperty::INFO_VIN))); // Use result