안드로이드 근접센서 딜레이 조절이 되나요?
조회수 998회
안드로이드 공부를 하다 잘 안되는 것이 있어서 질문 드립니다.
mSensorManager = (SensorManager)getSystemService( Context.SENSOR_SERVICE );
mSensor = mSensorManager.getDefaultSensor( Sensor.TYPE_PROXIMITY );
mSensorManager.registerListener(this, mSensor,SensorManager.SENSOR_DELAY_FASTEST);
이처럼 근접센서를 사용하려고 선언했습니다.
그리고 registerListener 3번째 인수가 딜레이를 정하는 것이라고 하여 상위 선언을 따라가 찾아보았습니다.
switch (rate) {
case SENSOR_DELAY_FASTEST:
delay = 0;
break;
case SENSOR_DELAY_GAME:
delay = 20000;
break;
case SENSOR_DELAY_UI:
delay = 66667;
break;
case SENSOR_DELAY_NORMAL:
delay = 200000;
break;
default:
delay = rate;
break;
}
이러한 코드를 찾을 수 있었습니다.
default에 의해서 사용자가 delay를 줄 수 있습니다.
그런데 아무리 테스트 해봐도 근접센서는 차이가 없다고 느껴집니다.
저는 3초정도마다 한번씩 받아오고 싶습니다. 쓰레드 말고 저 인자로 해결 방법은 없는건가요?
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
어플리케이션 단에서 센서의 샘플링 주기를 직접 제어 할 수는 없습니다. 드라이버, 커널 단에서야 제어가 가능하지 않을까 싶네요.
해당 매개변수는 시스템에 이 어플리케이션에서 이정도의 샘플링 주기를 필요로 한다 라고 제안하는 정도로 사용 되는 것이라 생각 됩니다.
이러한 맥락은 해당 메소드의 가이드 문서에서도 볼 수 있습니다. https://developer.android.com/reference/android/hardware/SensorManager.html#registerListener(android.hardware.SensorEventListener,%20android.hardware.Sensor,%20int)
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력