一种基于Android计步传感器的计步方法技术

技术编号:19960332 阅读:817 留言:0更新日期:2019-01-03 10:52
本发明专利技术公开了一种基于Android计步传感器的计步方法,包括:接收计步传感器提供的系统步数;在本地存储无数据记录或数据记录不是当天的时,初始化时基准步数和累计步数等于系统步数,补偿步数等于零;或,在本地存储有当天的数据记录,并且手机当天未重启时,重置累计步数为系统步数;或,在本地存储有当天的数据记录,并且手机当天首次重启时,重置补偿步数为系统步数;或,在本地存储有当天的数据记录,并且手机当天再次重启时,重置累计步数为上一次累计步数与上一次补偿步数的和,补偿步数为系统步数;输出当前的运动步数=累计步数‑基准步数+补偿步数。该方法能让计步结果更加接近手机系统的步数,且不会带来额外的功耗。

A Stepping Method Based on Android Stepping Sensor

The invention discloses a step-counting method based on Android step-counting sensor, which includes: receiving the system step provided by the step-counting sensor; storing no data record locally or when the data record is not the same day, the reference step and cumulative step at initialization are equal to the system step, and the compensation step is equal to zero; or storing the data record locally for the same day, and the mobile phone is not restarted on the same day. When the mobile phone is restarted locally, the total number of reset steps is the number of system steps; or, when the mobile phone is restarted locally for the first time on that day, the number of reset compensation steps is the number of system steps; or, when the mobile phone is restarted locally, the total number of reset steps is the sum of the last accumulated steps and the last compensation steps, and the number of compensation steps is the number of system steps. Output current motion steps = cumulative steps base steps + compensatory steps. This method can make the step counting result closer to the number of steps in the mobile phone system without additional power consumption.

