Usa VHAL con el cliente nativo

VHAL es compatible con Java y clientes nativos. El servicio de automóviles es el único Cliente de Java para VHAL. Por lo general, en las apps para vehículos, usa las APIs de Car (por ejemplo, CarPropertyManager) para acceder a las propiedades de VHAL en lugar de comunicarse directamente el VHAL. De hecho, SELinux lo bloquea. Para obtener más información, consulta la documentación de la API de Car en Índice del paquete.

Para clientes nativos, a partir de Android 13, usa libvhalclienten lugar de hacerlo directamente que se está conectando con VHAL. Esta es una biblioteca cliente que expone una interfaz común: IVhalClient.h para las implementaciones de VHAL de AIDL y HIDL En el siguiente ejemplo, se muestra Cómo crear un cliente nativo de 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