Utilizza VHAL con il client nativo

VHAL supporta Java e client nativi. Il servizio auto è l'unico Client Java per VHAL. In genere, per le app per auto, utilizza le API Car (ad esempio, CarPropertyManager) per accedere alle proprietà VHAL anziché comunicare direttamente con il VHAL. Infatti, SELinux blocca questo comportamento. Per ulteriori dettagli, consulta la documentazione dell'API Car all'indirizzo Indice del pacchetto.

Per i client nativi, a partire da Android 13, usa libvhalclientanziché direttamente connessione con VHAL. Si tratta di una libreria client che espone un'interfaccia comune, IVhalClient.h per le implementazioni AIDL e HIDL VHAL. 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