我在代码方面的任务是(使)以下内容:
首先,我实例化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值相同?我确实花了很多时间来寻找解决方案,但是我还没有找到解释。
有人可以帮我解释什么地方出问题了吗?
非常感谢德国的问候。托比