Android AVD加速度计值不正确/有效

时间:2018-12-12 13:26:20

标签: android wear-os accelerometer android-sensors

我在使用硬件加速计和使用Android Studio的内部AVD模拟器的Android设备(WearOS)时遇到问题。

我在代码方面的任务是(使)以下内容:

首先,我实例化sensormanager并获取所需的加速度传感器:

this.sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
this.sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

然后,我将设置一个侦听器以等待传感器值更改:

this.sensorManager.registerListener(this, this.sensor, 50000);

(其中50000表示我们到数据值之间的(最长)时间,但实际上数据来得更快,但这只是顺便说一下)

在更改数据的方法中,我使用以下代码行获取加速度传感器的值:

if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
        float[] values = event.values;
        // contains the x value: values[0]
        // contains the y value: values[1]
        // contains the z value: values[2]
    }

但是,如果我启动AVD并模拟如图所示的加速数据:

Virtual Sensor Emulation values 代码中我的传感器数据事件产生的(测量)传感器值如下:

x值:2.02553和 y值: 9.57736和 z值: 9.57736我认为,x和y方向的值是好的,因为它们与仿真器的生成值相同(请参见上图)。但是问题是,我不明白为什么z值与y值相同?我确实花了很多时间来寻找解决方案,但是我还没有找到解释。

有人可以帮我解释什么地方出问题了吗?

非常感谢德国的问候。托比

0 个答案:

没有答案