본문 바로가기

Development/Android

Sensor - Accelerometer

이번 포스트는 안드로이드 기능중에 센서에 대한 내용을 포스팅하려 합니다.

그 중에서도 Accelerometer를 사용하는 예제와 방법 및 전달 되는 값을 설명해보겠습니다. 가속센서(Accelerometer Sensor)는 단말기에서 x,y,z 축 기준으로 값을 받아 올 수 있습니다.

< 참고 이미지 : Android Developers Reference SensorEvent 내용 중 일부> 
 ※ 참고로 단말기에 따라 가속센서의 전달 값이 틀릴 수 있기 때문에 사용시에 값을 테스트하는 것이 좋습니다.

가속센서를 사용하기 위해 필요한 클래스는 다음의 두 가지 클래스와 한가지의 인터페이스를 통해 사용이 가능합니다.

- Class
 android.hardware.Sensor
  :: 센서의 종류를 설정하여 사용하는 클래스이며, SensorManager를 통해 사용센서의 종류를 설정할 수 있습니다.
 android.hardware.SensorManager
  :: 단말기로부터 Sensor Services를 받아올 수 있고, SensorEventListener를 통해 Event를 등록하여 사용할 수 있습니다.

- Interface
 android.hardware.SensorEventListener
  :: SensorManager 객체를 통해 Event를 등록하게 되면 실제 받아오는 객체를 생성할 수 있는 Interface 입니다.

 단말기로 부터 가속센서 서비스를 할당 받고 그 받아오는 객체를 통해 Event를 등록하는 예제는 다음과 같습니다.



위의 예제에서 Listener를 따로 클래스로 구현하였는데 그 소스는 다음과 같습니다.



위의 소스를 통해 만든 가속센서를 통한 공의 움짐임 샘플 예제 입니다.

SensorActivity.java

accListener.java

BallView.java

 바꾸어야 하는 부분이나 잘못 된 부분이 있다면 댓글부탁드립니다.^^

참고 자료

- ArsViator 님의 블로그 :: 안드로이드 센서 사용하기

- Android Developers Reference :: Sensor

- Android Developers Reference :: SensorEvent

- Android Developers Reference :: SensorManager

- 안드로이드펍 :: 안드로이드 가속도 센서 좌표계 및 갑 정리(작성자 회색님)