3条回答 默认 最新
- 风中之哨 2019-11-29 17:09关注
你做的APP中画蛇添足了不需要的算法,驱动上报的数据已经是校准后的正确值了,你什么都不要做,拿来用就好了。以下内容可以参考:来自https://source.android.com/devices/sensors/sensor-types
加速度计
报告模式:连续模式
getDefaultSensor(SENSOR_TYPE_ACCELEROMETER) 会返回一个非唤醒传感器
加速度计传感器可报告设备沿 3 个传感器坐标轴的加速度。测量的加速度包括物理加速度(速度变化)和重力加速度。测量结果在 sensor_event_t.acceleration 的 x、y 和 z 字段中报告。
所有值均采用国际单位制单位 (m/s^2),测量结果为设备加速度减去沿 3 个传感器坐标轴的重力加速度。
示例如下:
自由落体时,(x, y, z) 的范数应接近于 0。 当设备平放在桌子上并从其左侧向右推动时,x 轴加速度值为正。 当设备平放在桌子上时,z 轴上的加速度值为 +9.81,相当于设备的加速度 (0 m/s^2) 减去重力加速度 (-9.81 m/s^2)。 当设备平放在桌子上并向上抬起时,加速度值大于 +9.81,相当于设备的加速度 (+A m/s^2) 减去重力加速度 (-9.81 m/s^2)。
读数根据以下参数进行校准:
温度补偿 在线偏差校准 在线尺度校准
仅当传感器已禁用时,才可更新偏差校准和尺度校准,以避免流式传输时出现值激增。
加速度计还通过 sensors_event_t.acceleration.status 报告其预测的读数精度。要详细了解此字段的可能值,请参阅 SensorManager 的 SENSOR_STATUS_* 常量。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报