我正在寻找Android的指南针示例。我需要做的就是获得正确的方位(纵向和横向模式)。
我已经找到了几个样本,有些只使用Sensor.TYPE_ORIENTATION
,有些使用了Sensor.TYPE_ACCELEROMETER
& Sensor.TYPE_MAGNETIC_FIELD
。
哪个是正确的&让我们说Android 1.6 - 4.0的常用方法是什么?
答案 0 :(得分:19)
Sensor.TYPE_ORIENTATION
已弃用。
文档说明您应该使用SensorManager.getOrientation()
。
因此,您应该从Sensor.TYPE_ACCELEROMETER
以及Sensor.TYPE_MAGNETIC_FIELD
阅读,然后致电SensorManager.getRotationMatrix()
,最后致电SensorManager.getOrientation()
,这将返回您手机的方向。
如果您看到此图表,那么获取手机的方向是微不足道的。这可能是你的第二个例子,但我不知道,因为你没有告诉我它是什么。
答案 1 :(得分:5)
感谢Dan 提供示例代码。
但是只有小修正:根据此discussion将event.values
更改为event.values.clone()
。在此之后它现在适用于我修改
答案 2 :(得分:0)
使用Sensor.TYPE_ACCELEROMETER
和Sensor.TYPE_MAGNETIC_FIELD
以及SensorManager.getOrientation()
方法的组合并不能为我提供准确的值。已弃用的方法Sensor.TYPE_ORIENTATION
效果很好。 :)