1

我想使用 AA Emulator 中提供的车辆 API 来使用一些汽车数据。

为此,我使用 createCar 创建新的 Car 对象,该对象同步连接到 Car Service 并准备好使用。

但是,当我使用这部分代码时:

car = Car.createCar(this, null, CAR_WAIT_TIMEOUT_WAIT_FOREVER) { car:Car, ready: Boolean ->
    if (ready) {
        //Car service is available
        onCarServiceReady()
    }
}

该函数onCarServiceReady()包含访问 CarPropertyManager 的代码。

在“运行”之后,我收到一个错误:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.xxxxxxx.apiagent, PID: 29930
    java.lang.NoSuchMethodError: No static method createCar(Landroid/content/Context;Landroid/os/Handler;JLandroid/car/Car$CarServiceLifecycleListener;)Landroid/car/Car; in class Landroid/car/Car; or its super classes (declaration of 'android.car.Car' appears in /system/framework/android.car.jar)

我设法使用不推荐使用的方法使其工作:

car = Car.createCar(this, object : ServiceConnection {
    override fun onServiceConnected(componentName: ComponentName, iBinder: IBinder) {
        onCarServiceReady()
    }
    override fun onServiceDisconnected(componentName: ComponentName) {
        // on failure callback
    }
})

由于这种方式已被弃用,我很乐意使用显示错误的代码使其工作......

我应该改变什么才能使它起作用,为什么实际上第一个解决方案不起作用?

提前致谢!

4

0 回答 0