VHAL oferece suporte a clientes Java e nativos. Car Service é o único cliente Java para VHAL. Para aplicativos típicos de carros, use as APIs Car (por exemplo, CarPropertyManager
) para acessar as propriedades do VHAL em vez de se comunicar diretamente com o VHAL. Na verdade, o SELinux bloqueia isso. Para obter detalhes, consulte a documentação da API Car em Package Index .
Para clientes nativos, a partir do Android 13, use libvhalclient
em vez de conectar-se diretamente ao VHAL. Esta é uma biblioteca cliente que expõe uma interface comum, IVhalClient.h
para implementações AIDL e HIDL VHAL. O exemplo a seguir mostra como criar um cliente nativo VHAL e usá-lo para obter um número de identificação do veículo (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