一种Android系统标准时间的确定方法及装置与流程

文档序号:11548833阅读:412来源:国知局
一种Android系统标准时间的确定方法及装置与流程

本发明涉及软件通信技术领域,尤其涉及一种android系统标准时间的确定方法及装置。



背景技术:

android系统的api可以提供系统时间给应用开发人员在开发防沉迷系统等各类应用时使用,然而由于上述系统时间可以由用户随意进行修改,无法保证准确性,在应用的开发与使用过程中可能产生严重的错误。

针对上述问题,目前主要通过对android系统的系统时间进行校准来解决。常见的系统时间校准方法有利用网络服务器同步系统时间、通过gps定位服务进行时间校准和设置外部定时器进行时间校准等多种方法。在上述方法中,利用网络服务器同步系统时间对网络过于依赖,一旦网络状况不佳或用户自行断开网络则无法有效进行时间校准;通过gps定位服务进行时间校准过于依赖gps的信号强度,当处于室内或其它gps信号较弱的环境则无法有效进行时间校准;设置外部定时器进行时间校准需要增加外部硬件设备,提高了硬件成本和功耗,实用性差。

可见,如何为android系统的应用开发提供持续稳定的标准时间成为技术人员必须考虑的问题。



技术实现要素:

本发明实施例提供了一种android系统标准时间的确定方法及装置,旨在解决如何为android系统的应用开发提供持续稳定的标准时间的问题。

本发明实施例第一方面提供了一种android系统标准时间的确定方法,包括:

获取终端上一次开机时刻的标准时间;

根据所述上一次开机时刻的标准时间和当前时刻的终端系统开机运行时间确定所述当前时刻的终端标准时间,所述当前时刻的终端系统开机运行时间为所述终端的系统从上一次开机时刻到所述当前时刻已运行的时间。

本发明实施例第二方面提供了一种android系统标准时间的确定装置,包括:

标准时间获取模块,用于获取终端上一次开机时刻的标准时间;

第一标准时间确定模块,用于根据所述上一次开机时刻的标准时间和当前时刻的终端系统开机运行时间确定所述当前时刻的终端标准时间,所述当前时刻的终端系统开机运行时间为所述终端的系统从上一次开机时刻到所述当前时刻已运行的时间。

在本发明实施例中,获取终端上一次开机时刻的标准时间;根据所述上一次开机时刻的标准时间和当前时刻的终端系统开机运行时间确定所述当前时刻的终端标准时间,所述当前时刻的终端系统开机运行时间为所述终端的系统从上一次开机时刻到所述当前时刻已运行的时间。在上述过程中,终端标准时间的确定与可被用户修改的android系统时间无关,而相关的android系统的开机运行时间既不能被用户修改,也不会随着android系统时间的变化而变化。因此,采用本发明实施例提供的技术方案能给android系统的应用开发提供持续稳定的标准时间。

附图说明

图1为本发明实施例中一种android系统标准时间的确定方法第一个实施例的流程图;

图2a为本发明实施例中一种android系统标准时间的确定方法第二个实施例的流程图;

图2b为图2a所述实施例的时间轴的示意图;

图3a为本发明实施例中一种android系统标准时间的确定方法第三个实施例的流程图;

图3b为图3a所述实施例的时间轴的示意图;

图4为本发明实施例中一种android系统标准时间的确定装置第一个实施例的结构图;

图5为本发明实施例中一种android系统标准时间的确定装置第二个实施例的结构图;

图6为本发明实施例中一种android系统标准时间的确定装置第三个实施例的结构图。

具体实施方式

本发明实施例提供了一种android系统标准时间的确定方法与装置,旨在解决如何为android系统的应用开发提供持续稳定的标准时间的问题。

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

请参阅图1,本发明实施例中一种android系统标准时间的确定方法的第一个实施例包括:

101、获取终端上一次开机时刻的标准时间;

所述终端可以是使用android系统的各类智能终端,包括智能手机和平板电脑等。所述上一次开机时刻指终端最近一次开机时所处的时间点,所述标准时间指可被认定为标准的时间,比如北京时间。获取终端上一次开机时刻的标准时间的方法可以有多种,比如在开机时刻自动通过网络获取,根据某一历史指定时刻的标准时间进行推断而获取等。

102、根据所述上一次开机时刻的标准时间和当前时刻的终端系统开机运行时间确定所述当前时刻的终端标准时间。

