Utiliser VHAL avec le client natif

VHAL est compatible avec Java et les clients natifs. L'entretien automobile est le seul Client Java pour VHAL. Pour les applications pour voiture, utilisez les API Car (par exemple, CarPropertyManager) d'accéder aux propriétés VHAL au lieu de communiquer directement avec le VHAL. En fait, SELinux bloque cela. Pour en savoir plus, consultez la documentation de l'API Car à l'adresse Index des packages.

Pour les clients natifs, à partir d'Android 13, utilisez libvhalclient au lieu de en se connectant à VHAL. Il s'agit d'une bibliothèque cliente qui expose une interface commune, IVhalClient.h pour les implémentations AIDL et HIDL VHAL. L'exemple suivant montre comment créer un client natif VHAL et l'utiliser pour obtenir un numéro d'identification de véhicule (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