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/

相关文章:

java - Android-传感器或监听器为空

java - 使用Regex过滤Java中的单词

c# - 摄像机移动时,场景中除了玩家之外的所有东西看起来都很模糊 | Unity2D

android - ImageView 中图像的透明部分变黑

java - Java Android传感器Co2

java - 在Android应用程序中实现低通滤波器-如何确定alpha值?

android - 如何检测手机相对于移动方向的方向

java - 第一个列表已排序,另一个列表现在未排序,这是合并两个列表的更好方法

android - 无法解析项目 : CordovaLib

android - Android 中采样传感器的服务或异步任务?