应使用哪个传感器来确定设备是否已使用Android Sensor向上或向下倾斜

时间:2014-06-28 19:16:53

标签: android android-sensors

应使用哪个传感器来确定设备是否已使用Android Sensor向上或向下倾斜?

使用以下代码:

SensorManager.getRotationMatrix(mRotationMatrix, null, mValuesAccel,mValuesMagnet);
SensorManager.remapCoordinateSystem(mRotationMatrix,
SensorManager.AXIS_Y, SensorManager.AXIS_MINUS_X, R2);
SensorManager.getOrientation(R2, mValuesOrientation);

我得到三个方向值(方位角,俯仰,滚动) 如何使用三个方向值来确定设备是否已向上或向下倾斜。

2 个答案:

答案 0 :(得分:9)

要获得设备倾斜以及其他攻击角度,您需要为TYPE_ACCELEROMETER和TYPE_MAGNETIC_FIELD事件注册一个侦听器:

mngr = (SensorManager)getSystemService(Context.SENSOR_SERVICE);

accelerometer = mngr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
magneticField = mngr.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);

int rate = SensorManager.SENSOR_DELAY_GAME; // or other
mngr.registerListener(sensorListener, accelerometer, rate);
mngr.registerListener(sensorListener, magneticField, rate);

激活侦听器后,您需要调用

  SensorManager.getOrientation()

获得方位角(z),节距(x)和&的当前值。辊(Y)。

Orientation angles

您可以在此处找到详细的代码示例:http://www.codingforandroid.com/2011/01/using-orientation-sensors-simple.html

答案 1 :(得分:1)

我认为加速计传感器用于确定设备是向上倾斜还是向下倾斜......