마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

가속도 센서 주기 고정하는 방법에 대해 질문 드립니다.

0 추천
안드로이드 에서 가속도센서를 주기적으로 블루투스를 이용해 PC에서 모니터링하는 프로그램을 만들고 있습니다.
 
TEST중인 기기는 갤럭시S4이고, 다른 기기로 옵티머스 GX가 있습니다.
 
현재 안드로이드 코드의 주기는 SensorManager의 SENSOR_DELAY_UI로 설정해놨습니다.
 
S4로 테스트중 중간중간 PC에서 값이 많이 들어와서 안드로이드에서 확인 해보니
 
블루투스나 PC의 문제가 아니였고 제가 설정한 주기보다 더 빠른 속도로 센서 값을 받아오고 있습니다.
 
하지만, GX의 경우에는 일정한 주기로 값을 받아오고 있습니다.
 
다른 기기 노트2,노트3, 베가아이언의 경우도 값을 주기대로 보내다가 값자기 많은
 
이벤트가 발생하는 것을 확인하였습니다.
 
이렇게 주기가 중간중간 빨라지지 않게 고정할 수 있는 방법이 있는지 궁금합니다.
 
또 이렇게 주기가 갑자기 빨라지는 이유에 대해서 궁금합니다... !!
Grizzly_K (120 포인트) 님이 2015년 5월 11일 질문

1개의 답변

+1 추천

API 문서를 읽어보면 지극히 정상이라는 것을 알 수 있습니다.

 

익명사용자 님이 2015년 5월 11일 답변
제가 설정한 주기보다 빠르게 들어올수 있다는 점을 말하시는거 맞나요 ?!;;;
질문 드린 것은.. 주기가 제가 설정한 주기가 일정한 속도가 아니라
갑자기 빨라졌다가 다시 느려졌다가 하는 현상이 있습니다.... ㅠ
GX의 경우에는 일정한 주기로 들어오고 갑자기 빨라지는 현상이 없고요 ..
This is only a hint to the system. Events may be received faster or slower than the specified rate. 이 내용을 두고 말하는것 같네여. 단말에 내장되어 있는 가속센서의 하드웨어 스펙에 따라 다르게 작동하는게 어찌보면 당연한 것이라 생각됩니다.
아... 그렇다면 다른 방법으로 주기가 변경되지 않고 일정하게 받는 방법은 없을까요 ㅠ.;;;
타이머 돌려서 특정 시간마다 boolean 변수 하나를 true로 바꾸고, true일 때만 센서값 읽어서 처리하고, 다시 false로 바꾸는 식으로 하면 되겠네요. 아니면 마지막 값을 저장하고 타이머 돌려서 특정 시간일 때의 저장된 마지막 값을 이용하거나요.
아 ~ ! 한번 해봐야겠네요 ~ ㅎㅎ 감사합니다 !!!!
...