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