שימוש ב-VHAL עם הלקוח המקורי

VHAL תומך ב-Java ובלקוחות נייטיב. שירות הסעות הוא היחיד לקוח Java ל-VHAL. באפליקציות שמיועדות בדרך כלל למכוניות, השתמשו בממשקי ה-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