שימוש ב-VHAL עם אפליקציית הלקוח המותאמת

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