Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android罗盘精度-何时校准?_Android_Augmented Reality_Compass - Fatal编程技术网

Android罗盘精度-何时校准?

Android罗盘精度-何时校准?,android,augmented-reality,compass,Android,Augmented Reality,Compass,我开发了一个应用程序,它使用compass提供了一些增强现实功能。我发现有时我需要校准我的指南针,使它工作良好 我如何(通过编程)知道需要校准? 我的意思是,我知道如何使用8型图形校准指南针,但我想检测是否需要校准,并向用户显示一些警报(“您的指南针不够准确,请校准指南针传感器”) 请问这可能吗? 谢谢 我的解决方案是使用SensorEventListener接口的onAccuracyChanged()方法 我会这样做: //In SensorEventListener interface im

我开发了一个应用程序,它使用compass提供了一些增强现实功能。我发现有时我需要校准我的指南针,使它工作良好

我如何(通过编程)知道需要校准?

我的意思是,我知道如何使用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;
        }
    }
您还应在此处查看此答案:

“通常情况下,如果设备未经校准,您将看到小旋转时方位角值的巨大变化。这正是我所担心的。”