Używanie VHAL z klientem natywnym

VHAL obsługuje klienty w języku Java i klienty natywne. Serwis samochodowy jest jedynym Klient Java dla VHAL. W przypadku typowych aplikacji samochodowych użyj interfejsów API samochodu (np. CarPropertyManager) w celu uzyskania dostępu do właściwości VHAL zamiast bezpośredniej komunikacji z VHAL. SELinux blokuje te funkcje. Szczegółowe informacje znajdziesz w dokumentacji interfejsu Car API na stronie Indeks pakietu.

W przypadku klientów natywnych, począwszy od Androida 13, używaj libvhalclient zamiast bezpośrednio przez połączenie z VHAL. To biblioteka kliencka, która ujawnia jeden wspólny interfejs: IVhalClient.h na potrzeby implementacji AIDL i HIDL VHAL. Następujący przykład pokazuje: Jak utworzyć klienta natywnego VHAL i użyć go do uzyskania numeru VIN pojazdu:

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