背景
由于Google 相关的服务无法进入中国,Android 系统在国内并不能搭载Google FIT系统级应用(iOS 计步数据由系统级别的 健康app提供)。 Android 应用计算步数基于传感器芯片和一定的算法规则来获取
传感器步数异常过滤规则
短时间内步数波动异常
根据线上采集的数据分析,小米手机会在短时间内突然步数变大很多(万级别),这种数据需要过滤,初步定义规则如果距离上一次采集的步数平均每秒大于10步可以过滤(一个人一秒能走10步应该是不太可能的)凌晨0点后短时间步数未初始化仍然是昨天的数据
用户在快接近凌晨0 点前停止运动,手机采集到了步数假如为8888步但是没有上传,凌晨0点后一段时间用户没有运动会有可能获取的传感器数据仍然是8888,上传给后台就是8888.
很快用户运动了走了9步并上传步数,但是后台不会接受9步为合理数据,会抛出异常:上传步数小于当前存在的步数。需要前后端联合定义方案防止类似脏数据。
后台保活计步服务
相关方案已经上线提示用户设置以便获取精确的步数
image.png