0
private static int SENSOR_DELAY_SLOW = 5000000;

sensMngr = (SensorManager) getSystemService(SENSOR_SERVICE);

sensMngr.registerListener(this, sensMngr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SENSOR_DELAY_SLOW);

我想每 5 秒捕获一次传感器的数据,但它忽略了我想要的速率。侦听器每秒捕获的值甚至超过 400 次。

当然,我可以在onSensorChanged(SensorEvent event)方法中手动过滤传入的数据,但我的主要目标是减少电池消耗。

文档

我究竟做错了什么?

谢谢你。

4

1 回答 1

1

您需要 SensorManager.SENSOR_DELAY_UI 并且您将不得不从那里过滤。只有 4 种可选速度,您无法定义自己的速度。SENSOR_DELAY_UI 往往最多每秒大约 3 个样本,并且由于您在传感器值更改时获得结果,因此样本之间可能需要几秒钟。这将因设备而异。

无法在 Android 中为传感器值传递定义固定速率。

于 2012-10-11T14:11:48.720 回答