मूल क्लाइंट के साथ VHAL का उपयोग करें

वीएचएएल जावा और मूल ग्राहकों का समर्थन करता है। वीएचएएल के लिए कार सर्विस एकमात्र जावा क्लाइंट है। आम तौर पर कार ऐप्स के लिए, वीएचएएल के साथ सीधे संचार करने के बजाय वीएचएएल गुणों तक पहुंचने के लिए कार एपीआई (उदाहरण के लिए, CarPropertyManager ) का उपयोग करें। वास्तव में, SELinux इसे रोकता है। विवरण के लिए, पैकेज इंडेक्स पर कार एपीआई दस्तावेज़ देखें।

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

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