VHAL รองรับไคลเอ็นต์ Java และไคลเอ็นต์เนทีฟ Car Service เป็นไคลเอ็นต์ Java เพียงรายการเดียวสําหรับ VHAL สําหรับแอปรถยนต์ทั่วไป ให้ใช้ Car APIs (เช่น CarPropertyManager
) เพื่อเข้าถึงพร็อพเพอร์ตี้ VHAL แทนการติดต่อ VHAL โดยตรง จริงๆ แล้ว SELinux จะบล็อกการดำเนินการนี้ โปรดดูรายละเอียดในเอกสารประกอบของ Car API ที่ดัชนีแพ็กเกจ
สำหรับไคลเอ็นต์เนทีฟใน Android 13 เป็นต้นไป ให้ใช้ libvhalclient
แทนการเชื่อมต่อกับ VHAL โดยตรง ไลบรารีไคลเอ็นต์นี้จะแสดงอินเทอร์เฟซทั่วไป 1 รายการ IVhalClient.h
สำหรับการใช้งาน VHAL ของ AIDL และ HIDL ตัวอย่างต่อไปนี้แสดงวิธีสร้างไคลเอ็นต์ 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