將 VHAL 與本機用戶端結合使用

VHAL 支援 Java 和本機客戶端。 Car Service 是 VHAL 的唯一 Java 用戶端。對於典型的汽車應用程序,使用 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