在获取终端上一次开机时刻的标准时间后,可以根据所述上一次开机时刻的标准时间和当前时刻的终端系统开机运行时间确定所述当前时刻的终端标准时间。android系统的api可以提供两个重要时间,第一个是系统时间,即最常用的可以由用户自行修改的时间,比如电脑右下方显示的时间和手机上显示的时间;第二个是系统开机运行时间,记录系统从开机到当前时刻所运行的时间,这个时间不会因系统时间的改变而改变,不能被用户修改,当系统关机重启后置零重新开始计时。所述当前时刻的终端系统开机运行时间为所述终端的系统从上一次开机时刻到所述当前时刻已运行的时间,将所述上一次开机时刻的标准时间加上所述当前时刻的终端系统开机运行时间即可得到当前时刻的终端标准时间。假如终端上一次开机时刻的标准时间是2017年2月22号的11:00:00,当前时刻的系统开机运行时间为3:03:20,则可以确定当前时刻的终端标准时间是2017年2月22号的14:03:20。

进一步的,在步骤101之前,还可以包括:

当所述终端开机时,判断所述终端的系统是否初次运行;

若所述终端的系统是初次运行,则将当前时刻的终端系统时间确定为所述当前时刻的终端标准时间;

若所述终端的系统不是初次运行,则执行步骤101。

在终端开机时,可以判断所述终端的系统是否初次运行,如果所述终端的系统是初次运行,则可以将当前时刻的终端系统时间确定为所述当前时刻的终端标准时间,否则执行步骤101。假如终端刚出厂,android系统是第一次运行,则终端从未与服务器同步过时间,此时由于无法确定终端上一次开机时刻的标准时间,则无法根据上一次开机时刻的标准时间和当前时刻的终端系统开机运行时间确定所述当前时刻的终端标准时间。针对此种情况,可以直接将当前时刻的终端系统时间确定为所述当前时刻的终端标准时间,保证算法的正常执行。

显然,在终端开机时先判断终端的系统是否初次运行能进一步提高所述android系统标准时间的确定方法的实用性,使之适应各种状况下的实施。

在本发明实施例中,获取终端上一次开机时刻的标准时间;根据所述上一次开机时刻的标准时间和当前时刻的终端系统开机运行时间确定所述当前时刻的终端标准时间,所述当前时刻的终端系统开机运行时间为所述终端的系统从上一次开机时刻到所述当前时刻已运行的时间。在上述过程中,终端标准时间的确定与可被用户修改的android系统时间无关,而相关的android系统的开机运行时间既不能被用户修改,也不会随着android系统时间的变化而变化。因此,采用本发明实施例提供的技术方案能给android系统的应用开发提供持续稳定的标准时间。

请参阅图2a,本发明实施例中一种android系统标准时间的确定方法的第二个实施例包括:

201、在上一次开机时刻之后,获取终端上最近一次确定的标准时间,以及所述最近一次确定的标准时间对应的历史指定时刻;

在上一次开机时刻之后,获取终端上最近一次确定的标准时间,以及所述最近一次确定的标准时间对应的历史指定时刻。可以通过网络获取服务器的时间作为标准时间,每获取一次标准时间称作一次时间校准。在所述上一次开机时刻之后可能获取到一次或多次标准时间,所述最近一次确定的标准时间指与当前时刻相距最近的那次时间校准获取到的标准时间,所述历史指定时刻指获取到所述最近一次确定的标准时间时所对应的时间点。假如系统在11:00:00(系统时间)开机,当前时刻为14:00:00(系统时间),在11:00:00(系统时间)至14:00:00(系统时间)间共执行过三次时间校准,其中最近一次发生在13:30:00(系统时间),获取到的标准时间是13:30:12,则获取终端上最近一次确定的标准时间即13:30:12。

进一步的,为了进一步提高最终确定的当前时刻终端标准时间的准确性与稳定性,所述方法还可以包括:

判断终端系统时间是否被修改,或者是否到达预设的校准时间;

若所述终端系统时间被修改,或者到达预设的校准时间,则获取并记录当前时刻的所述终端上确定的标准时间。

虽然理论上来说本方法只需进行一次时间校准,但为了进一步提高最终确定的当前时刻终端标准时间的准确性与稳定性,可以设置一个时间校准条件,当满足所述时间校准条件时触发一次时间校准。所述时间校准条件可以是每次系统开机时,终端系统时间被修改时或者到达预设的校准时间点等。

202、根据所述历史指定时刻的终端系统开机运行时间和所述最近一次确定的标准时间确定所述上一次开机时刻的标准时间;

