Почему частота дискретизации датчика становится слишком низкой, когда телефон Android неподвижен?

Я пишу простое приложение для чтения данных акселерометра и обнаружил, что частота дискретизации слишком низкая (даже одна выборка 5 секунд), когда я кладу телефон на стол и молчу. Я установил частоту дискретизации как FASTEST, она всегда высока.

Я хочу знать, почему и как Android это делает? Я предполагаю, что jni или аппаратное обеспечение всегда считывают данные, но отбрасывают данные, когда обнаруживают, что между двумя выборками нет изменений.


person MoreFreeze    schedule 12.11.2011    source источник


Ответы (1)


Как видно из документации слушатель сенсора процедура onSensorChanged вызывается при смене сенсора. Это означает, что если вы держите устройство неподвижно, значения датчиков не изменятся.

Я должен признать, что большинство телефонов добавляют шум к показаниям датчиков, и эти значения постоянно меняются; Вы должны «гордиться» своим телефоном — он не добавляет много шума.

person INS    schedule 25.11.2011
comment
о, это имеет смысл. Спасибо за ответ. - person MoreFreeze; 26.11.2011
comment
@MoreFreeze Если вы используете Android 2.3+, вы можете использовать NativeActivity . Пример достаточно хорош для начала. Таким образом, вы будете получать события так быстро, как захотите. - person INS; 28.11.2011