- 안드로이드 센서 타입 -
안드로이드의 센서를 이용하여 여러 어플로 응용을 할 수가 있다.
그 센서의 종류만 보더라도 만들고자 하는 용도에 따라 알맞게 사용할 필요가 있는데
오늘은 그 종류와 사용예제를 살펴보도록 하겠다.
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
예제를 살펴보자.
'정보기술, IT > IT source' 카테고리의 다른 글
executeQuery()와 executeUpdate() 차이점 (0) | 2013.04.15 |
---|---|
eclipse에서 서버프로젝트 복사하는 방법. (0) | 2013.04.15 |
스키마 (0) | 2013.04.09 |
Oracle 설치와 기본 개념정리 (0) | 2013.04.08 |
Java 피라미드 형식 출력하기. (0) | 2013.04.06 |