在获取终端上最近一次确定的标准时间,以及所述最近一次确定的标准时间对应的历史指定时刻之后,根据所述历史指定时刻的终端系统开机运行时间和所述最近一次确定的标准时间确定所述上一次开机时刻的标准时间。将所述最近一次确定的标准时间减去所述历史指定时刻的终端系统开机运行时间即可得到所述上一次开机时刻的标准时间,假如最近一次确定的标准时间是13:30:12,所述历史指定时刻的终端系统开机运行时间是2:30:12,则可以确定所述上一次开机时刻的标准时间为11:00:00。

203、根据所述上一次开机时刻的标准时间和当前时刻的终端系统开机运行时间确定所述当前时刻的终端标准时间。

步骤203与步骤102相同,可参考步骤102的相关说明。

为便于理解上述步骤201至203,请参阅图2b所示的时间轴的示意图,其中t轴代表时间轴,a为上一次开机时刻,b为最近一次确定的标准时间对应的历史指定时刻,c为当前时刻,ton为上一次开机时刻的标准时间,tx为某次确定的标准时间,ts为终端上最近一次确定的标准时间,tn为当前时刻的终端标准时间。首先,在时刻a之后,获取ts(假设为13:30:12)以及ts对应的历史指定时刻b;然后根据时刻b的终端系统开机运行时间d1(假设为2:30:12)和ts确定时刻a的标准时间ton,从时间轴上可以明显看出ton=ts-d1,即可以确定ton为11:00:00;最后就可以根据ton和当前时刻c的终端系统开机运行时间d2(假设为3:30:00)确定所述当前时刻c的终端标准时间tn,从时间轴上可以明显看出tn=ton+d2,即可以确定tn为14:30:00。

在本发明实施例中,在上一次开机时刻之后,获取终端上最近一次确定的标准时间,以及所述最近一次确定的标准时间对应的历史指定时刻;根据所述历史指定时刻的终端系统开机运行时间和所述最近一次确定的标准时间确定所述上一次开机时刻的标准时间;根据所述上一次开机时刻的标准时间和当前时刻的终端系统开机运行时间确定所述当前时刻的终端标准时间,所述当前时刻的终端系统开机运行时间为所述终端的系统从上一次开机时刻到所述当前时刻已运行的时间。在上述过程中,终端标准时间的确定与可被用户修改的android系统时间无关,而相关的android系统的开机运行时间既不能被用户修改,也不会随着android系统时间的变化而变化。另外,通过设置时间校准条件进行多次的时间校准,能进一步提高最终确定的当前时刻终端标准时间的准确性与稳定性。因此,采用本发明实施例提供的技术方案能给android系统的应用开发提供持续稳定的标准时间。

请参阅图3a,本发明实施例中一种android系统标准时间的确定方法的第三个实施例包括:

301、获取所述终端上一次关机时刻的标准时间;

所述上一次关机时刻指距离当前时刻最近的那次终端系统关机所处的时刻,获取所述终端上一次关机时刻的标准时间的方法可以有很多,比如在所述上一次关机时刻通过网络服务器获取当时的标准时间;根据所述上一次关机时刻之前某历史时刻获取到的标准时间、所述历史时刻的终端系统开机运行时间和所述上一次关机时刻的系统开机运行时间确定等。

302、获取所述上一次关机时刻的终端系统时间和所述上一次开机时刻的终端系统时间;

在所述上一次关机时刻和所述上一次开机时刻都获取相应的终端系统时间,所述上一次关机时刻至所述上一次开机时刻的时间称作系统的关机休眠时间。

303、根据所述上一次关机时刻的终端系统时间和所述上一次开机时刻的终端系统时间确定所述上一次关机时刻距离所述上一次开机时刻的时长;

在获取所述上一次关机时刻的终端系统时间和所述上一次开机时刻的终端系统时间之后,根据所述上一次关机时刻的终端系统时间和所述上一次开机时刻的终端系统时间确定所述上一次关机时刻距离所述上一次开机时刻的时长。由于在所述上一次关机时刻至所述上一次开机时刻这段时间内终端系统处于关机状态,因此这段时间内的终端系统时间无法被修改,只需将所述上一次开机时刻的终端系统时间减去所述上一次关机时刻的终端系统时间即可准确获得所述上一次关机时刻距离所述上一次开机时刻的时长,即系统的关机休眠时间。

304、根据所述上一次关机时刻的标准时间和所述上一次关机时刻距离所述上一次开机时刻的时长确定所述上一次开机时刻的标准时间;

