在Android中,我可以通过编程方式检测指南针尚未校准吗?

时间:2011-08-17 21:14:23

标签: android compass-geolocation

我发现当我启动游戏时,指南针经常出现问题。物体将飞来飞去,而不是它们应该在的地方。但是,如果我将手机移动到八字形中(或者只是随机向一定方向挥动),所有东西都可能在半分钟内到达。

硬件是否知道指南针未校准的时间?我是否有可能检测到这一点并弹出一条消息告诉用户“你的机器人指南针需要校准。请以水平的八字形移动手机,直到此消息消失。”

1 个答案:

答案 0 :(得分:24)

SensorEventListener中有一个函数onAccuracyChanged(Sensor sensor, int accuracy),您可以在其中检查设备磁力计的精度。有4个级别的准确度(来自班级SensorManager):

SENSOR_STATUS_ACCURACY_HIGH = 3
SENSOR_STATUS_ACCURACY_MEDIUM = 2
SENSOR_STATUS_ACCURACY_LOW = 1
SENSOR_STATUS_UNRELIABLE = 0