【问题标题】:How to detect phone tilt?如何检测手机倾斜?
【发布时间】:2012-05-01 12:45:45
【问题描述】:

如何确定手机方向在一个平面上的角度?

现在我通过 SensorManager 实现了:

mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mOrientation = mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);

...

public void onSensorChanged(SensorEvent event) {
    xy_angle = event.values[0]; 
    xz_angle = event.values[1]; 
    zy_angle = event.values[2]; 

在这里我得到不同的角度,但我只需要一个角度,随着手机的旋转而变化,同时沿着蓝线行驶。

如何计算或如何得到这个角度?

How can I use SensorManager.getOrientation for tilt controls like "My Paper Plane"? - 类似的问题在这里,但我不明白作者如何解决他的问题。

【问题讨论】:

  • 如果有请分享解决方案

标签: android rotation tilt


【解决方案1】:

你需要的是SensorManager.getOrientation()。

【讨论】:

    【解决方案2】:

    我看到这篇文章有点老了,所以现在可能已经回答了,但是Sensor.TYPE_ORIENTATION 现在已被SensorManager.getOrientation() 弃用。

    我已经完成了您在此处寻找的内容的完整记录:http://blog.samsandberg.com/2015/05/10/tilt-for-android/

    希望它可以帮助寻找相同东西的人!

    【讨论】:

    • 很抱歉 - 博客充斥着垃圾邮件,所以我将其删除,直到有机会修复它。固定!
    【解决方案3】:

    该问题的作者通过切换参数顺序解决了他的问题:

     if (SensorManager.getRotationMatrix(m_rotationMatrix, null,
                                        m_lastMagFields, m_lastAccels)) {
    

    到:

    if (SensorManager.getRotationMatrix(m_rotationMatrix, null,
                                    m_lastAccels, m_lastMagFields)) {
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-17
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多