重现步骤
为具有正常采样周期的重力传感器注册一个侦听器。使用您自己的代码(下面的基本示例)或仅安装My Sensors,确保通过菜单将传感器更新速率设置为Normal 。
Sensor gravitySensor = sensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY); sensorManager.registerListener(callback, gravitySensor, SENSOR_DELAY_NORMAL);
观察传感器输出。当设备直立时, Y 轴 (
event.values[1]
) 应报告 ~9.7。- 用力、快速地摇晃/摆动一次或两次。然后再次保持直立。
- 执行此操作后查看传感器输出:
- 在前 2 秒内,Y 轴值从 9.7 转变为 -9.7。
- 在接下来的 6 秒内,Y 轴值保持反转 (-9.7)。
- 在接下来的 2 秒内,Y 轴值转换回 9.7。
对我来说,这看起来像是一个错误,因为每次用户摇晃或摆动设备时,10 秒内的坏数据似乎完全违反直觉。
设备详情
- 使用三星 Galaxy S5 (G900I)
- 运行 Android 5.0(升级到 Android 6 后也发生)
- 受影响的传感器
- 重力传感器(三星电子)(第 3 版)
- MPL 旋转矢量(Invensense)(版本 1)
- MPL 游戏旋转矢量(Invensense)(版本 1)
- 方向传感器(三星电子)(版本 1)
我的问题
- 这是此设备的正常行为吗?(它发生在你的Galaxy S5 上吗?)
- 这是一般 Android 设备的正常行为吗?(您的Android 设备上是否会出现上述传感器类型?)
- 有没有办法防止这种情况发生?