Android 运动计步异常数据过滤

背景

由于Google 相关的服务无法进入中国,Android 系统在国内并不能搭载Google FIT系统级应用(iOS 计步数据由系统级别的 健康app提供)。 Android 应用计算步数基于传感器芯片和一定的算法规则来获取

传感器步数异常过滤规则

  • 短时间内步数波动异常
    根据线上采集的数据分析,小米手机会在短时间内突然步数变大很多(万级别),这种数据需要过滤,初步定义规则如果距离上一次采集的步数平均每秒大于10步可以过滤(一个人一秒能走10步应该是不太可能的)

  • 凌晨0点后短时间步数未初始化仍然是昨天的数据

用户在快接近凌晨0 点前停止运动,手机采集到了步数假如为8888步但是没有上传,凌晨0点后一段时间用户没有运动会有可能获取的传感器数据仍然是8888,上传给后台就是8888.

很快用户运动了走了9步并上传步数,但是后台不会接受9步为合理数据,会抛出异常:上传步数小于当前存在的步数。需要前后端联合定义方案防止类似脏数据。

后台保活计步服务

相关方案已经上线提示用户设置以便获取精确的步数


image.png

你可能感兴趣的:(Android 运动计步异常数据过滤)