שימוש ב-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