在 Android 中读取加速度计数据

Reading Accelerometer data in Android

在 Android 应用程序的加速度计读数中引入延迟的最佳方法是什么。 此代码将 运行ning 在意向服务中,并且会 运行 很长一段时间(至少 3-6 小时)。我也想让它提高资源效率。 我现在正在使用 Thread.Sleep(),我想知道是否有更好的方法来做到这一点。

同样在文档中提供的示例中,他们使用高通滤波器来滤除重力。但是是否可以认为 3 个轴上所有读数的总和大于 10,然后简单地从总和中减去该值? (我只对 phone 上的净加速度感兴趣,而不是方向)。

谢谢!

亲爱的上帝,不要使用睡眠来延迟加速度计读数。这实际上不会延迟读数,只会让你对它们的反应变慢——系统仍将以相同的速度读取读数,实际上会将它们排队。如果您想要较少的读数,请在设置传感器侦听器时指定。它需要一个频率参数。

您不会对 3 求和并减去 10,而是对它们的平方求和并减去 100(或更准确地说,9.8^2)。但即便如此,这也不完全正确,因为传感器并不完美,静止设备的读数可能不完全是 9.8(特别是如果你不在海平面上——丹佛的重力比纽约小) .相反,您应该采用长期平均值并找出该特定设备在静止时读取的内容。这可能是高通滤波器在做什么,尽管我必须查看代码才能确定。