我正在寻找适用于Android的指南针示例。我需要做的就是获得正确的方位(纵向&横向模式)。Android指南针示例
我已经找到几个样品,有些只使用Sensor.TYPE_ORIENTATION
,有些使用的组合为Sensor.TYPE_ACCELEROMETER
& Sensor.TYPE_MAGNETIC_FIELD
。
这是获得我们说的Android 1.6轴承正确&常用的方法 - 4.0吗?
我正在寻找适用于Android的指南针示例。我需要做的就是获得正确的方位(纵向&横向模式)。Android指南针示例
我已经找到几个样品,有些只使用Sensor.TYPE_ORIENTATION
,有些使用的组合为Sensor.TYPE_ACCELEROMETER
& Sensor.TYPE_MAGNETIC_FIELD
。
这是获得我们说的Android 1.6轴承正确&常用的方法 - 4.0吗?
Sensor.TYPE_ORIENTATION
已被弃用。
文档说,你应该使用SensorManager.getOrientation()
代替。
所以,你应该从Sensor.TYPE_ACCELEROMETER
以及来自Sensor.TYPE_MAGNETIC_FIELD
读,然后调用SensorManager.getRotationMatrix()
最后SensorManager.getOrientation()
将返回你的电话的朝向。
从那里,如果你看到这个图是微不足道拿到手机的方向。这可能是你的第二个例子,但我不知道,因为你没有告诉我它是什么。
使用Sensor.TYPE_ACCELEROMETER
和Sensor.TYPE_MAGNETIC_FIELD
和SensorManager.getOrientation()
方法的组合不会给出精确的值。已弃用的方法Sensor.TYPE_ORIENTATION
运行良好。 :)
感谢Dan他的示例代码。
但只是一个小修正:根据本discussion变化event.values
到event.values.clone()
。
经过此修改后,它适用于我。
对不起,我忘了附上的例子:http://www.codingforandroid.com/2011/01/using-orientation-sensors-simple.html所以这是一个正确的方法是什么? – nr1 2012-01-04 21:31:54
是的,那个链接中的东西看起来是正确的 – Dan 2012-01-04 21:39:47
显然你如何使用数据取决于你,'onSensorChanged'是有趣的数学。 – Dan 2012-01-04 21:40:30