Używanie VHAL z klientem natywnym

VHAL obsługuje klientów natywne i w Javie. Usługa Car Service to jedyny klient w Javie dla VHAL. W przypadku typowych aplikacji samochodowych używaj interfejsów Car API (np. CarPropertyManager), aby uzyskiwać dostęp do właściwości VHAL, zamiast komunikować się bezpośrednio z VHAL. SELinux blokuje to. Szczegółowe informacje znajdziesz w dokumentacji interfejsu Car API w Indeksie pakietów.

W przypadku klientów natywnych, począwszy od Androida 13, użyj libvhalclient zamiast łączyć się bezpośrednio z VHAL. Jest to biblioteka klienta, która udostępnia jeden wspólny interfejs IVhalClient.h do implementacji AIDL i HIDL VHAL. Ten przykład pokazuje, jak utworzyć natywny klient 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