VHAL unterstützt Java und native Clients. Car Service ist der einzige Java-Client für VHAL. Verwenden Sie für typische Auto-Apps die Car APIs (z. B. CarPropertyManager
), um auf VHAL-Properties zuzugreifen, anstatt direkt mit der VHAL zu kommunizieren. SELinux blockiert dies. Weitere Informationen finden Sie in der Car API-Dokumentation im Paketindex.
Verwenden Sie für native Clients ab Android 13 libvhalclient
, anstatt eine direkte Verbindung zu VHAL herzustellen. Dies ist eine Clientbibliothek, die die gemeinsame Schnittstelle IVhalClient.h
für AIDL- und HIDL VHAL-Implementierungen bereitstellt. Im folgenden Beispiel wird gezeigt, wie Sie einen nativen VHAL-Client erstellen und damit eine Fahrzeugidentifikationsnummer (Vehicle Identification Number, VIN) abrufen:
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