Android 加速计';s最小和最大值范围和传感器数据转换

Android 加速计';s最小和最大值范围和传感器数据转换,android,c,accelerometer,android-sensors,motorola,Android,C,Accelerometer,Android Sensors,Motorola,我有摩托罗拉的moto g 16 GB设备。它具有LIS3DH三轴加速度计 为了读取加速度计的最大值和最小值,我使用了这个API getMaximumRange() 它显示零拾取或拾取 但对于我的设备,我得到的值39.24 所以我认为39.24/9.8=~4.00秒,我的范围是+/-4g 但是,当我简单地读取x、y、z数据并将其存储在文件中,并在给我的智能手机提供最大加速度时查看这些值时,它会显示高达76米/秒的值 这是什么意思 这是我的设备的错误吗 如何将该值转换为+-2g值。我的算法需要+

我有摩托罗拉的moto g 16 GB设备。它具有LIS3DH三轴加速度计

为了读取加速度计的最大值和最小值,我使用了这个API

getMaximumRange()
它显示
零拾取
拾取

但对于我的设备,我得到的值39.24

所以我认为39.24/9.8=~4.00秒,我的范围是+/-4g

但是,当我简单地读取x、y、z数据并将其存储在文件中,并在给我的智能手机提供最大加速度时查看这些值时,它会显示高达76米/秒的值

这是什么意思

这是我的设备的错误吗

如何将该值转换为+-2g值。我的算法需要+-2g格式的值如何给出


如何执行传感器数据值的截断或向下采样

moto g具有动态配置传感器。最初它是在4g模式下配置的。但当你给你的手机更多的加速度时,它会改变它的传感器模式,并切换到8g,你仍然会给手机更多的加速度,然后它会自动变为16G模式。一段时间后,它会回到4g模式


您可以在Sensocr Accuracy change callback上调用此范围更改。

根据数据表,加速计可动态配置为不同的范围。也许您可以使用内省来查看实现传感器类是否有其他方法来动态更改传感器范围。传感器数据表:我还建议阅读@Klaslindbkäck感谢刚才阅读的是只有1g是32'每秒,所以76m/秒是(大约)228'每秒,所以228/32=7.125G。