【技术实现步骤摘要】
一种基于Android计步传感器的计步方法
本专利技术属于电子应用
,具体涉及一种基于Android计步传感器的计步方法。
技术介绍
日常生活中,人们可以通过很多种方式,看到每天的走路步数情况,比如:穿戴手环,通过手环来计步;又比如穿上有计步功能的鞋子,也可以完成计步;但最常见的一种方式,就是通过手机来计步,对于智能手机非常普及的今天,通过手机计步可谓是即简单又经济。在手机计步中,因为无法准确的获取安卓系统(Android)的步数统计,开发者都另辟蹊径,尝试自己来实现计步方案。目前已知的计步方案有有很多种,比如利用人体运动波峰波谷的监测算法,还有利用GPS定位系统的监测算法,以及利用各种传感器的计算方法。不同的计步方案各有优缺点:一是因为方案的不同,我们经常可以看到不同的APP得出的步数都不一样,且跟手机内置的步数统计也不一致;二是不同的方案,所产生的手机功耗也不同,比如监测波峰波谷算法需要APP长时间后台运行产生的功耗,比如GPS监测容易产生的硬件功耗。各种方案的优缺点促使开发者在手机计步中不断探索创新。
技术实现思路
本专利技术的目的在于提供一种基于Android计步传感器的计步方法,该方法能让计步结果更加接近手机系统的步数,且不会带来额外的功耗。为实现上述目的,本专利技术所采取的技术方案为:一种基于Android计步传感器的计步方法,适用于安卓手机的应用,所述基于Android计步传感器的计步方法,包括:S1、打开应用,接收计步传感器提供的系统步数,所述系统步数等于手机开机以来步数的累加值;S2、通过如下步骤,初始化或重置本地存储的数据记录:在本地存储无数据记录或数据记录不是当天的数据记录时,初始化数据记录,初始化的数据记录包括:基准步数、累计步数、补偿步数、数据记录时间、开机时间、重启标志位,初始化时基准步数和累计步数等于系统步数,补偿步数等于零;或,判断手机当天是否有重启以及重启次数,在本地存储有当天的数据记录,并且手机当天未重启时,重置累计步数为系统步数;或,判断手机当天是否有重启以及重启次数,在本地存储有当天的数据记录,并且手机当天首次重启时,重置补偿步数为系统步数;或,判断手机当天是否有重启以及重启次数,在本地存储有当天的数据记录,并且手机当天再次重启时,重置累计步数为上一次累计步数与上一次补偿步数的和,补偿步数为系统步数;S3、输出当前的运动步数=累计步数-基准步数+补偿步数。作为优选,所述计步传感器为Android系统的TYPE_STEP_COUNTER计步传感器。作为优选,所述初始化数据记录,还包括:初始化所述数据记录时间为当前手机系统时间,所述开机时间为手机最近一次开机时间,所述重启标志位为false。作为优选,所述判断手机当天是否有重启以及重启次数,包括:当重启标志位为false时,判断手机最近一次开机时间是否为当天,若手机最近一次开机时间为当天,并且手机最近一次开机时间大于本地存储的开机时间,则手机当天有首次重启;若手机最近一次开机时间不是当天,则手机当天未重启;当重启标志位为true时,判断手机最近一次开机时间是否为当天,并且判断手机最近一次开机时间是否大于本地存储的开机时间,若大于本地存储的开机时间,则手机当天有再次重启;若不大于本地存储的开机时间,则手机当天无再次重启。作为优选,所述在本地存储有当天的数据记录,并且手机当天未重启时,重置累计步数为系统步数,包括:保持基准步数等于上一次基准步数、补偿步数等于零、开机时间为手机最近一次开机时间、重启标志位为false,重置累计步数为系统步数、数据记录时间为当前手机系统时间。作为优选,所述在本地存储有当天的数据记录,并且手机当天首次重启时,重置补偿步数为系统步数,包括:保持基准步数等于上一次基准步数、累计步数等于上一次累计步数,重置补偿步数为系统步数、数据记录时间为当前手机系统时间、开机时间为手机最近一次开机时间、以及重启标志位为true。作为优选,所述在本地存储有当天的数据记录,并且手机当天再次重启时,重置累计步数为上一次累计步数与上一次补偿步数的和,补偿步数为系统步数,包括:保持基准步数等于上一次基准步数、重启标志位为true,重置累计步数等于上一次累计步数与上一次补偿步数的和、补偿步数为系统步数、数据记录时间为当前手机系统时间、开机时间为手机最近一次开机时间。本专利技术的基于Android计步传感器的计步方法采用系统级别的计步传感器,以硬件实现,不会产生额外的功耗,且该计步传感器的计步功能是持续性的,不会因为应用程序未运行而停止记步,在此基础上,配合应用程序中对计步传感器输出的系统累计步数进行存储以及处理,使得本专利技术的计步方法具有较高的准确性,能让计步结果更加接近手机系统的步数。附图说明图1为本专利技术基于Android计步传感器的计步方法流程图。具体实施方式下面结合附图和实施例对本专利技术技术方案做进一步详细说明,以下实施例不构成对本专利技术的限定。本实施例提供一种基于Android计步传感器的计步方法,适用于安卓手机的应用,首先,在安卓手机的系统中定义的计步传感器有两类:第一类,TYPE_STEP_COUNTER,计步记录器。它记录的是手机开机以来,系统历史步数的累加值。手机一旦关机重启之后,这个累加值会清0。该传感器以硬件实现,功耗低,即便应用程序不处于运行模式,也能在后台一直累计步数。当应用程序注册该传感器后,会接收到来自该传感器的累计步数;第二类,TYPE_STEP_DETECTOR,计步监测器。要通过这个来实现步数监测,需要应用程序注册该传感器,并保持运行状态。此时,每当监测到有步数行为,该传感器就会给应用程序一个通知事件,代表1个步数,所有通知事件次数的累加视为总运动步数。但一旦手机进入休眠模式,或者该传感器不处于运行状态,就无法监听到该通知事件。由此可见,为了避免手机进入休眠模式就无法进行计步,本实施例的计步传感器采用Android系统的TYPE_STEP_COUNTER计步传感器,且由该计步传感器提供系统步数。在本计步方法中,通过在本地存储单元中记录与计步相关的字段内容,该字段内容包括:(1)基准步数:用作每日步数起始参考值;(2)累计步数:记录手机系统当前的累计步数;(3)补偿步数:记录手机系统重启后的累计步数;(4)数据记录时间:记录该条记录的同步时间;(5)开机时间:记录手机的开机时间;(6)重启标志位:标记当天手机是否重启。本实施例中所指的当天为0点至24点之间的时间跨度。如图1所示,本实施例的基于Android计步传感器的计步方法,具体包括:S1、打开应用,接收计步传感器提供的系统步数,所述系统步数等于手机开机以来步数的累加值。在计步方法运行前,首先要注册该计步传感器,对计步传感器的事件进行监听,从监听到的计步传感器的事件中获得系统步数。且为了长时间跟踪步数,保证应用程序的步数与系统步数的一致性,应用程序需要保留该计步传感器的注册。注册该传感器,当应用打开后,计步传感器的步数变化能够实时被监听事件捕获,从而实时获取计步传感器累计的系统步数。S2、根据应用运行状态,初始化或重置本地存储的数据记录。S3、根据本地存储的数据记录,输出当前的运动步数。所述根据应用运行状态,初始化或重置本地存储的数据记录,包括:本文档来自技高网...