在根据所述上一次关机时刻的终端系统时间和所述上一次开机时刻的终端系统时间确定所述上一次关机时刻距离所述上一次开机时刻的时长之后,就可以根据所述上一次关机时刻的标准时间和所述上一次关机时刻距离所述上一次开机时刻的时长确定所述上一次开机时刻的标准时间。假如终端系统在2017年2月21号的23:30:00关机,而所述上一次关机时刻的终端系统时间为20:30:00(用户私自修改或别的原因导致其与标准时间不符),所述上一次开机时刻的终端系统时间为2017年2月22号的6:30:00,则获取到的所述上一次关机时刻的标准时间为2017年2月21号的23:30:00,所述上一次关机时刻距离所述上一次开机时刻的时长为所述两个系统时间之差即10:00:00,可得到所述上一次开机时刻的标准时间为2017年2月21号的23:30:00的10小时之后,即2017年2月22号的9:30:00。

305、根据所述上一次开机时刻的标准时间和当前时刻的终端系统开机运行时间确定所述当前时刻的终端标准时间。

步骤305与步骤102相同,可参考步骤102的相关说明。

为便于理解上述步骤301至305,请参阅图3b所示的时间轴的示意图,其中t轴代表时间轴,a为上一次关机时刻,b为上一次开机时刻,c为当前时刻,toff为上一次关机时刻的标准时间,soff为上一次关机时刻的终端系统时间,ton为上一次开机时刻的标准时间,son为上一次开机时刻的终端系统时间,tn为当前时刻的终端标准时间。首先,获取所述终端上一次关机时刻的标准时间toff(假设为2017年2月21号的23:30:00);然后,获取所述上一次关机时刻a的终端系统时间soff(假设为2017年2月21号的20:30:00)和所述上一次开机时刻b的终端系统时间son(假设为2017年2月22号的6:30:00);接着,根据所述上一次关机时刻a的终端系统时间soff和所述上一次开机时刻b的终端系统时间son确定所述上一次关机时刻距离所述上一次开机时刻的时长(即关机休眠时间l),由于系统关机时无法修改系统时间,从时间轴上明显可以看出l=son-soff,即l为10:00:00;然后,根据toff和l确定所述上一次开机时刻的标准时间ton,从时间轴上明显可以看出ton=toff+l,即2017年2月22号的9:30:00;最后,根据ton和当前时刻的终端系统开机运行时间d(假设为6:00:00)确定所述当前时刻的终端标准时间tn,从时间轴上明显可以看出tn=ton+d,即可得到tn为2017年2月22号的15:30:00。

在本发明实施例中,获取到的所述终端上一次关机时刻的标准时间、所述上一次关机时刻的终端系统时间和所述上一次开机时刻的终端系统时间可以在数据库中保存,方便后续的调用。

另外,本发明实施例可以视作图2所示实施例的后续执行过程。假如在步骤203之后的某个时刻终端系统关机,则在所述系统关机的时刻可以根据步骤203的方法确定所述系统关机时刻的标准时间并保存在数据库中,接下来所述保存在数据库中的系统关机时刻的标准时间就可以直接作为终端系统重新开机执行步骤301时所需的标准时间。可见,在本发明实施例中,只要在当前时刻之前的某个历史时刻获取过一次的标准时间,则在后续过程中无论终端系统出现过多少次开关机操作,或者终端的系统时间被多次随意修改,都能方便地获得准确且稳定的终端标准时间。显然,由于最少仅需通过网络获取一次的标准时间,终端对网络的依赖程度极小。

在本发明实施例中,获取所述终端上一次关机时刻的标准时间;获取所述上一次关机时刻的终端系统时间和所述上一次开机时刻的终端系统时间;根据所述上一次关机时刻的终端系统时间和所述上一次开机时刻的终端系统时间确定所述上一次关机时刻距离所述上一次开机时刻的时长;根据所述上一次关机时刻的标准时间和所述上一次关机时刻距离所述上一次开机时刻的时长确定所述上一次开机时刻的标准时间;根据所述上一次开机时刻的标准时间和当前时刻的终端系统开机运行时间确定所述当前时刻的终端标准时间,所述当前时刻的终端系统开机运行时间为所述终端的系统从上一次开机时刻到所述当前时刻已运行的时间。在上述过程中,利用终端系统时间在终端系统关机休眠时无法被修改的特性以及每次系统关机时都将当时的标准时间保存到数据库中,终端系统在关机再开机时不必重新进行时间校准就能够确定当前时刻的终端标准时间。终端标准时间的确定与可被用户修改的android系统时间无关,而相关的android系统的开机运行时间既不能被用户修改,也不会随着android系统时间的变化而变化。因此,采用本发明实施例提供的技术方案能给android系统的应用开发提供持续稳定的标准时间。

