2014-06-28 45 views
2

應使用哪種傳感器來確定使用Android傳感器設備是傾斜向上還是向下傾斜? enter code here使用Android傳感器時,應使用哪種傳感器來確定設備是否已傾斜向上或向下傾斜

通過使用以下代碼:

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

我米獲得三個方向值(方位角,俯仰,滾動) 我怎樣才能使用三個方向的值來確定是否裝置已經被向上或向下傾斜。

回答

1

我認爲加速度傳感器來確定設備是否已經被向上或向下傾斜...

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)& roll(y)。

Orientation angles

您可以在這裏找到一個詳細的代碼示例:http://www.codingforandroid.com/2011/01/using-orientation-sensors-simple.html

相關問題