2

您好 :) 我正在开发一个应用程序,该应用程序使用指南针和位置在某个位置的方向上绘制箭头。我的问题是当我在模拟器上运行我的代码时,所有箭头都指向正确的方向,当我将模拟器的方向更改为横向时,所有箭头仍然正确。但是当我在我的 Nexus One 上运行相同的应用程序时,当手机垂直时箭头都是正确的,但是当它变成横向时,所有箭头都关闭了 90 度。它保持手机的“顶部”作为北方的参考。因此,您必须根据手机的方向校正指南针。这是否发生在所有真实手机上,而模拟器是不同的?或者这只是 Nexus One?谢谢 :)

4

1 回答 1

0

根据我对指南针当前工作方式的理解,它应该始终使用手机的“顶部”或“默认方向”来进行正确读数。这在早期版本的 android 上可能有所不同。据说然后由开发人员来补偿屏幕方向以通过方向变化来表示真正的北方。加速度计也是如此,轴保持基于默认屏幕方向(因此对于大多数手机纵向,但平板电脑大多数将是横向)。我不想让你参考 sdk,但这个链接第一段解释:http: //developer.android.com/reference/android/hardware/SensorEvent.html

于 2011-06-07T16:05:08.770 回答