VHAL supporta Java e client nativi. Il servizio auto è l'unico
Client Java per VHAL. In genere, per le app per auto, utilizza le API Car (ad esempio,
CarPropertyManager
)
per accedere alle proprietà VHAL anziché comunicare direttamente con
il VHAL. Infatti, SELinux blocca questo comportamento. Per ulteriori dettagli, consulta la documentazione dell'API Car all'indirizzo
Indice del pacchetto.
Per i client nativi, a partire da Android 13, usa
libvhalclient
anziché direttamente
connessione 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