Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用安卓传感器时,应该使用哪个传感器来确定设备是向上倾斜还是向下倾斜_Android_Android Sensors - Fatal编程技术网

Android 使用安卓传感器时,应该使用哪个传感器来确定设备是向上倾斜还是向下倾斜

Android 使用安卓传感器时,应该使用哪个传感器来确定设备是向上倾斜还是向下倾斜,android,android-sensors,Android,Android Sensors,使用安卓传感器时,应该使用哪个传感器来确定设备是否向上或向下倾斜 通过使用以下代码: SensorManager.getRotationMatrix(mRotationMatrix, null, mValuesAccel,mValuesMagnet); SensorManager.remapCoordinateSystem(mRotationMatrix, SensorManager.AXIS_Y, SensorManager.AXIS_MINUS_X, R2); SensorManager.g

使用安卓传感器时,应该使用哪个传感器来确定设备是否向上或向下倾斜

通过使用以下代码:

SensorManager.getRotationMatrix(mRotationMatrix, null, mValuesAccel,mValuesMagnet);
SensorManager.remapCoordinateSystem(mRotationMatrix,
SensorManager.AXIS_Y, SensorManager.AXIS_MINUS_X, R2);
SensorManager.getOrientation(R2, mValuesOrientation);
我得到了三个方向值(方位角、俯仰角、横滚角)
如何使用三个方向值来确定设备是否向上或向下倾斜。

我认为加速度传感器用于确定设备是否向上或向下倾斜

要获得设备倾斜以及其他攻角,您需要注册一个监听器,用于类型\加速计和类型\磁场事件:

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)的当前值

您可以在此处找到详细的代码示例: