投稿
안드로이드 가속도센서 예제
2019年8月2日
대부분의 Android 기반 장치에는 동작, 방향 및 다양한 환경 조건을 측정하는 센서가 내장되어 있습니다. 이러한 센서는 원시 데이터를 높은 정밀도와 정확도로 제공할 수 있으며 3차원 장치 이동 또는 위치를 모니터링하거나 장치 근처의 주변 환경의 변화를 모니터링하려는 경우에 유용합니다. 예를 들어 게임은 장치의 중력 센서에서 판독값을 추적하여 기울기, 흔들림, 회전 또는 스윙과 같은 복잡한 사용자 제스처와 모션을 추론할 수 있습니다. 마찬가지로 날씨 응용 프로그램은 장치의 온도 센서 및 습도 센서를 사용하여 이슬점을 계산하고 보고하거나 이동 응용 프로그램에서 지자기장 센서와 가속도계를 사용하여 나침반 베어링을 보고할 수 있습니다. 이 경우 시스템은 onAccuracyChanged() 메서드를 호출하여 변경된 Sensor 개체와 센서의 새로운 정확도에 대한 참조를 제공합니다. 정확도는 SENSOR_STATUS_ACCURACY_LOW, SENSOR_STATUS_accuracy_MEDIUM, SENSOR_STATUS_accuracy_HIGH 또는 SENSOR_STATUS_UN의 네 가지 상태 상수 중 하나로 표시됩니다. 또 다른 유용한 방법은 센서가 데이터를 감지하는 데 사용할 수 있는 최소 시간 간격(마이크로초)을 반환하는 getMinDelay() 메서드입니다. getMinDelay() 메서드에 대해 0이 아닌 값을 반환하는 모든 센서는 스트리밍 센서입니다. 스트리밍 센서는 일정한 간격으로 데이터를 감지하고 Android 2.3(API 수준 9)에 도입되었습니다.
getMinDelay() 메서드를 호출할 때 센서가 0을 반환하면 센서가 감지되는 매개 변수가 변경될 때만 데이터를 보고하기 때문에 센서가 스트리밍 센서가 아님을 의미합니다. 모션 센서는 기울기, 흔들림, 회전 또는 스윙과 같은 장치 움직임을 모니터링하는 데 유용합니다. 이동은 일반적으로 직접 사용자 입력(예: 사용자가 게임에서 자동차를 조종하거나 게임에서 공을 제어하는 사용자)을 반영하지만 장치가 앉아 있는 물리적 환경(예: 당신이 당신의 차를 운전하는 동안 당신과 함께 이동). 첫 번째 경우 장치의 참조 프레임 또는 응용 프로그램의 참조 프레임을 기준으로 모션을 모니터링하고 있습니다. 두 번째 경우는 세계의 참조 프레임을 기준으로 모션을 모니터링하고 있습니다. 모션 센서 자체는 일반적으로 장치 위치를 모니터링하는 데 사용되지 않지만 지자기장 센서와 같은 다른 센서와 함께 사용하여 세계의 기준 프레임에 대한 장치의 위치를 결정할 수 있습니다(자세한 내용은 위치 센서 참조 정보)를 참조하십시오. Android 플랫폼은 장치의 움직임을 모니터링할 수 있는 여러 센서를 제공합니다. 이러한 센서 중 두 개는 항상 하드웨어 기반(가속도계 및 자이로스코프)이며, 이러한 센서 중 3개는 하드웨어 기반 또는 소프트웨어 기반(중력, 선형 가속도 및 회전 벡터 센서)일 수 있습니다.