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

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