进一步的,为了方便操作,可以设置一个校准标志位,终端系统开机时自动将所述校准标志位复位,在系统执行时间校准后自动将所述校准标志位置位。在终端系统开机后,判断所述校准标志位的状态:若所述校准标志位的状态是复位状态,则代表本次系统开机后尚未进行时间校准的操作,此时可按照图3所示实施例的方法确定当前时刻的终端标准时间;若所述校准标志位的状态是置位状态,则代表本次系统开机后已经进行过时间校准的操作,此时可按照图2所示实施例的方法确定当前时刻的终端标准时间。

上面主要描述了一种android系统标准时间的确定方法,下面将对一种android系统标准时间的确定装置进行详细描述。

请参阅图4,本发明实施例中一种android系统标准时间的确定装置的第一个实施例包括:

标准时间获取模块401,用于获取终端上一次开机时刻的标准时间;

第一标准时间确定模块402,用于根据所述上一次开机时刻的标准时间和当前时刻的终端系统开机运行时间确定所述当前时刻的终端标准时间,所述当前时刻的终端系统开机运行时间为所述终端的系统从上一次开机时刻到所述当前时刻已运行的时间。

进一步的,所述android系统标准时间的确定装置还可以包括:

第二判断模块403,用于当所述终端开机时,判断所述终端的系统是否初次运行;

第二标准时间确定模块404,用于若所述终端的系统是初次运行,则将当前时刻的终端系统时间确定为所述当前时刻的终端标准时间。

请参阅图5,本发明实施例中一种android系统标准时间的确定装置的第二个实施例包括:

标准时间获取模块501,用于获取终端上一次开机时刻的标准时间;

第一标准时间确定模块502,用于根据所述上一次开机时刻的标准时间和当前时刻的终端系统开机运行时间确定所述当前时刻的终端标准时间,所述当前时刻的终端系统开机运行时间为所述终端的系统从上一次开机时刻到所述当前时刻已运行的时间;

所述标准时间获取模块501包括:

第一获取单元5011,用于在所述上一次开机时刻之后,获取终端上最近一次确定的标准时间,以及所述最近一次确定的标准时间对应的历史指定时刻;

第一确定单元5012,用于根据所述历史指定时刻的终端系统开机运行时间和所述最近一次确定的标准时间确定所述上一次开机时刻的标准时间。

进一步的,所述android系统标准时间的确定装置还可以包括:

第二判断模块503,用于当所述终端开机时,判断所述终端的系统是否初次运行;

第二标准时间确定模块504,用于若所述终端的系统是初次运行,则将当前时刻的终端系统时间确定为所述当前时刻的终端标准时间;

第一判断模块505,用于判断终端系统时间是否被修改,或者是否到达预设的校准时间;

记录模块506,用于若所述终端系统时间被修改,或者到达预设的校准时间,则获取并记录当前时刻的所述终端上确定的标准时间。

请参阅图6,本发明实施例中一种android系统标准时间的确定装置的第三个实施例包括:

标准时间获取模块601,用于获取终端上一次开机时刻的标准时间;

第一标准时间确定模块602,用于根据所述上一次开机时刻的标准时间和当前时刻的终端系统开机运行时间确定所述当前时刻的终端标准时间,所述当前时刻的终端系统开机运行时间为所述终端的系统从上一次开机时刻到所述当前时刻已运行的时间;

所述标准时间获取模块601包括:

第二获取单元6011,用于获取所述终端上一次关机时刻的标准时间;

第三获取单元6012,用于获取所述上一次关机时刻的终端系统时间和所述上一次开机时刻的终端系统时间;

第二确定单元6013,用于根据所述上一次关机时刻的终端系统时间和所述上一次开机时刻的终端系统时间确定所述上一次关机时刻距离所述上一次开机时刻的时长;

第三确定单元6014,用于根据所述上一次关机时刻的标准时间和所述上一次关机时刻距离所述上一次开机时刻的时长确定所述上一次开机时刻的标准时间。

进一步的,所述android系统标准时间的确定装置还可以包括:

第二判断模块603,用于当所述终端开机时,判断所述终端的系统是否初次运行;

第二标准时间确定模块604,用于若所述终端的系统是初次运行,则将当前时刻的终端系统时间确定为所述当前时刻的终端标准时间。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1