gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 21:06:06 25 4
gpt4 key购买 nike

您好,我正在创建一个应用程序,用户可以在其中竖直握住手机,然后绕 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com