안드로이드 기울기 센서 예제

Android는 장치 동작, 방향 및 회전, 압력, 온도, 빛, 자기장, 근접 및 습도와 같은 특정 속성의 측정을 제공하는 센서를 지원합니다. 안드로이드 센서 프레임 워크를 사용하여, 당신은 당신의 안드로이드 응용 프로그램에서 센서와 원시 데이터를 사용하는 기능을 구현할 수 있습니다. 그림 1. 센서 API에서 사용하는 좌표계(장치 별)입니다. 대부분의 Android 기반 장치에는 동작, 방향 및 다양한 환경 조건을 측정하는 센서가 내장되어 있습니다. 이러한 센서는 원시 데이터를 높은 정밀도와 정확도로 제공할 수 있으며 3차원 장치 이동 또는 위치를 모니터링하거나 장치 근처의 주변 환경의 변화를 모니터링하려는 경우에 유용합니다. 예를 들어 게임은 장치의 중력 센서에서 판독값을 추적하여 기울기, 흔들림, 회전 또는 스윙과 같은 복잡한 사용자 제스처와 모션을 추론할 수 있습니다. 마찬가지로 날씨 응용 프로그램은 장치의 온도 센서 및 습도 센서를 사용하여 이슬점을 계산하고 보고하거나 이동 응용 프로그램에서 지자기장 센서와 가속도계를 사용하여 나침반 베어링을 보고할 수 있습니다. 이 응용 프로그램에서, 우리는 센서의 정확도 지표가 필요하지 않습니다.

그래서 메서드의 구현을 비워 둡니다. 그냥 참고로, 이 메서드를 사용하는 유효한 방법은 새로운 정확도 값(예: 활동 필드)을 저장하고 onSensorChanged() 콜백에서 체크 인하는 것입니다. 이 기능은 센서 표시기(정확도가 높거나 낮은 경우에만)에 응답해야 하는 경우에 특히 유용할 수 있습니다. 원시 센서 데이터를 모니터링하려면 SensorEventListener 인터페이스를 통해 노출되는 두 가지 콜백 메서드인 onAccuracyChanged() 및 onSensorChanged()를 구현해야 합니다. Android 시스템은 다음과 같은 경우 이러한 메서드를 호출합니다. 장치에 지정된 유형의 센서가 두 개 이상 있는 경우 센서 중 하나를 기본 센서로 지정해야 합니다. 지정된 유형의 센서에 대해 기본 센서가 없는 경우 메서드 호출이 null을 반환하므로 장치에 해당 유형의 센서가 없습니다. 예를 들어 다음 코드는 장치에 자력계가 있는지 여부를 확인합니다: Android는 장치에 대한 표준 센서 구성을 지정하지 않으므로 장치 제조업체는 원하는 센서 구성을 장치에 통합할 수 있습니다.

안드로이드 기반 장치. 그 결과, 장치는 다양한 구성의 다양한 센서를 포함할 수 있습니다. 응용 프로그램이 특정 유형의 센서에 의존하는 경우 앱이 성공적으로 실행될 수 있도록 센서가 장치에 있는지 확인해야 합니다. 에뮬레이터는 SdkControllerSensor 응용 프로그램을 실행하는 안드로이드 장치와의 연결을 사용합니다. 장치가 Android 4.0을 실행하는 경우 개정 2가 설치되어 있어야 합니다.) SdkControllerSensor 앱은 장치의 센서 의 변화를 모니터링하고 에뮬레이터로 전송합니다. 그런 다음 에뮬레이터는 장치의 센서에서 받는 새 값에 따라 변환됩니다. 그런 다음 참조를 저장합니다. 이것은 또한 다른 모든 센서와 관련이 있습니다. 좋은 점은 getDefaultSensor()가 null을 반환하면 블록이 실행되지 않기 때문에 null이 될 수 없다는 것입니다. 센서가 새 값을 보고합니다. 이 경우 시스템은 onSensorChanged() 메서드를 호출하여 SensorEvent 개체를 제공합니다. SensorEvent 개체에는 센서 유형과 SensorManager에서 상수로 정의된 지연을 매개 변수로 사용하는 sensorManager.getDefaultSensor() 메서드를 통해 센서에 액세스할 수 있습니다.

만약 (event.sensor.getType() == = 센서.TYPE_ACCELEROMETER) { mGravity = event.value; } 다른 경우 (event.sensor.getType() == 센서.TYPE_MAGNETIC_FIELD) { mGeomagnetic = 이벤트.값; 만약 (isTiltdownward()) { setContentView(R.layout.green); } isTiltupward()) { setContentView(R.layout.red); } } 근접 센서 이벤트를 들으려면, 당신의 활동은 센서 이벤트 리스터를 구현한 다음 센서 관리자가 Sensor.TYPE_PROXIMITY 상수를 전달하는 sensorManager에서 getDefaultSensor 메서드를 호출하는 근접 센서 개체를 얻어야 합니다.