2015-01-27 3 views
4

나침반을 사용하여 증강 현실 기능을 제공하는 애플리케이션을 개발합니다. 가끔은 나침반을 잘 작동하도록 조정해야한다는 것을 알게되었습니다.Android 컴파스 정확도 - 보정시기

보정이 필요하다고 (프로그래밍 방식으로) 어떻게 알 수 있습니까?

나는 8 패턴 숫자를 사용하여 나침반을 보정하는 방법을 알고 있지만 교정이 필요하다는 것을 감지하고 사용자에게 경고를 표시하려고합니다. ("나침반이 정확하지 않습니다. 나침반 센서를 보정하십시오. ").

가능한가요? 감사합니다.

답변

2

내 솔루션은 SensorEventListener 인터페이스의 메서드에서 AccuracyChanged() 메서드를 사용하는 것입니다.

내가 할 것이 방법입니다

//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

"일반적으로, 당신은 큰 변화를 볼 수 있습니다 작은 회전에 대한 방위각 값입니다. 그래서 내가 걱정할 것입니다. "