Android原生計步功能的實現,記錄當日步數(仿微信運動),不需要後臺service

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);
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章