Используйте VHAL с собственным клиентом

VHAL поддерживает Java и собственные клиенты. Car Service — единственный Java-клиент для VHAL. Для обычных автомобильных приложений используйте Car API (например, CarPropertyManager ) для доступа к свойствам VHAL вместо прямого взаимодействия с VHAL. Фактически, SELinux блокирует это. Подробности см. в документации Car API по адресу Package Index .

Для собственных клиентов, начиная с Android 13, используйте libvhalclient вместо прямого подключения к VHAL. Это клиентская библиотека, которая предоставляет один общий интерфейс IVhalClient.h для реализаций AIDL и HIDL VHAL. В следующем примере показано, как создать собственный клиент VHAL и использовать его для получения номера идентификационного номера транспортного средства (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