Verwenden Sie VHAL mit dem nativen Client

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