Utilizza VHAL con il client nativo

VHAL supporta Java e client nativi. Car Service è l'unico client Java per VHAL. Per le app tipicamente per auto, utilizza le API Car (ad esempio CarPropertyManager ) per accedere alle proprietà VHAL invece di comunicare direttamente con VHAL. In effetti, SELinux lo blocca. Per i dettagli, consultare la documentazione dell'API Car nell'Indice dei pacchetti .

Per i client nativi, a partire da Android 13, utilizzare libvhalclient invece di connettersi direttamente con VHAL. Si tratta di una libreria client che espone un'interfaccia comune, IVhalClient.h per le implementazioni AIDL e HIDL VHAL. L'esempio seguente mostra come creare un client nativo VHAL e utilizzarlo per ottenere un numero di identificazione del veicolo (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