Android – 计步器的实现

前言

之前对微信的计步器一直很感兴趣,当时并不知道怎么实现,今天看到简书上的一篇文章,实现了和微信计步几乎一致的效果,以此记录,并了解一下实现原理。

原文链接:http://www.jianshu.com/p/cfc2a200e46d

两种计步方式

  1. 加速度传感器 Sensor.TYPE_ACCELEROME 计步方式:这种方式是有开源的算法根据加速度传感器进行计算步数;

    优点:只要有加速度传感器的设备都可以使用,相对来说可以使用的设备较多。

    缺点:步数的准确性取决于算法且算法比较难优化;需要后台保活 Service 否则不能计步;计步算法比较耗电;部分手机锁屏不能计步;

  2. 计步传感器 Sensor.TYPE_STEP_COUNTER 计步方式:这种传感器是返回手机系统启动到当前时间的所有步数。手机系统重启传感器返回步数为0。还返回一个时间戳,表示最后一次步数的时间。这个计步传感器是一个硬件,功耗非常低。如果你想记录步数,注册该传感器不要注销,他能自动在后台计步,在app唤醒的时候返回计步总数。应用程序需要注册该传感器,否则不能不能记步。

    优点:硬件计步准确性高;功耗小;只要注册不用后台 Service 自动计步;

    缺点:Android4.4系统以上的部分手机;手机系统重启计步器清零;不能返回步数明细(步数对应时间),只是返回当前时间的总步数。

项目地址

Github 地址:https://github.com/jiahongfei/TodayStepCounter

我们一直都向往,面朝大海,春暖花开。 但是几人能做到,心中有爱,四季不败?