Menggunakan VHAL dengan klien native

VHAL mendukung klien Java dan native. Car Service adalah satu-satunya klien Java untuk VHAL. Untuk aplikasi mobil biasa, gunakan API Mobil (misalnya, CarPropertyManager) untuk mengakses properti VHAL, bukan berkomunikasi langsung dengan VHAL. Faktanya, SELinux memblokir hal ini. Untuk detailnya, lihat dokumentasi Car API di Indeks Paket.

Untuk klien native, mulai Android 13, gunakan libvhalclient, bukan terhubung langsung dengan VHAL. Ini adalah library klien yang mengekspos satu antarmuka umum, IVhalClient.h untuk implementasi VHAL AIDL dan HIDL. Contoh berikut menunjukkan cara membuat klien native VHAL dan menggunakannya untuk mendapatkan nomor Vehicle Identification Number (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