Utilizza VHAL con il client nativo

VHAL supporta i client Java e nativi. Car Service è l'unico client Java per VHAL. In genere, utilizza le API Car (ad esempio, CarPropertyManager) per accedere alle proprietà VHAL anziché comunicare direttamente con il VHAL. Infatti, SELinux lo blocca. Per maggiori dettagli, consulta la documentazione dell'API Car nell'Indice dei pacchetti.

Per i client nativi, a partire da Android 13, utilizza libvhalclientinvece di connetterti direttamente con VHAL. Si tratta di una libreria client che espone un'interfaccia comune,IVhalClient.h per le implementazioni VHAL di AIDL e HIDL. L'esempio seguente mostra come creare un client nativo VHAL e utilizzarlo per ottenere un numero di identificazione del veicolo (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