Android指南针示例



我正在为Android搜索指南针示例。我所需要做的就是获得正确的方位(在纵向和横向模式下)。

我已经找到了几个样本,有些只使用Sensor.TYPE_ORIENTATION,有些使用Sensor.TYPE_ACCELEROMETER&Sensor.TYPE_MAGNETIC_FIELD

哪个是正确的&获得轴承的常见方法,比如说Android 1.6-4.0?

Sensor.TYPE_ORIENTATION已弃用。

文档中说您应该使用SensorManager.getOrientation()

因此,您应该阅读Sensor.TYPE_ACCELEROMETERSensor.TYPE_MAGNETIC_FIELD,然后致电SensorManager.getRotationMatrix(),最后致电SensorManager.getOrientation(),这将返回手机的方向。

从那里,如果你看到这张图,那么了解手机的方向就很简单了。这可能是您的第二个示例所做的,但我不知道,因为您没有向我展示它是什么。

感谢Dan的示例代码。

但只有一个小的修正:根据这个讨论将event.values更改为event.values.clone()
经过这次修改,它现在对我有效。

使用Sensor.TYPE_ACCELEROMETERSensor.TYPE_MAGNETIC_FIELD以及SensorManager.getOrientation()的组合方法并不能给出精确的值。不推荐使用的方法Sensor.TYPE_ORIENTATION运行良好。:)

最新更新