Utiliser VHAL avec le client natif

VHAL prend en charge Java et les clients natifs. Car Service est le seul client Java pour VHAL. Pour les applications typiquement automobiles, utilisez les API Car (par exemple, CarPropertyManager ) pour accéder aux propriétés VHAL au lieu de communiquer directement avec le VHAL. En fait, SELinux bloque cela. Pour plus de détails, consultez la documentation de l'API Car sur Package Index .

Pour les clients natifs, à partir d'Android 13, utilisez libvhalclient au lieu de vous connecter directement avec VHAL. Il s'agit d'une bibliothèque client 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