5

我正在开发一个 Android 应用程序,它在智能手机上记录惯性数据,然后进一步处理它。不同的 Android 设备具有不同的行为,具体取决于将惯性传感器连接到 Android 的固件,这一点非常清楚。我无法回答自己的一件事是,为什么只有 moto g 2nd gen 显示当应用程序正在录制时,我的传感器样本数量明显不同?

例如,几秒钟的录音,我看到:

  • 约 6000 个陀螺仪样本

  • 约 5200 个样本用于 acc

  • 约 2000 个磁力计样本

还假设我正在记录的活动始终影响所有传感器,因此我希望 onSensorChange 函数被均匀调用。我尝试过的所有其他智能手机(5 或 6 个不同的智能手机)都会发生这种情况。

有什么建议为什么磁电机似乎不像其他传感器那样频繁地更改值以便 onSensorChange 记录它?

显而易见的答案是因为固件,但你知道如何减轻我看到的效果吗?

谢谢各位!

4

1 回答 1

2

这个问题真的很老了,但我想我会为了社区的缘故回答这个问题:

我在一家专门从事智能手机传感器处理的初创公司担任应用程序开发人员。我们有几个第二代 Moto G,我们发现它们在为一个传感器以及跨传感器提供统一采样率方面做得非常糟糕。

为了缓解这些问题,每次我们从加速度计获取样本时,我们都会使用最新数据一次写入一整行样本。如果自上次加速度计样本以来没有新样本进入任何其他传感器,则会打印两次相同的值。

IE。)

Accel (3-axis) | Gyro (3-axis)
0,0,0|0,0,0
<new accelerometer sample>
1,1,1|0,0,0
<5 gyro samples and 1 accelerometer>
2,2,2|5,5,5
...

无论如何,希望这对某人有帮助!

TLDR;第二代 Moto G 的一个传感器和多个传感器的采样率不一致。

于 2015-08-06T23:29:00.087 回答