背景
由于Google 相關的服務無法進入中國,Android 系統在國內并不能搭載Google FIT系統級應用(iOS 計步數據由系統級別的 健康app提供)。 Android 應用計算步數基于傳感器芯片和一定的算法規則來獲取
傳感器步數異常過濾規則
短時間內步數波動異常
根據線上采集的數據分析,小米手機會在短時間內突然步數變大很多(萬級別),這種數據需要過濾,初步定義規則如果距離上一次采集的步數平均每秒大于10步可以過濾(一個人一秒能走10步應該是不太可能的)凌晨0點后短時間步數未初始化仍然是昨天的數據
用戶在快接近凌晨0 點前停止運動,手機采集到了步數假如為8888步但是沒有上傳,凌晨0點后一段時間用戶沒有運動會有可能獲取的傳感器數據仍然是8888,上傳給后臺就是8888.
很快用戶運動了走了9步并上傳步數,但是后臺不會接受9步為合理數據,會拋出異常:上傳步數小于當前存在的步數。需要前后端聯合定義方案防止類似臟數據。
后臺保活計步服務
相關方案已經上線提示用戶設置以便獲取精確的步數
image.png