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

VHAL รองรับ Java และไคลเอ็นต์เนทีฟ Car Service เป็นไคลเอนต์ Java เดียวสำหรับ VHAL สำหรับแอปรถยนต์โดยทั่วไป ให้ใช้ Car API (เช่น CarPropertyManager ) เพื่อเข้าถึงคุณสมบัติ VHAL แทนที่จะสื่อสารโดยตรงกับ VHAL ในความเป็นจริง SELinux บล็อกสิ่งนี้ สำหรับรายละเอียด โปรดดูเอกสารประกอบ Car API ที่ Package Index

สำหรับไคลเอ็นต์เนทีฟ เริ่มต้นด้วย 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