我想
[1]提高手机加速度计的采样率。 (SENSOR_DELAY_FASTEST在Nexus4上的Xperia / 180Hz上给出最大约 100Hz, 我希望延迟工作时间约为1毫秒或更短。
[2]如果[1]不可能我可以使速率恒定。
mSensorManager.registerListener(this, mAccelerometer,10000);//10000 in microsec
以上代码不给我10ms延迟。我知道这只是Android的一个建议。
我知道手机内部的这些加速度计能够提供更小的延迟。它在数据表中提到过。他们的任何方法或驱动器/ ADC编程也是如此[1]或[2]。 我正在使用ADT工具。还有其他任何工具吗?
P.S:我读过
答案 0 :(得分:5)
数据延迟(或采样率)控制间隔 传感器事件通过onSensorChanged()发送到您的应用程序 回调方法。默认数据延迟适用于监视 典型的屏幕方向更改并使用200,000的延迟 微秒。您可以指定其他数据延迟,例如 SENSOR_DELAY_GAME(延迟20,000微秒),SENSOR_DELAY_UI(60,000 微秒延迟),或SENSOR_DELAY_FASTEST(0微秒延迟)。的作为 在Android 3.0(API等级11)中,您还可以将延迟指定为 绝对值(以微秒为单位)。
但是你应该知道你指定的绝对值(以微秒为单位)只是Android的建议。
答案 1 :(得分:1)
https://github.com/dantasse/AccelerometerTest - 在这里,您可以下载应用程序的源代码,以测试您的实际采样率。我不认为你在实践中可以实现100Hz或更高......我现在正在测试采样率。 所以现在的答案不是 - 你不能达到1毫秒的延迟(即使在理论上)。
答案 2 :(得分:1)
根据我的经验,这是你能做的。让我们从最简单的开始:
[2] [简而言之]在(此)Android上,您无法获得完美的准确度(读数之间的间隔)。
[2] [长]你需要定义完美;也就是说,您必须定义精度。注意,这永远不会是完美的0;它永远不会,甚至不是在可以想象的最关键的应用程序中。根据我的经验,在Android上,这甚至可以完全爆发100毫秒。
[1]如果您的应用程序不重要,即您只想分析一些历史数据,可以尝试以下操作:使用时间戳保存每个读数;然后,以固定的间隔插入;你将有一个完美的时间分布,但也是一个估计。
祝你好运,并询问是否有不明确的事情。