VHAL از جاوا و کلاینت های بومی پشتیبانی می کند. Car Service تنها مشتری جاوا برای VHAL است. برای برنامههای معمولاً خودرو، از Car API (به عنوان مثال CarPropertyManager
) برای دسترسی به ویژگیهای VHAL به جای برقراری ارتباط مستقیم با VHAL استفاده کنید. در واقع SELinux این را مسدود می کند. برای جزئیات، به مستندات Car API در Package Index مراجعه کنید.
برای مشتریان بومی، با شروع اندروید 13، به جای اتصال مستقیم با VHAL، از libvhalclient
استفاده کنید. این یک کتابخانه مشتری است که یک رابط مشترک 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