我正在寻找一个Android指南针示例。我只需要获得正确的方位角(在竖屏和横屏模式下)。
我已经找到了几个示例,一些示例仅使用 Sensor.TYPE_ORIENTATION
,一些示例则结合使用 Sensor.TYPE_ACCELEROMETER
和 Sensor.TYPE_MAGNETIC_FIELD
。
哪种是获取方位角的正确和常用方法,比如Android 1.6-4.0?
我正在寻找一个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
运作得很好。:)