如何获取指南针方向

6
我希望在屏幕上显示手机面对的方向。例如:
   0
   |- []
   |_
  South --- North

在上面的图中,手机将显示“北”。由于用户(头部为0的棍子)拿着指向北方的手机(图中的[])。
我找到了这个例子。我理解它正在做什么,除了它似乎计算偏航、俯仰、翻滚和倾斜角度。它们是什么,我如何使用它们来简单地找出手机指向哪里?
此外,android文档提到X、Y和Z轴,但我没有看到任何说明这些轴如何对应手机?Z轴是从手机底部到顶部吗?

1
http://en.wikipedia.org/wiki/Yaw_angle - Falmarri
我还注意到GeomagneticField类有getX和getY方法?我可以使用它们吗?虽然它没有任何类型的sensorChanged警报。我是否需要自己创建循环来轮询它? - Greg
这篇文章可能对你有用。在屏幕上显示方向时,你需要小心做出关于屏幕方向的假设。http://android-developers.blogspot.com/2010/09/one-screen-turn-deserves-another.html - Cheryl Simon
1个回答

5
这是关于IT技术的翻译内容,请参考:

这里展示了轴的外观。

我找不到我使用的备忘单链接,但它看起来有点像这里

总的来说,你需要注册监听Sensor.TYPE_ORIENTATION,并从传入的value数组中获取value [0],这将显示你的角度(我认为是从北面开始)。

这里是一些*android.com提供的示例


谢谢。如果手机处于横屏模式下会发生什么? - Greg
根据这篇文章,http://www.google.com/support/forum/p/android/thread?tid=11b73cc231c318af&hl=en 它基本上是一个硬件指南针,因此在横屏模式下应该正常工作。 - bgs
2
我想指出 Sensor.TYPE_ORIENTATION 已被废弃,建议使用 SensorManager.getOrientation() - AlbeyAmakiir

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接