يتوافق VHAL مع برامج Java والبرامج المتوافقة مع الأجهزة. Car Service هو العميل الوحيد
لـ Java في VHAL. بالنسبة إلى تطبيقات السيارات بشكل عام، استخدِم واجهات برمجة تطبيقات Car APIs (مثل
CarPropertyManager
)
للوصول إلى سمات VHAL بدلاً من التواصل مباشرةً مع
VHAL. في الواقع، يحظر SELinux ذلك. لمعرفة التفاصيل، يُرجى الاطّلاع على مستندات Car API على
فهرس الحِزم.
بالنسبة إلى البرامج الأصلية، بدءًا من Android 13، استخدِم
libvhalclient
بدلاً من الانتقال مباشرةً
جارٍ الاتصال بـ VHAL. هذه مكتبة عملاء تعرض واجهة شائعة واحدة،
IVhalClient.h
لعمليات تنفيذ VHAL في لغة تعريف واجهة نظام Android (AIDL) وHIDL. يوضح المثال التالي
كيفية إنشاء عميل VHAL أصلي واستخدامه للحصول على رقم تعريف المركبة (VIN):
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