【技术保护点】
1.一种基于Android计步传感器的计步方法,适用于安卓手机的应用,其特征在于,所述基于Android计步传感器的计步方法,包括:S1、打开应用,接收计步传感器提供的系统步数,所述系统步数等于手机开机以来步数的累加值;S2、通过如下步骤,初始化或重置本地存储的数据记录:在本地存储无数据记录或数据记录不是当天的数据记录时,初始化数据记录,初始化的数据记录包括:基准步数、累计步数、补偿步数、数据记录时间、开机时间、重启标志位,初始化时基准步数和累计步数等于系统步数,补偿步数等于零;或,判断手机当天是否有重启以及重启次数,在本地存储有当天的数据记录,并且手机当天未重启时,重置累计步数为系统步数;或,判断手机当天是否有重启以及重启次数,在本地存储有当天的数据记录,并且手机当天首次重启时,重置补偿步数为系统步数;或,判断手机当天是否有重启以及重启次数,在本地存储有当天的数据记录,并且手机当天再次重启时,重置累计步数为上一次累计步数与上一次补偿步数的和,补偿步数为系统步数;S3、输出当前的运动步数=累计步数‑基准步数+补偿步数。

【技术特征摘要】
1.一种基于Android计步传感器的计步方法,适用于安卓手机的应用,其特征在于,所述基于Android计步传感器的计步方法,包括:S1、打开应用,接收计步传感器提供的系统步数,所述系统步数等于手机开机以来步数的累加值;S2、通过如下步骤,初始化或重置本地存储的数据记录:在本地存储无数据记录或数据记录不是当天的数据记录时,初始化数据记录,初始化的数据记录包括:基准步数、累计步数、补偿步数、数据记录时间、开机时间、重启标志位,初始化时基准步数和累计步数等于系统步数,补偿步数等于零;或,判断手机当天是否有重启以及重启次数,在本地存储有当天的数据记录,并且手机当天未重启时,重置累计步数为系统步数;或,判断手机当天是否有重启以及重启次数,在本地存储有当天的数据记录,并且手机当天首次重启时,重置补偿步数为系统步数;或,判断手机当天是否有重启以及重启次数,在本地存储有当天的数据记录,并且手机当天再次重启时,重置累计步数为上一次累计步数与上一次补偿步数的和,补偿步数为系统步数;S3、输出当前的运动步数=累计步数-基准步数+补偿步数。2.如权利要求1所述的基于Android计步传感器的计步方法,其特征在于,所述计步传感器为Android系统的TYPE_STEP_COUNTER计步传感器。3.如权利要求1所述的基于Android计步传感器的计步方法,其特征在于,所述初始化数据记录,还包括:初始化所述数据记录时间为当前手机系统时间,所述开机时间为手机最近一次开机时间,所述重启标志位为false。4.如权利要求1所述的基于Android计步传感器的计步方法,其特征在于,所述判断手机当天是否有重启以及重启次数,包括:当重启标志位为false时,判...

【专利技术属性】
技术研发人员:毛晓飞
申请(专利权)人:上海亿保健康管理有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1