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 Auto-APIs (z. B. CarPropertyManager
), um auf VHAL-Eigenschaften zuzugreifen, anstatt direkt mit dem VHAL zu kommunizieren. Tatsächlich blockiert SELinux dies. Einzelheiten finden Sie in der Car-API-Dokumentation im Paketindex .
Verwenden Sie für native Clients ab Android 13 libvhalclient
, anstatt eine direkte Verbindung mit VHAL herzustellen. Dies ist eine Client-Bibliothek, die eine gemeinsame Schnittstelle, IVhalClient.h
für AIDL- und HIDL-VHAL-Implementierungen bereitstellt. Das folgende Beispiel zeigt, wie Sie einen nativen VHAL-Client erstellen und ihn verwenden, um eine Fahrzeugidentifikationsnummer (VIN) zu erhalten:
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