Usa VHAL con el cliente nativo

VHAL admite clientes Java y nativos. Car Service es el único cliente de Java para VHAL. En el caso de las apps para vehículos, usa las APIs de Car (por ejemplo, CarPropertyManager) para acceder a las propiedades de VHAL en lugar de comunicarte directamente con VHAL. De hecho, SELinux lo bloquea. Para obtener más información, consulta la documentación de la API de vehículos en Índice del paquete.

En el caso de los clientes nativos, a partir de Android 13, usa libvhalclient en lugar de conectarte directamente con VHAL. Esta es una biblioteca cliente que expone una interfaz común, IVhalClient.h para las implementaciones de AIDL y HIDL de VHAL. En el siguiente ejemplo, se muestra cómo crear un cliente nativo de VHAL y usarlo para obtener un número de identificación de 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