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

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