直立时可以使用什么传感器来检测旋转?

时间:2014-07-01 18:13:47

标签: android android-sensors

您好我正在创建一个应用程序,用户将手机竖立,然后围绕y轴旋转(类似于拍摄全景图)。 y axis

我需要检测旋转角度。在iOS中,使用陀螺仪传感器相当简单,但我没有找到与Android相同的运气。如果有人能指出我的方向是正确的那么好。

2 个答案:

答案 0 :(得分:2)

假设您的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]; // <----------

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

答案 1 :(得分:0)

可通过SensorManager管理各种传感器。当然,由于每个设备决定是否将特定传感器放在硬件平台上以用于其模型,因此必须检查是否存在。有些人有像iOS这样的陀螺仪,有些可以用加速度计和放大镜传感器代替。

您可以在此处开始:http://developer.android.com/guide/topics/sensors/sensors_overview.html