Utilice VHAL con el cliente nativo

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