2012-08-26 2 views
2

센서의 값을 n 초마다 얻어야합니다. 레지스터 리스너에서 시간을 설정하는 것만으로는 변경 사항이 발생하지 않는 것처럼 보이지 않습니다. 이벤트가 변경되지 않아도 센서의 값을 가져오고 싶지만 ...센서 값을 n 초마다 얻습니다.

+0

어떤 센서입니까? 일반적으로 센서가 CPU 및 배터리 사용량을 줄이기 위해 마지막 보고서 이후 변경되지 않은 경우 센서가 그 값을보고하는 것은 의미가 없습니다. 값을 기억할 수없는 이유는 무엇입니까? 보고서를받지 못하면 왜 이전에 기억 된 값을 사용합니까? – Simon

+0

Accellerometer ... 그러나 귀하의 제안은 옳았지만 주파수 속도를 설정하는 방법을 모르겠습니다. n 초마다 업데이트를 원한다고 가정 해 봅시다 : 내가 n 초 만 설정하면 내가 읽을 때 이벤트를 놓칠 수 있습니다. 반면에, n보다 작게 설정하고 이벤트가 발생하면 (가속도> 0), 가속도 정지 (가속도 = 0)보다 제 변수에 0이 포함됩니다. 움직임이 없으면 가짜가됩니다. – user1610075

+0

주파수를 제어 할 수는 없지만 변경 될 때 이벤트를 수신 할 수 있으며 현재 값을 정적으로 읽고 정적으로 저장할 수 있습니다. 따라서 시작할 때 값을 얻고 타이머를 시작하십시오. 중요한 개념은 타이머가 얼마나 자주 센서를 읽는가가 아니라 무언가를 업데이트하려는 빈도 만 있다는 것입니다. 정적으로 저장된 값을 업데이트하려면 SensorEventListener, http://developer.android.com/reference/android/hardware/SensorEventListener.html을 등록하십시오. – Simon

답변

1

스레드를 만들 수 있습니다 n 초 동안 잠자기 상태로있게 한 다음 센서 데이터를 청취 할 수 있습니다. 데이터 유형을 리턴하는 getSensorData()과 같은 메소드를 작성할 수도 있습니다.

이 정보가 도움이되기를 바랍니다.

0

나는 또한 며칠 동안이 문제가 발생했습니다. 난 다음과 같은 방법으로 해결 :

onSensorChanged 메서드에서, 나는 주먹에 모든 데이터를 저장, 즉 acc [시간, acc_x, acc_y, acc_z]라고 말합니다. 센서가 변경 될 때마다이 타임 스탬프와 acc에 저장된 첫 번째 타임 스탬프 (acc [0])의 차이를 확인합니다. 차이가 0.2 초보다 큰 경우 (원하는 시간대 사용), 나는 averA의 평균을 timeAp에서 말하고 다른 배열에 저장합니다. 그러면 acc가 지워집니다. 위의 단계를 반복하십시오.

도움이 될 것입니다.

관련 문제