VHAL mit dem nativen Client verwenden

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