Android加速计只检测到两个维度的变化
我正在学习android中的加速计。我得到了新的价值观,当倾斜的手机周围的绿色和蓝色阵列,但不是红色的一个 这实际上是我的问题。下面是我使用的代码:Android加速计只检测到两个维度的变化,android,accelerometer,android-sensors,Android,Accelerometer,Android Sensors,我正在学习android中的加速计。我得到了新的价值观,当倾斜的手机周围的绿色和蓝色阵列,但不是红色的一个 这实际上是我的问题。下面是我使用的代码: private SensorManager sensorManager; ........... sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); sensorManager.registerListener(this,
private SensorManager sensorManager;
...........
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
sensorManager.registerListener(this,
sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_NORMAL);
...........
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
x = event.values[0];
y = event.values[1];
z = event.values[2];
}
}
对于红色的,唯一的变化是向上和向下的加速度。这种加速度主要由重力控制,因此数值只有轻微变化。谢谢。但我认为一定有一种方法可以测量绕轴的旋转。是的,这是俯仰或滚动,取决于手机的方位。如果你认为它是屏幕和世界xy平面之间的角度,那么它就是arcos(event.values[2])。