Sử dụng VHAL với ứng dụng gốc

VHAL hỗ trợ ứng dụng Java và ứng dụng gốc. Dịch vụ ô tô là dịch vụ duy nhất Ứng dụng Java cho VHAL. Đối với các ứng dụng thường dùng cho ô tô, hãy dùng API cho Ô tô (ví dụ: CarPropertyManager) để truy cập vào các thuộc tính VHAL thay vì giao tiếp trực tiếp với VHAL. Trên thực tế, SELinux chặn điều này. Để biết thông tin chi tiết, vui lòng xem tài liệu về Car API tại Package Index (Chỉ mục gói).

Đối với ứng dụng gốc, kể từ Android 13, hãy sử dụng libvhalclientthay vì cài đặt trực tiếp kết nối với VHAL. Đây là thư viện ứng dụng cho thấy một giao diện chung, IVhalClient.h để triển khai AIDL và HIDL VHAL. Ví dụ sau cho thấy cách tạo ứng dụng gốc VHAL và sử dụng ứng dụng đó để nhận số nhận dạng xe (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