嗨,我正在创建一个应用程序,用户在其中将手机竖立,然后围绕y轴旋转(类似于拍摄全景图)。 android - 竖立时可以使用什么传感器检测旋转?-LMLPHP
(来源:apple.com

我需要检测旋转角度。在iOS中,使用陀螺仪传感器非常简单,但是我在Android上找不到同样的运气。如果有人能指出我正确的方向,那就太好了。

最佳答案

假设您的Y轴指向地球中心,那么您所寻找的值称为方位角。

要监视其更改,您将需要为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);


在监听器中,调用:

  float[] values = new float[3];
  SensorManager.getOrientation(R, values);
  float current_azimuth_val = values[0]; // <----------


注意质量。和延迟,如果您要获取的数据高度依赖于硬件。

07-25 23:26
查看更多