Utiliser VHAL avec le client natif

VHAL est compatible avec Java et les clients natifs. Car Service est le seul client Java pour VHAL. Pour les applications pour voitures, utilisez les API Car (par exemple, CarPropertyManager) pour accéder aux propriétés VHAL au lieu de communiquer directement avec le VHAL. En réalité, SELinux bloque cela. Pour en savoir plus, consultez la documentation de l'API Car sur le site de l'index des packages.

Pour les clients natifs, à partir d'Android 13, utilisez libvhalclient au lieu de vous connecter directement à VHAL. Il s'agit d'une bibliothèque cliente qui expose une interface commune, IVhalClient.h, pour les implémentations VHAL AIDL et HIDL. L'exemple suivant montre comment créer un client natif VHAL et l'utiliser pour obtenir un numéro VIN (Vehicle Identification Number) :

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