ใช้ VHAL กับไคลเอ็นต์เนทีฟ

VHAL รองรับไคลเอ็นต์ Java และไคลเอ็นต์เนทีฟ Car Service เป็นไคลเอ็นต์ Java เพียงรายการเดียวสําหรับ VHAL สำหรับแอปรถยนต์โดยทั่วไป ให้ใช้ Car API (เช่น 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