Android原生計步功能的實現,記錄當日步數(仿微信運動),不需要後臺service
概述:通過調用Android4.4以上系統自帶的計步傳感器Sensor.TYPE_STEP_COUNTER,實現記錄當日步數的邏輯,不需要後臺service,因自帶計步傳感器記錄的是開機以來所有的步數,所以需要自己處理跨天分割以及開關機的問題。
1.具體邏輯後面會完善本文,代碼已上傳至github
github傳送門
2.封裝了StepUtil供外界調用
/**
* 今日步數
*
* @param context 上下文
* @return 今日步數
*/
public static int getTodayStep(Context context) {
return (int) StepSPHelper.getCurrentStep(context);
}
3.在項目開啓的入口處進行計步功能的初始化
/**
* 初始化計步服務
* 注:因初始化需要過程,正常項目中,初始化應該放在進入到主界面之前的activity中,比如閃屏頁中進行初始化
* 因此本demo在第一次安裝時會提示"手機暫不支持計步功能",殺死進程再次打開即可正常顯示
*/
private void initStepService() {
Intent intent = new Intent(this, StepService.class);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
startForegroundService(intent);
} else {
startService(intent);
}
}