Android 传感器采样率不会低于 60 赫兹

Android sensor sampling rate won't drow below 60 hz

我正在读取 Sony Smartwatch 3 上的加速计传感器。自从 Android Wear 1.5 更新以来,采样率不会低于 60hz,无论我使用什么天气 SENSOR_DELAY_NORMALSENSOR_DELAY_UISENSOR_DELAY_GAME。更新前 SENSOR_DELAY_NORMAL 导致采样率约为 18 samples/seconds.

accelerometer.getMaxDelay()仍然是 returns 62500,也就是 16 samples/sec。当使用 sensorManager.registerSensor(this, accelerometer, 62500) 注册传感器时,我也尝试直接设置所需的延迟,但这也不起作用。

有人知道如何降低采样率吗?对于我的应用来说,节能非常重要,这就是低采样率很重要的原因。

Docs 接下来说一下 samplingPeriodUs:

This is only a hint to the system. Events may be received faster or slower than the specified rate. Usually events are received faster.

因此,恕我直言,您应该忽略一些传感器事件,正如 Alex 所提议的那样。 Dry 运行 用于传感器事件(即没有实际处理不应该非常耗电)。

怎么会有所不同:不是 Android 更新改变了行为,这是我的误解。

对于可能遇到传感器批处理或采样率问题的每个人:

  • 当显示器打开或关闭时,采样率可能会有所不同。在我的例子中,开启时为 60hz,关闭时为 18hz。
  • 当设备连接到电源时,传感器批处理可能无法正常工作。对我来说,我会拔掉 USB 数据线。在这种情况下,蓝牙调试可能会有所帮助。