استخدام VHAL مع العميل الأصلي

يتوافق 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