Menggunakan VHAL dengan klien native

VHAL mendukung klien Java dan native. Layanan Mobil adalah satu-satunya klien Java untuk VHAL. Untuk umumnya aplikasi mobil, gunakan Car API (misalnya, CarPropertyManager) mengakses properti VHAL daripada berkomunikasi secara langsung dengan VHAL. Bahkan, SELinux memblokir ini. Untuk mengetahui detailnya, lihat dokumentasi Car API di Indeks Paket.

Untuk klien native, mulai dari Android 13, gunakan libvhalclient, bukan secara langsung menghubungkan 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 asli VHAL dan menggunakannya untuk mendapatkan nomor Nomor Identifikasi Kendaraan (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