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

يدعم VHAL جافا والبرامج الأصلية. خدمة السيارات هي الخدمة الوحيدة برنامج 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