VHAL hỗ trợ Java và ứng dụng gốc. Dịch vụ ô tô là ứng dụng Java duy nhất cho VHAL. Đối với các ứng dụng dành cho ô tô thông thường, hãy sử dụng API Ô 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 sẽ chặn việc này. Để biết thông tin chi tiết, hãy xem tài liệu về API ô tô tại Chỉ mục gói.
Đối với ứng dụng gốc, bắt đầu từ Android 13, hãy sử dụng libvhalclient
thay vì kết nối trực tiếp với VHAL. Đây là một thư viện ứng dụng hiển thị một giao diện chung, IVhalClient.h
để triển khai AIDL và HIDL VHAL. Ví dụ sau đây cho thấy cách tạo ứng dụng gốc VHAL và sử dụng ứng dụng đó để lấy mã 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