표준 기준 좌표계를 기준으로 하면 액정화면이 하늘을 향하게 놓고 보았을 때 기기의 헤드 부분이 나타내는 각도로 방향(동/서/남/북)을 알 수 있잖아요?


이것을 다른 기준 좌표계를 이용해서 기기의 뒷면이 방향을 나타내도록 하기 위해서 remapCoordinateSystem 메서드를 사용하려고 합니다.


그래서 아래와 같이 자기장 센서와 가속도 센서의 값을 얻어오려고 하는데 자기장 센서의 값이 계속 null로 찍히네요..


private final SensorEventListener sensorEventListener = new SensorEventListener(){

public void onSensorChanged(SensorEvent sensorEvent){

if(sensorEvent.sensor.getType() == Sensor.TYPE_ACCELEROMETER){

accelerometerValues = sensorEvent.values;

}

if(sensorEvent.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD){

magneticFieldValues = sensorEvent.values;

}

}

public void onAccuracyChanged(Sensor sensor, int accuracy){}

};



어떠한 문제점이 있을 수 있을까요?


혹시 이것 사용안하고 방향 센서만 사용하면서 기준 좌표계를 변경하는 방법도 있을까요?


그럼 도움 부탁드립니다.



----------------------------------------------------------------------------------

흠...일단 테스트를 위해서 초기값을 0으로 주고 해보았는데요...

방향 센서 사용하는것과, 가속도+자기장 센서 사용하는것... 책에서는 후자가 좋은 방법이라고 하는데요

테스트해보니 방향 센서는 안정적인반면에 가속도+자기장 센서 사용시에는 많이 튀네요...불안정합니다.

노이즈필터링만이 정답인가요?

다른분들은 방향 얻어오는 경우 센서를 어떻게 사용하시나요?