在Android中读取加速度计数据

在Android中读取加速度计数据,android,accelerometer,Android,Accelerometer,在Android应用程序的加速度计读数中引入延迟的最佳方法是什么。 此代码将在intent服务中运行,并将运行较长时间(至少3-6小时)。我也希望它能节省资源。 我现在使用的是线程.Sleep(),我想知道是否有更好的方法来实现这一点 同样在文档中提供的示例中,他们使用高通滤波器过滤重力。但是,是否有可能考虑3个轴上的所有读数的总和大于10,并且简单地从总和中减去该值?(我只对手机上的净加速度感兴趣,而不是方向感兴趣) 谢谢 亲爱的上帝,不要用睡眠来延迟加速度计读数。这实际上不会延迟读数,它只会

在Android应用程序的加速度计读数中引入延迟的最佳方法是什么。 此代码将在intent服务中运行,并将运行较长时间(至少3-6小时)。我也希望它能节省资源。 我现在使用的是
线程.Sleep()
,我想知道是否有更好的方法来实现这一点

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


谢谢

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


你不会把3加起来减去10——你会把它们的平方加起来减去100(或者更准确地说,9.8^2)。但即使这样也不完全正确,因为传感器并不完美,而且静止设备可能无法准确读取9.8(特别是如果你不在海平面上——丹佛的重力比纽约要小)。相反,你应该取一个长期平均值,找出那个特定设备在静止状态下的读数。这可能是高通滤波器所做的,尽管我必须查看代码才能确定。

这里是指向文档的链接。如果你能看一看,那会很有帮助的。我想我必须在应用程序中添加一个校准步骤。我确实对睡眠有疑问。谢谢你的确认。我想知道的是,有没有办法配置读取之间的延迟?当调用registerListener时,第三个参数是delay。如果您需要在Android 2.2或更低版本上工作,有3个常量可供选择。在2.3及更高版本上,您还可以传入以微秒为单位的值,以延迟两次读数。