नेटिव क्लाइंट के साथ VHAL का इस्तेमाल करें

VHAL, Java और नेटिव क्लाइंट के साथ काम करता है. VHAL के लिए, कार सेवा ही एकमात्र Java क्लाइंट है. आम तौर पर, कार ऐप्लिकेशन के लिए, VHAL प्रॉपर्टी को ऐक्सेस करने के लिए, VHAL के साथ सीधे तौर पर संपर्क करने के बजाय, Car API (उदाहरण के लिए, CarPropertyManager) का इस्तेमाल करें. असल में, SELinux इसे ब्लॉक करता है. ज़्यादा जानकारी के लिए, पैकेज इंडेक्स में कार एपीआई दस्तावेज़ देखें.

Android 13 के बाद के वर्शन वाले नेटिव क्लाइंट के लिए, VHAL से सीधे तौर पर कनेक्ट करने के बजाय, libvhalclient का इस्तेमाल करें. यह एक क्लाइंट लाइब्रेरी है, जो AIDL और HIDL VHAL लागू करने के लिए, एक सामान्य इंटरफ़ेस, IVhalClient.h दिखाती है. नीचे दिए गए उदाहरण में, VHAL नेटिव क्लाइंट बनाने और वाहन की पहचान करने वाला नंबर (वीआईएन) पाने के लिए, उसका इस्तेमाल करने का तरीका बताया गया है:

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