前言 目前 Android 计步两种方式 在 Android4.4 版本之后,部分机型实现了 Sensor.TYPE_STEP_COUNTER 传感器,用于纪录用户行走的步数。从手机开机开始纪录,手机关机时重置为 0。 加速度传感器计算方式加速度传感器非常耗电,导致 App 的耗电量很高,影响用户体验。 实现以及使用 项目地址:https://github.com/jiahongfei/TodayStepCounter根据以上两种方式实现计步,手机提供计步传感器就使用Sensor.TYPE_STEP_COUNTER方式(app 后台关闭也可以计步,但是部分手机也不支持,请看第二篇),如果不提供就使用Sensor.TYPE_ACCELEROMETER方式(app 需要保持后台运行)。 项目结构:计步 Service 使用单独进程,所以使用到进程间通信 aidl,todaystepcounterlib 为库文件用于在单独进程中实现计步算法,app 依赖todaystepcounterlib 项目获取当前步数展示。 接入方式:项目结构 app 中时如何使用计步模块的看如下代码 public class MainActivity extends AppCompatActivity { 计步策略 1.如果使用加速度传感器计步必须要 app 在后台存活才可以计步。' 如下是采用 Sensor.TYPE_STEP_COUNTER 传感器实现计步策略:1. 用户新安装 app,从用户第一次打开 App 开始计步,当天不跨天2. 用户一直打开app计步,且跨越0点没有关闭App 3.用户打开一次App后台关闭,跨越0点且0点分隔AlertManager不能自启动(目前多数手机都是不能启动的) 4.用户打开一次app后台关闭,跨越多个0点且Alertmanager 0点分隔可以启动 5.用户开启一次app且在同一天进行重启手机(自启动不好用,很多手机不好用) 6.用户开启一次app,开关机跨0点(开机自启动不好用) 7.用户开启一次app,开关机跨0点(开机自启动可以) 缺陷 注意 缺陷1.方案三 跨 0 点打开 app 步数算 前一天的,如果跨越多天会导致前一天步数非常大。 注意:1.每天早上打开 App 可以提高几步精度,和微信步数几乎一致。 与之相关 关键词:code小生 ![]() ![]() |
|
来自: codingSmart > 《待分类》