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

يدعم VHAL عملاء Java والعملاء الأصليين. خدمة السيارات هي عميل Java الوحيد لـ VHAL. بالنسبة لتطبيقات السيارات النموذجية، استخدم واجهات برمجة تطبيقات السيارة (على سبيل المثال، CarPropertyManager ) للوصول إلى خصائص VHAL بدلاً من الاتصال مباشرة بـ VHAL. في الواقع، SELinux يمنع هذا. للحصول على التفاصيل، راجع وثائق Car API في Package Index .

بالنسبة للعملاء الأصليين، بدءًا من 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