본문 바로가기
개발/안드로이드

[안드로이드]Android Sensor - Orientation

by darksilber 2011. 7. 19.
반응형
출처 - http://h2110.tistory.com/6
안드로이드 센서에는 가속도센서, 방향센서, 자이로스코프,

압력센서, 자기센서, 조도센서, 근접센서, 온도센서가 있는데,

그중에서 방향 센서 입니다.


values[0]는 z축을 기준으로 한 회전값을 가지는데, 범위는 0 ~ 359의 범위를 가집니다.

values[0]의 값은 y축이 가르키는 방향이

북쪽일 경우 values[0]의 값은 0, 동쪽일 경우 90, 남쪽일 경우 180, 서쪽일 경우 270을 타나냅니다.


values[1]는 x축을 기준으로한 기울기 값을 나타내는데, 범위는 -180 ~ 180의 범위를 가집니다.

valuse[1]은 x축을 기준으로 구르는 걸 나타냅는데, 위로 구르면 +, 아래로 구르면 - 값 입니다.


values[2]는 y축을 기준으로한 기울기 값을 나타내는데, 범위는 -90 ~ 90의 범위를 가집니다.

values[2]는 y축을 기준으로 구르는 걸 나타내는데, 왼쪽으로 구르면 +, 오른쪽으로 구르면 -입니다.

안드로이드 폰에서의 방향 센서 이용 방법입니다.
SensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);//가속센서   
Accelerationx_axis = (TextView)findViewById(R.id.x_axis);   
y_axis = (TextView)findViewById(R.id.y_axis);   
z_axis = (TextView)findViewById(R.id.z_axis);   
  
@Override   
public void onSensorChanged(SensorEvent event) {   
    synchronized(this){   
        switch(event.sensor.getType()){   
            case Sensor.TYPE_ORIENTATION:   
                x_axis.setText(""+Float.toString(event.values[0]));   
                y_axis.setText(""+Float.toString(event.values[1]));   
                z_axis.setText(""+Float.toString(event.values[2]));   
                break;   
            }   
                }   
    @Override   
protected void onStop() {   
    super.onStop();   
    SensorManager.unregisterListener(this, SensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION));   
}   
@Override   
protected void onResume() {   
    super.onResume();   
    SensorManager.registerListener(this, SensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),SensorManager.SENSOR_DELAY_GAME);   
}  

반응형

댓글