应使用哪个传感器来确定设备是否已使用Android Sensor向上或向下倾斜?
使用以下代码:
SensorManager.getRotationMatrix(mRotationMatrix, null, mValuesAccel,mValuesMagnet);
SensorManager.remapCoordinateSystem(mRotationMatrix,
SensorManager.AXIS_Y, SensorManager.AXIS_MINUS_X, R2);
SensorManager.getOrientation(R2, mValuesOrientation);
我得到三个方向值(方位角,俯仰,滚动) 如何使用三个方向值来确定设备是否已向上或向下倾斜。
答案 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)。
您可以在此处找到详细的代码示例:http://www.codingforandroid.com/2011/01/using-orientation-sensors-simple.html
答案 1 :(得分:1)
我认为加速计传感器用于确定设备是向上倾斜还是向下倾斜......