O VHAL oferece suporte a clientes Java e nativos. O Car Service é o único
cliente Java para VHAL. Para apps de carros, use as APIs Car (por exemplo,
CarPropertyManager
)
para acessar propriedades do VHAL em vez de se comunicar diretamente com
o VHAL. Na verdade, o SELinux bloqueia isso. Para mais detalhes, consulte a documentação da API Car no
índice de pacotes.
Para clientes nativos, a partir do Android 13, use
libvhalclient
em vez de se conectar diretamente
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 do VHAL e usá-lo para receber 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