Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android加速计:采样率?_Android_Accelerometer_Android Sensors_Sampling_Rate - Fatal编程技术网

Android加速计:采样率?

Android加速计:采样率?,android,accelerometer,android-sensors,sampling,rate,Android,Accelerometer,Android Sensors,Sampling,Rate,我想 [1] 提高手机加速计的采样率。 (传感器延迟速度最快,Xperia上的最大值约为100Hz,Nexus4上的最大值约为180Hz, 对于我的工作,我希望延迟大约1毫秒或更少 [2] 如果[1]不可能我可以使速率恒定 mSensorManager.registerListener(this, mAccelerometer,10000);//10000 in microsec 上面的代码没有给我10毫秒的延迟。我知道这只是对Android的一个建议 我知道手机内的这些加速计能够提供更小的延

我想

[1] 提高手机加速计的采样率。 (传感器延迟速度最快,Xperia上的最大值约为100Hz,Nexus4上的最大值约为180Hz, 对于我的工作,我希望延迟大约1毫秒或更少

[2] 如果[1]不可能我可以使速率恒定

mSensorManager.registerListener(this, mAccelerometer,10000);//10000 in microsec
上面的代码没有给我10毫秒的延迟。我知道这只是对Android的一个建议

我知道手机内的这些加速计能够提供更小的延迟。这在他们的数据表中有提到。他们的任何方法或驱动程序/ADC编程都可以做到[1]或[2]。 我用的是ADT工具,还有其他工具吗

附言:我读过

-在这里,您可以下载一个应用程序的源代码,用于测试您的实际采样率。我认为您实际上无法达到100Hz或更高的频率……我正在测试采样率。 所以现在的答案不是——你无法实现1毫秒的延迟(即使在理论上也是如此)。

来自:

数据延迟(或采样率)控制 传感器事件通过onSensorChanged()发送到应用程序 回调方法。默认数据延迟适用于监视 典型的屏幕方向改变,使用200000的延迟 微秒。您可以指定其他数据延迟,例如 传感器延迟游戏(20000微秒延迟),传感器延迟用户界面(60000 微秒延迟),或传感器延迟最快(0微秒延迟)。 对于Android 3.0(API级别11),您还可以将延迟指定为 绝对值(以微秒为单位)。


但是你应该知道你以微秒为单位指定的绝对值只是对Android的一个建议。

根据我的经验,以下是你可以做的。让我们从最简单的开始:

[2] [简而言之]在(这个)Android上你不可能有完美的准确度(读数间隔)。 [2] [long]你需要定义完美;也就是说,你必须定义你的精度。注意,这永远不会是一个完美的0;它永远不会是,即使在可以想象的最关键的应用程序中也是如此。根据我的经验,在安卓上,这甚至可能是一个完整的100毫秒

[1] 如果您的应用程序不是关键性的,即您只想分析一些历史数据,您可以尝试以下方法:使用时间戳保存每次读取;然后,以固定的间隔进行插值;您将有一个完美的时间分布,但也有一个估计


祝你好运,问问是否有什么不清楚的地方。

我知道这一点,但我想要一个完美的恒定采样率。