Проверьте Javadocs для SensorManager.registerListener ()
Вам нужно передать одну из 4 констант, вы не можете ввести произвольное значение, как пытаетесь сделать.
События датчика скорости доставляются в.Это всего лишь подсказка системе.События могут быть получены быстрее или медленнее, чем указанная скорость.Обычно события принимаются быстрее.Значение должно быть одним из SENSOR_DELAY_NORMAL, SENSOR_DELAY_UI, SENSOR_DELAY_GAME или SENSOR_DELAY_FASTEST или желаемой задержкой между событиями в микросекундах.
, поэтому пример вызова может выглядеть следующим образом:
registerListener(this, Accelerometer , SensorManager.SENSOR_DELAY_FASTEST);
РЕДАКТИРОВАТЬ: Tim.footInMouth () Я не видел последнюю часть определения.Вы можете фактически передать его микросекундами.
Я думаю, что математика для ваших секунд немного отключена
Вы хотите 20 выборок в секунду (1000 миллисекунд)
Итак, вы хотите 1выборка за 50 миллисекунд
A микросекунда равна 1/1000 миллисекунды
Таким образом, 1000 микросекунд = 1 миллисекунда
и 50000 микросекунд = 50 миллисекунд =20 раз в секунду.
Итак, ваш звонок должен быть:
registerListener(this, Accelerometer , 50000);