본문 바로가기

정보기술, IT/IT source

android sensor 정의

- 안드로이드 센서 타입 -

안드로이드의 센서를 이용하여 여러 어플로 응용을 할 수가 있다.

그 센서의 종류만 보더라도 만들고자 하는 용도에 따라 알맞게 사용할 필요가 있는데

오늘은 그 종류와 사용예제를 살펴보도록 하겠다.


1. TYPE_ACCELEROMETER 가속계
2. TYPE_ALL 모든 센서
3. TYPE_AMBIENT_TEMPERATURE 주위 온도 선서
4. TYPE_GRAVITY 중력
5. TYPE_GYROSCOPE 자이로스코프, 방향의 측정, 유지에 사용
6. TYPE_LIGHT 조도, 화면 밝기
7. TYPE_LINEAR_ACCELERATION 리니어 가속기
8. TYPE_MAGNETIC_FIELD 자기장
9. TYPE_ORIENTATION 회전 방향
10. TYPE_PRESSURE 압력 감지
11. TYPE_PROXIMITY 근접 거리계, 통화중 액정 끌때
12. TYPE_RELATIVE_HUMIDITY 습도
13. TYPE_ROTATION_VECTOR 로테이션 벡터
14. TYPE_TEMPERATURE 온도


1. 센서 관리자 : 시스템 서비스이므로 생성할 필요는 없고, 호출하면 된다.


SensorManager mSM = (SensorManager)getSystemService(Context.SENSOR_SERVICE);



2. 센서 객체 생성 : 기본 센서를 가져온다. getDefaultSensor(Sensor.원하는센서)


myProximity = mSM.getDefaultSensor(Sensor.TYPE_ACCELATOR);



3. 센서 리스너 작성 : onSensorChanged 부분에 원하는 작업을 써넣으면 된다. 

event매개변수에서 이벤트를 일으킨 센서, 그 센서의 값 둘다 받아낼 수 있다.


public SensorEventListener mySL = new SensorEventListener(){


@Override

public void onSensorChanged(SensorEvent event){

mTxt.setText(Float.toString(event.values[0]));

Log.i("TAG", Float.toString(event.values[0]));

}

};



4. 센서 리스너 등록 및 센서값 받기 : 센서 매니저를 이용해 리스너에 등록한다. 

 센서 매니저.registerListener(센서리스터 클래스, 센서 객체, 리스너의 반응속도);

반응 속도는 빠른 순서데로 보면

DELAY_ FASTEST > GAME > UI > NORMAL 순이다. 

NOMAL로 설정해도 빠른 속도로 값을 찍어내므로 빠른 설정을 굳이 할 필요는 없다.

mSM.registerListener(mySensorListener, myProximity, SensorManager.SENSOR_DELAY_NORMAL);


5. 센서 리스너 등록 해제 : 로그켓을 이용해 로그를 찍어보면 알 수 있다. 빠른 속도로 값을 찍으므로 부하를 많이 발생시키고 배터리 소모도 그만큼 커진다.

따라서 등록 해제를 절대 잊으면 안된다.

@Override

protected void onPause(){
super.onPause();

mSM.unregisterListener(mySensorListener);
}


예제를 살펴보자.