Użyj VHAL z natywnym klientem

VHAL obsługuje klientów Java i natywnych. Car Service jest jedynym klientem Java dla VHAL. W przypadku aplikacji typowo samochodowych użyj interfejsów API samochodu (na przykład CarPropertyManager ), aby uzyskać dostęp do właściwości VHAL zamiast bezpośrednio komunikować się z VHAL. W rzeczywistości SELinux to blokuje. Szczegółowe informacje można znaleźć w dokumentacji Car API w Indeksie pakietów .

W przypadku klientów natywnych, zaczynając od Androida 13, użyj libvhalclient zamiast bezpośredniego łączenia się z VHAL. Jest to biblioteka kliencka udostępniająca jeden wspólny interfejs, IVhalClient.h dla implementacji AIDL i HIDL VHAL. Poniższy przykład pokazuje, jak utworzyć natywnego klienta VHAL i użyć go do uzyskania numeru identyfikacyjnego pojazdu (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