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

标签 android android-sensors

您好,我正在创建一个应用程序,用户可以在其中竖直握住手机,然后绕 y 轴旋转它(类似于拍摄全景图)。 y axis
(来源: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]; // <----------

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

关于android - 什么传感器可以用来检测直立时的旋转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24516794/

相关文章:

android - 如何在 Android 中创建 JSON

java - 无法使用registerlistener来使用Step_counter - Android

android - 如何/我应该实现卡尔曼滤波器以获得准确的加速度计数据?

Android 传感器 - 其中哪些获得直接输入?

android - 车内磁场特斯拉值下降约20微特斯拉

安卓:EditText设计

安卓 MapView v2 黑屏

android - 更改 RecyclerView 网格布局中的列数

android - 如何为视障人士编写 Android 代码?

android - 我应该使用哪个 Android 传感器来获取地平线的磁方向和倾斜度?