A VHAL oferece suporte a clientes Java e nativos. O serviço automóvel é o único
Cliente Java para VHAL. Para apps geralmente para carros, use as APIs Car (por exemplo,
CarPropertyManager
)
para acessar propriedades VHAL em vez de se comunicar diretamente com
a VHAL. Na verdade, o SELinux bloqueia isso. Confira mais detalhes na documentação da API Car em
Índice de pacotes.
Para clientes nativos, a partir do Android 13, use
libvhalclient
em vez de diretamente
para se conectar com a VHAL. Essa é uma biblioteca de cliente que expõe uma interface comum,
IVhalClient.h
para implementações de AIDL e HIDL VHAL. O exemplo a seguir mostra
como criar um cliente nativo VHAL e usá-lo para conseguir um número de identificação do veículo (VIN, na sigla em inglês):
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