VHAL תומך בלקוחות Java ובלקוחות מקומיים. Car Service הוא הלקוח היחיד של VHAL ב-Java. באפליקציות לרכב, מומלץ להשתמש בממשקי ה-API לרכב (לדוגמה, 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