安卓指南针精度 - 何时校准?

9
我开发了一个应用程序,它使用指南针提供一些增强现实功能。我发现有时需要校准我的指南针才能使其正常工作。
程序上如何知道需要进行校准?
我的意思是我知道如何使用8字形来校准指南针,但我想检测是否需要校准并向用户显示一些警报("您的指南针不够精确,请校准您的指南针传感器")。
请问这种可能吗?谢谢!
1个回答

7
我的解决方案是使用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://dev59.com/r2sz5IYBdhLWcg3weHqU#7877688

"通常,如果设备未经校准,则在小幅旋转时会看到方位角值的巨大变化。这就是我担心的事情。"


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接