ใช้ VHAL กับไคลเอ็นต์ดั้งเดิม

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