작동하지 않는 것 :
내가 클래스를 도입하여 가지고 있던 특정 문제를 해결할 수 있었다 -scope static counter 그리고 x 개의 이벤트를 무시합니다. 그러나 나는 아직도 내가 잘못하고있는 것을 알고 싶다. 4 개의 주어진 상수 중 하나를 사용하는 대신 마이크로 초 단위로 힌트를 등록한다."사용자 정의"센서 이벤트 요금은 SensorManager.registerListener (SensorEventListener 수신기, 센서 센서, INT 속도) 업데이트
내 앱의 활동으로 센서의 방향을 결정하고 롤을 결정한 다음 활용합니다.
내 센서를 등록
SensorManager.registerListener(SensorEventListener listener, Sensor sensor, int rate)
을 사용하고 있습니다. 발 Android Documentation for this method:
파라미터
[...]
레이트 센서 이벤트에 전달
레이트. 이것은 시스템에 대한 힌트 일뿐입니다. 이벤트가 지정된 속도보다 빠르거나 느릴 수 있습니다. 보통 이벤트는 더 빨리 수신됩니다. 값은 SENSOR_DELAY_NORMAL, SENSOR_DELAY_UI, SENSOR_DELAY_GAME 또는 SENSOR_DELAY_FASTEST 중 하나이거나 이벤트 간 원하는 지연 시간 (마이크로 초)이어야합니다.
4 개의 미리 정의 된 상수 중 하나를 사용하면 앱이 정상적으로 작동합니다. 그러나이 상수는 모두 내 요구에 너무 빠른 속도 힌트를 제공합니다. 모든 이벤트가 변경 될 때마다 약간의 정보가 포함 된 UDP 패킷을 보내야하며 수신되는쪽에 미리 정의 된 요율을 사용하는 메시지가 쇄도하고있는 것 같습니다. API가 마이크로 초 단위의 양을 지정하므로 30000과 같은 정수를 사용하면 앱에서 센서 이벤트를 모두보고하는 것을 중지합니다.
내 이벤트 속도 힌트를 사용하지 못하게하는 것은 무엇입니까?
네, 저도 그렇게하고 싶습니다! 내가 생각할 수있는 유일한 해결책은 수동으로 패킷을 필터링하는 것입니다. – David
센서 드라이버는 사용자의 힌트에 따라야하는 의무가 없으므로 이는 직접적인 경험에 기반한 쓸데없는 목표입니다. 실제로 미리 정의 된 상수의 일부 또는 전부에 대해 동일한 비율로 이벤트를 보낼 수 있습니다! 가장 좋은 방법은 원하는 시간 - 델타에 도달 할 때 누적되고 트리거하는 것입니다. –