我希望能够在我的应用程序中使用一个相当简单的跌倒检测算法。目前在 onSensorChanged() 中,我得到当前 x、x、z 值的绝对值并从中减去 SensorManager.GRAVITY_EARTH (9.8 m/s)。结果值必须连续 10 次大于阈值才能设置标志,表示加速度计已检测到跌倒,阈值约为 8m/s。
此外,一旦超过阈值,我就会比较手机的方向和不再超过阈值时手机的方向,这会设置另一个标志,表示方向传感器检测到跌倒。
当两个标志都设置时,会发生一个事件来检查用户是否正常,等等。我的问题是阈值,当手机直接举起时,加速度计的绝对值约为 9.8 m/s,但当我保持不动时在一个角度它可以超过 15m/s。这会导致其他事件触发跌倒检测,如果我增加阈值以避免这种情况,它将不会检测到跌倒。
谁能在这里给我一些建议,告诉我应该使用哪些可能的值,或者如何改进我的方法?非常感谢。