前言 目前 Android 計步兩種方式 在 Android4.4 版本之后,部分機型實現(xiàn)了 Sensor.TYPE_STEP_COUNTER 傳感器,用于紀錄用戶行走的步數(shù)。從手機開機開始紀錄,手機關(guān)機時重置為 0。 加速度傳感器計算方式加速度傳感器非常耗電,導(dǎo)致 App 的耗電量很高,影響用戶體驗。 實現(xiàn)以及使用 項目地址:https://github.com/jiahongfei/TodayStepCounter根據(jù)以上兩種方式實現(xiàn)計步,手機提供計步傳感器就使用Sensor.TYPE_STEP_COUNTER方式(app 后臺關(guān)閉也可以計步,但是部分手機也不支持,請看第二篇),如果不提供就使用Sensor.TYPE_ACCELEROMETER方式(app 需要保持后臺運行)。 項目結(jié)構(gòu):計步 Service 使用單獨進程,所以使用到進程間通信 aidl,todaystepcounterlib 為庫文件用于在單獨進程中實現(xiàn)計步算法,app 依賴todaystepcounterlib 項目獲取當前步數(shù)展示。 接入方式:項目結(jié)構(gòu) app 中時如何使用計步模塊的看如下代碼 public class MainActivity extends AppCompatActivity { 計步策略 1.如果使用加速度傳感器計步必須要 app 在后臺存活才可以計步。' 如下是采用 Sensor.TYPE_STEP_COUNTER 傳感器實現(xiàn)計步策略:1. 用戶新安裝 app,從用戶第一次打開 App 開始計步,當天不跨天2. 用戶一直打開app計步,且跨越0點沒有關(guān)閉App 3.用戶打開一次App后臺關(guān)閉,跨越0點且0點分隔AlertManager不能自啟動(目前多數(shù)手機都是不能啟動的) 4.用戶打開一次app后臺關(guān)閉,跨越多個0點且Alertmanager 0點分隔可以啟動 5.用戶開啟一次app且在同一天進行重啟手機(自啟動不好用,很多手機不好用) 6.用戶開啟一次app,開關(guān)機跨0點(開機自啟動不好用) 7.用戶開啟一次app,開關(guān)機跨0點(開機自啟動可以) 缺陷 注意 缺陷1.方案三 跨 0 點打開 app 步數(shù)算 前一天的,如果跨越多天會導(dǎo)致前一天步數(shù)非常大。 注意:1.每天早上打開 App 可以提高幾步精度,和微信步數(shù)幾乎一致。 與之相關(guān) 關(guān)鍵詞:code小生 ![]() ![]() |
|
來自: codingSmart > 《待分類》