我开发了一个应用程序,它使用罗盘提供一些增强现实功能.我发现有时候我需要校准指南针以使其工作正常.
我如何知道(以编程方式)需要校准?
我的意思是我知道如何使用8模式图校准罗盘,但我想检测需要校准并向用户显示一些警报(“你的罗盘不够准确,请校准你的罗盘传感器.”).
请问这可能吗?
谢谢!
最佳答案 我的解决方案是使用SensorEventListener接口的onAccuracyChanged()方法.
我就是这样做的:
//In SensorEventListener interface implementation
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
switch(sensor.getType()){
case Sensor.TYPE_MAGNETIC_FIELD :
switch(accuracy) {
case SensorManager.SENSOR_STATUS_ACCURACY_LOW :
doSomething();
break;
case SensorManager.SENSOR_STATUS_ACCURACY_MEDIUM :
doSomethingElse();
break;
case SensorManager.SENSOR_STATUS_ACCURACY_HIGH :
doNothing();
break;
}
break;
default:
break;
}
}
你也应该在这里看看这个答案:https://stackoverflow.com/a/7877688/7501326
“通常情况下,如果没有校准设备,你会发现小旋转方位值的变化很大.这就是我担心的问题.”