我有一个为加速度计、陀螺仪和磁强计调用sensorManager.registerListener()的应用程序,它为处理程序注册所有传感器,每个传感器都设置为SENSOR_DELAY_NORMAL。在大多数情况下,这是很好的,没有任何问题。
然而,当我看一些日志时,我注意到加速度计似乎会随机改变频率,从大约179毫秒(这似乎是我手机上的平均SENSOR_DELAY_NORMAL )到大约20毫秒。
经过大量的挖掘和测试,我发现原因是手机被迅速摇晃时。当这种情况发生时,所有其他传感器都将保持其~179 to的速率,但只有加速度计才会将其速率提高到~20 to。经过一段时间后,该速率最终将从~20 of降至~179 of的设定速率。
我不知道恢复到179 at的速率需要多长时间,我尝试过卸载和重新安装应用程序,如果还没有足够的时间,加速度计仍将在20 at左右触发事件。
我想看看我是否能解决这个问题,但当这种情况发生时,我会以正确的速度重新注册和重新注册听者,但是不管我把它重置到什么位置,加速度计都会以20毫秒的速度继续运行。我确实发现,虽然我可以取消加速度计侦听器,这似乎是可行的,但它并没有解决我的问题。
有谁知道为什么加速度计的听者会改变它的发射速度,以及我如何能够解决这个问题?
发布于 2015-08-24 07:35:44
您请求Android的延迟只是建议的延迟。Android系统和其他应用程序可以改变这一点。来源
这种情况发生的原因很简单-
https://stackoverflow.com/questions/32058135
复制相似问题