CN116755977B - 运动监测方法、电子设备及计算机可读存储介质 - Google Patents
运动监测方法、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN116755977B CN116755977B CN202310990839.3A CN202310990839A CN116755977B CN 116755977 B CN116755977 B CN 116755977B CN 202310990839 A CN202310990839 A CN 202310990839A CN 116755977 B CN116755977 B CN 116755977B
- Authority
- CN
- China
- Prior art keywords
- service
- pedometer
- sensor
- application
- application program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012544 monitoring process Methods 0.000 title claims abstract description 161
- 230000033001 locomotion Effects 0.000 title claims abstract description 157
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000004590 computer program Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 12
- 230000006870 function Effects 0.000 abstract description 28
- 238000012423 maintenance Methods 0.000 description 23
- 230000001133 acceleration Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 18
- 230000008859 change Effects 0.000 description 16
- 230000008569 process Effects 0.000 description 12
- 239000003795 chemical substances by application Substances 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 10
- 230000005236 sound signal Effects 0.000 description 9
- 238000001514 detection method Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000001174 ascending effect Effects 0.000 description 3
- 230000004927 fusion Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000000386 athletic effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000000284 resting effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000001976 improved effect Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003238 somatosensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C22/00—Measuring distance traversed on the ground by vehicles, persons, animals or other moving solid bodies, e.g. using odometers, using pedometers
- G01C22/006—Pedometers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Mathematical Physics (AREA)
- Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)
- Measurement Of Distances Traversed On The Ground (AREA)
Abstract
本申请提供运动监测方法、电子设备及计算机可读存储介质。在该方法中,电子设备中的底层传感器采集到传感器数据后,电子设备可以通过拓展计步器服务基于传感器数据确定用户运动的步数、海拔高度、运动状态等运动数据。电子设备可以将上述运动数据发送给监听拓展计步器服务的多个应用程序,这样不同的应用程序可以基于多样化的运动数据为用户提供丰富的功能。
Description
技术领域
本申请涉及终端领域,尤其涉及运动监测方法、电子设备及计算机可读存储介质。
背景技术
电子设备中标准计步器服务可以监听底层传感器上报的传感器数据,并对传感器数据进行处理得到用户行走或奔跑的步数。应用程序向标准计步器服务注册监听后可以获取标准计步器服务上报的步数,并基于上述步数为用户提供多种功能。但是标准计步器服务仅能提供电子设备重启后用户的步数,功能较单一。
发明内容
本申请提供运动监测方法、电子设备及计算机可读存储介质。电子设备中的拓展计步器服务可以基于底层传感器上报的传感器数据计算用户移动的步数、阶梯数、海拔高度或是用户的运动状态等多种类型的运动数据。拓展计步器服务可以将上述多种类型的运动数据上报给向其注册监听的多个应用程序,这样应用程序可以基于多样化的运动数据为用户提供丰富的功能。
第一方面,本申请提供了一种运动监测方法,该方法应用于电子设备,该电子设备包括第一传感器,该电子设备还包括多个应用程序和第一计步器服务,其中多个应用程序包括第一应用程序和第二应用程序,该方法包括:电子设备向监听第一计步器服务的第一应用程序、第二应用程序发送第一运动数据,该第一运动数据是基于第一传感器在第一时间段采集到的数据确定的,第一计步器服务通过第一数据通道获得第一传感器采集到的数据;电子设备通过第一计步器服务接收到第一应用程序的第一指令,停止第一应用程序对第一计步器服务的监听;电子设备判断是否存在监听第一计步器服务的应用程序,若不存在监听第一计步器服务的应用程序,则电子设备关闭第一计步器服务与第一传感器之间的第一数据通道。
其中,第一计步器服务也可以称为拓展计步器服务,电子设备可以向监听第一计步器服务的第一应用程序和第二应用程序发送第一运动数据。第一传感器可以包含一个或多个硬件传感器和软件传感器。上述软件传感器是指集成多个硬件传感器采集的数据,并对多个硬件传感器采集的数据进行融合得到一种或多种类型数据的软件模块。第一传感器可以通过第一数据通道将在第一时间段采集到的数据上报给第一计步器服务,进而第一计步器服务可以基于上述第一传感器采集到的数据计算第一运动数据。其中,第一数据通道是第一计步器服务与第一传感器之间的数据通道,该第一数据通道是虚拟的通道。当该第一数据通道存在时,第一传感器采集到的数据可以通过该第一数据通道传输到第一计步器服务。电子设备通过第一计步器服务接收到第一应用程序的第一指令时,会停止第一应用程序对第一计步器服务的监听。其中,监听第一计步器服务的应用程序能够在第一数据通道存在的情况下接收第一计步器服务发送的第一运动数据。第一指令用于应用程序向第一计步器服务停止监听,并关闭第一计步器服务与第一传感器之间的第一数据通道。电子设备停止第一应用程序对第一计步器服务的监听后,第一计步器服务计算出的运动数据就不再上报给第一应用程序。电子设备在接收到第一指令后会判断是否存在监听第一计步器服务的应用程序,若不存在监听第一计步器服务的应用程序则关闭第一数据通道。
结合第一方面,在一些实施例中,电子设备判断是否存在监听第一计步器服务的应用程序,具体包括:电子设备通过第一队列判断是否存在监听第一计步器服务的应用程序,若第一队列为空,则不存在监听第一计步器服务的应用程序;若第一队列不为空,则存在监听第一计步器服务的应用程序;其中第一队列用于存储向第一计步器服务发送第二指令的应用程序的标识。
结合第一方面,在一些实施例中,电子设备通过第一计步器服务接收到第一应用程序的第一指令时,该方法还包括:电子设备将第一应用程序的标识从第一队列移除。
其中,第一队列也可以称为应用程序维护队列。第一队列可以存储向第一计步器服务注册监听的应用程序的标识。当应用程序停止监听第一计步器服务时,电子设备可以将该应用程序的标识从第一队列中移除。这里第一队列并不局限于数据结构中的队列,第一队列在存储应用程序的标识时可以采用队列以外的数据结构。电子设备可以通过第一队列是否为空确定是否存在监听第一计步器服务的应用程序。当第一计步器服务接收到第一应用程序的第一指令时,电子设备会将第一应用程序的标识从第一队列中移除。若第一应用程序的标识从第一队列中移除后第一队列为空,则表明不存在监听第一计步器服务的应用程序,这样电子设备就可以关闭第一数据通道,也即是说取消第一计步器服务对第一传感器的数据的监听;若第一应用程序的标识从第一队列中移除后第一队列不为空,则表明仍然存在监听第一计步器服务的应用程序,电子设备可以暂不关闭第一数据通道,这样仍在监听第一计步器服务的应用程序仍然可以获取到第一计步器服务上报的新的运动数据。可选的,应用程序的标识为应用程序的包名。
也即是说,电子设备中的多个应用程序可以注册监听第一计步器服务,这样,多个应用程序都可以获取第一计步器服务上报的运动数据,进而为用户提供多种功能。当有应用程序发送第一指令试图关闭第一计步器服务与第一传感器之间的第一数据通道时,电子设备可以先判断是否还存在监听第一计步器服务的应用程序。只有在不存在监听第一计步器服务的应用程序的情况下,第一计步器服务才会响应于第一指令关闭第一数据通道,这样就可以避免第一计步器服务提前关闭第一数据通道使得第一传感器不把采集到的数据上报给第一计步器服务,进而导致第一计步器服务无法获得新的传感器数据。
结合第一方面,在一些实施例中第一数据通道是第一计步器服务响应于多个应用程序中的一个应用程序发送的第二指令建立的。
其中,第二指令可以用于指示第一计步器服务建立与第一传感器之间的第一数据通道。应用程序在注册监听第一计步器服务时,都会发送第二指令指示第一计步器服务建立第一数据通道。第一计步器服务需要向下层服务注册监听以建立第一数据通道。在第一数据通道已经建立好的情况下,第一计步器服务不用多次向下层服务或接口注册监听,这样可以减少资源的浪费。
结合第一方面,在一些实施例中,第一时间段的起点是第一传感器第K次向第一计步器服务上报数据的时间,第一时间段的终点是第一传感器第K+1次向第一计步器服务上报数据的时间,K为正整数。
结合第一方面,在一些实施例中,上报包括以下一项或多项:第一传感器检测到运动时上报、电子设备在亮屏时第一传感器每隔第一时长上报、电子设备在灭屏时每隔第二时长上报。
其中,第一传感器可以在检测到运动时将数据上报给第一计步器服务。上述第一传感器检测到运动可以是指第一传感器中的一个或多个传感器检测到数据变化超过预设值。或者第一传感器还可以根据电子设备显示屏的亮屏或灭屏状态每隔一定的时长上报采集到的数据。第一计步器服务每次上报的运动数据是基于第一传感器在相邻两次上报时间点之间的时间段内采集到的数据确定的。例如,假设第一传感器每隔30分钟上报一次,在0时30分第一传感器进行了一次上报,在01时00分时第一传感器会上报在00时30分到01时00分之间采集到的数据,第一计步器服务会基于00时30分到01时00分第一传感器采集到的数据计算用户在00时30分到01时00分的运动数据,并将该运动数据上报给应用程序。
结合第一方面,在一些实施例中,电子设备还包括第二传感器,该电子设备还包括第二计步器服务,该方法还包括:电子设备启动第二计步器服务;电子设备通过第二计步器服务确定第二运动数据,该第二运动数据是基于第二传感器在第二时间段采集到的传感器数据得到的。
其中,第二计步器服务也可以称为标准计步器服务,第一传感器中包含的多个传感器可以与第二传感器包含的多个传感器重叠或部分重叠。电子设备可以基于第二传感器采集到的数据计算得到第二运动数据。上述第二时间段的起点可以是电子设备开启的时间,第二时间段的终点可以是第二传感器向第二计步器服务上报数据的时间。第二计步器服务可以在电子设备启动时就建立从第二计步器服务到第二传感器的数据通道,这样,第二计步器服务可以自电子设备启动就获取第二传感器采集的数据,并基于第二传感器采集的数据计算第二运动数据。
其中,第一运动数据包括以下一项或多项:步数、高度、阶梯数和运动状态,第二运动数据包括步数。上述运动状态可以包括但不限于:静止状态、跑步状态、上阶梯状态、下阶梯状态。
第一传感器包含的传感器可以多于第二传感器包含的传感器。可选的,第一传感器包含的传感器可以覆盖第二传感器包含的传感器。例如,第二传感器可以仅包含加速度传感器,第一传感器可以包括加速度传感器、陀螺仪传感器、气压传感器。其中第一传感器中的加速度传感器和第二传感器中的加速度传感器可以是同一个。第一计步器服务可以包含比第二计步器服务更多的算法。这样,第一计步器服务就可以基于更多类型的传感器数据进行数据融合,计算出更多类型的运动数据。由于第一计步器服务只有在应用程序发送第二指令时才会建立第一数据通道,因此第一计步器服务只能获取到第一数据通道建立后第一传感器采集到的数据,而第二计步器服务自电子设备启动时就可以获取第二传感器采集到的数据,故第二计步器服务计算出的第二运动数据的时间更久,第一计步器服务所计算出的第一运动数据的类型更多。应用程序可以基于自身需求向第一计步器服务和/或第二计步器服务注册监听从而获取不同类型或是不同时间长度的运动数据,进而为用户提供多样化的功能。
结合第一方面,在一些实施例中,电子设备包括应用层,应用程序框架层和内核层,应用层包括多个应用程序,应用程序框架层包括第一计步器服务,内核层包括第一驱动,电子设备向监听第一计步器服务的第一应用程序、第二应用程序发送第一运动数据,具体包括:第一驱动获取第一传感器采集的数据,通过第一数据通道将第一传感器采集的数据发送给应用程序框架层的第一计步器服务;第一计步器服务基于第一传感器采集的数据确定第一运动数据;第一计步器服务将第一运动数据发送给应用层的第一应用程序和第二应用程序。
结合第一方面,在一些实施例中,电子设备通过第一计步器服务接收到第一应用程序的第一指令,停止第一应用程序对第一计步器服务的监听,具体包括:框架层的第一计步器服务接收到第一应用程序的第一指令,第一计步器服务停止将第一运动数据发送给第一应用程序,并将第一应用程序的标识从第一队列移除,第一队列用于存储向第一计步器服务发送第二指令的应用程序的标识。
结合第一方面,在一些实施例中,电子设备判断是否存在监听第一计步器服务的应用程序,具体包括:第一计步器服务判断第一队列是否为空,若第一队列为空,则不存在监听第一计步器服务的应用程序;若第一队列不为空,则存在监听第一计步器服务的应用程序。
结合第一方面,在一些实施例中,电子设备还包括第二传感器,应用程序框架层还包括第二计步器服务,内核层还包括第二驱动,该方法还包括:应用程序框架层的第二计步器服务启动并建立第二数据通道;第二驱动获取第二传感器采集的数据,将第二传感器采集的数据通过第二数据通道发送给第二计步器服务;第二计步器服务基于第二传感器在第二时间段采集到的数据确定第二运动数据。其中,第一驱动和第二驱动可以是同一驱动(例如传感器驱动)下的不同接口,或者第一驱动和第二驱动也可以是不同的驱动。
第二方面,本申请提供一种电子设备,该电子设备包括存储器以及耦合于存储器的处理器;该存储器存储有计算机程序,处理器执行上述计算机程序时使得电子设备实现上述第一方面任意一项所述的方法。
第三方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序或计算机指令,前述计算机程序或计算机指令被处理器执行以实现上述第一方面任意一项所述的方法。
第四方面,本申请实施例提供一种计算机程序产品,该计算机程序产品被处理器执行时,上述第一方面任意一项所述的方法将被实现。
第五方面,本申请实施例提供一种芯片,该芯片包括处理器和存储器,其中,该存储器用于存储计算机程序或计算机指令,该处理器用于执行上述存储器中存储的计算机程序或计算机指令,使得该芯片执行上述第一方面任一项所述的方法。
上述第二方面至第五方面提供的方案,用于实现或配合实现上述第一方面中对应提供的方法,因此可以与第一方面中对应的方法达到相同或相应的有益效果,此处不再进行赘述。
附图说明
图1是本申请实施例提供的一种电子设备中标准计步器服务的架构示意图;
图2是本申请实施例提供的一种电子设备中拓展计步器服务的架构示意图;
图3是本申请实施例提供的应用程序通过标准计步器服务和拓展计步器服务获取运动数据的时序图;
图4是本申请实施例提供的多个应用程序开启第一数据通道的架构图;
图5是本申请实施例提供的第一数据通道被错误关闭的架构图;
图6是本申请实施例提供的拓展计步器服务通过应用程序维护队列控制第一数据通道的方法示例图;
图7是本申请实施例提供的一种拓展计步器服务开启和关闭第一数据通道的方法流程图;
图8是本申请实施例提供的一种拓展计步器服务关闭第一数据通道的架构图;
图9是本申请实施例提供的一种多个应用程序使用拓展计步器服务的时序图;
图10是本申请实施例提供的电子设备100的硬件结构示意图;
图11是本申请实施例的电子设备100的软件结构框图;
图12是本申请实施例提供的运动监测方法的流程图示意图。
具体实施方式
本申请以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。还应当理解,本申请中使用的术语“和/或”是指包含一个或多个所列出项目的任何或所有可能组合。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
电子设备中通常包含标准计步器服务,标准计步器服务可以监听底层服务上报的传感器数据,并根据传感器数据计算用户行走或奔跑的步数。
图1是本申请实施例提供的一种电子设备中标准计步器服务的架构示意图。
如图1所示,电子设备100中包括应用程序A、标准计步器服务、服务A和底层传感器接口。其中,标准计步器服务可以在电子设备100启动时向服务A注册监听,进而触发服务A向底层传感器接口注册监听。同时标准计步器服务可以存储步数统计值,电子设备100可以在每次启动时将步数统计值清零,或者电子设备100还可以在系统时间为00时00分时将步数统计值清零。应用程序A启动后可以向标准计步器服务注册监听。同时,应用程序A可以向标准计步器服务请求获取步数统计值,进而应用程序A可以在用户界面中显示该步数统计值。
当底层传感器捕获到电子设备100的运动状态出现变化时,底层传感器可以通过底层传感器接口将捕获到的传感器数据上报给向其注册监听的服务A。不限于底层传感器捕获到电子设备100的运动状态出现变化时上报传感器数据,底层传感器还可以在电子设备100显示屏由熄屏转变为亮屏时向服务A上报传感器数据。服务A主要起到数据透传的功能,服务A可为更上层的标准计步器服务提供统一的读取底层传感器数据的软件接口,从而达到消除不同底层传感器硬件差异的目的。服务A可以将传感器数据上报给向其注册监听的标准计步器服务。标准计步器服务可以通过计步算法(例如峰值检测算法,模式识别算法等等)对上述数据进行处理,计算出用户步行或奔跑等运动的步数。最后标准计步器服务可以将计算出的步数与其存储的步数统计值相加得到新的步数统计值,进而标准计步器服务可以向应用程序A上报步数统计值,并存储新的步数统计值。
图1所示的标准计步器服务的架构仅为示例,在一些实施例中,电子设备100中的服务A是可选的,标准计步器服务可以直接通过向底层传感器接口注册监听获取底层传感器的传感器数据。底层传感器采集到的传感器数据可以直接上报给标准计步器服务,这样标准计步器服务可以根据传感器数据计算出用户步行或奔跑等运动的步数。在另一些实施例中,标准计步器服务与底层传感器接口之间还可以包括更多软件模块(例如服务),包含更多软件模块时标准计步器服务获取底层传感器上报的传感器数据的方法可以参考上述底层传感器接口通过服务A上报传感器数据到标准计步器服务的方法,这里不再赘述。
为了便于理解以及更好地表述,本申请后续实施例以应用程序A为例进行介绍。不限于应用程序A,还可以是其它使用标准计步器服务的应用程序,其它应用程序向标准计步器服务注册监听的方法可以参考上述应用程序A向标准计步器服务注册监听的方法,这里不再赘述。
由于标准计步器服务包含的算法较少,其仅能够统计自电子设备重启后用户的步数,不能为应用程序提供其它类型的运动数据,无法满足用户了解自己更多类型运动数据的需求。为了解决上述问题,本申请实施例提供一种拓展计步器服务,拓展计步器服务可以获取多种传感器数据,对传感器数据进行融合以得到更多类型的运动数据。当电子设备100中的应用程序启动时,可以注册监听拓展计步器服务以获取拓展计步器服务计算出的运动数据。
图2是本申请实施例提供的一种电子设备100中拓展计步器服务的架构示意图。
如图2所示,应用程序A可以调用开启拓展计步器服务向下层服务监听的接口,进而拓展计步器服务向服务B注册监听,然后服务B通过注册监听底层传感器接口获取底层传感器的传感器数据。服务B用于为拓展计步器服务提供统一的读取底层传感器数据的软件接口。应用程序A可以向拓展计步器服务注册监听,当底层传感器检测到数据变化时可以通过底层传感器接口将传感器数据上报给向其注册监听的服务B,然后服务B将传感器数据上报给拓展计步器服务。拓展计步器服务可以使用一个或多个算法对传感器数据进行处理,计算出一个或多个运动数据,并将上述运动数据上报给应用程序A。运动数据用于描述用户运动时的状态,例如运动数据可以包括但不限于用户经过的阶梯阶数、海拔高度、步数等等。图2中标准计步器服务工作的方法可以参考图1中标准计步器服务工作的方法的介绍,这里不再赘述。需要说明的是,拓展计步器服务提供了开启或关闭监听下层服务的接口,应用程序可以调用上述接口指示拓展计步器服务开启或关闭对下层服务的监听。
服务B监听的底层传感器与服务B监听的底层传感器可以部分重叠,或者服务B监听的底层传感器可以包含服务A监听的底层传感器。为了便于区分,将服务A监听的底层传感器称为第二传感器,将服务B监听的底层传感器称为第一传感器。例如,第一传感器可以包括加速度传感器、气压传感器和陀螺仪传感器,第二传感器可以包含加速度传感器,其中第一传感器所包含的加速度传感器和第二传感器所包含的加速度传感器可以是同一个物理传感器。第一传感器和第二传感器可以通过底层传感器接口上报采集到的数据。其中拓展计步器服务到第一传感器之间的数据通道可以称为第一数据通道,第一数据通道可以包括拓展计步器服务与服务B之间,服务B与底层传感器接口之间,底层传感器接口与第一传感器之间传输数据的数据通道。这里的数据通道是指两个模块之间传输数据的通道,该数据通道可以是虚拟的。标准计步器服务与第二传感器之间的数据通道可以称为第二数据通道。
图2所示的架构图仅作为示例。在一些实施例中,服务A和服务B可以是同一个服务。在一些实施例中,服务B是可选的,拓展计步器服务可以直接通过底层传感器接口向底层传感器注册监听。在另一些实施例中,拓展计步器服务与底层传感器接口之间可以包含更多软件模块(例如服务)。
图3是本申请实施例提供的应用程序A通过标准计步器服务和拓展计步器服务获取运动数据的时序图。
如图3所示,应用程序A通过标准计步器服务和拓展计步器服务获取运动数据的步骤可以包括但不限于以下几步:
S301、标准计步器服务启动。
S302、拓展计步器服务启动。
S303、标准计步器服务向服务A注册监听。
S304、服务A向底层传感器接口注册监听。
电子设备100启动后会启动system_server进程,该进程可以启动系统中的服务,其中包括标准计步器服务和拓展计步器服务。标准计步器服务可以用于统计步数,电子设备每次由关闭状态启动时,可以将标准计步器服务的步数统计值设置为0。
标准计步器服务启动后可以向服务A注册监听,进而服务A向底层传感器接口注册监听。这里服务A向底层传感器接口注册监听是指,服务A通过向底层传感器接口注册监听进而获取第二传感器的传感器数据。
S305、底层传感器接口向服务A上报传感器数据。
S306、服务A向标准计步器服务上报传感器数据。
S307、标准计步器服务根据传感器数据计算步数统计值并存储。
其中传感器数据可以是硬件传感器获取到的原始数据。第二传感器中可以包括加速度传感器,加速度传感器的原始数据可以是每个时间点电子设备100在各个方向的运动加速度。
服务A向底层传感器接口注册了监听后,第二传感器采集到的传感器数据可以通过底层传感器接口向服务A上报。
服务A可以为标准计步器服务提供读取传感器数据的软件接口。服务A接收到第二传感器上报的传感器数据后,可以将传感器数据进一步上报给向服务A注册监听的标准计步器服务。
标准计步器服务获取到传感器数据后,可以通过计步算法计算用户步行或奔跑等的步数。进而标准计步器服务可以将计算出的步数加到步数统计值中并存储。
在电子设备100启动后,步骤S305至步骤S307是可以循环多次执行的。也即是说,当电子设备100启动后,标准计步器服务可以多次获取第二传感器上报的传感器数据并计算该段传感器数据对应的步数,进而标准计步器服务可以将上述计算出的步数加到步数统计值中,以获取用户在一定时间段内的累计步数。
S308、应用程序A启动。
S309、应用程序A向标准计步器服务注册监听。
应用程序A可以绑定标准计步器服务和拓展计步器服务。可选的,应用程序A可以通过bindService()方法与标准计步器服务和拓展计步器服务绑定。应用程序A与标准计步器服务、拓展计步器服务绑定后,就可以实现与标准计步器服务、拓展计步器服务的跨进程通信。
应用程序A启动后可以向标准计步器服务注册监听,标准计步器服务可以保存向其注册监听的应用程序的标识,标准计步器服务计算出运动数据后可以将运动数据上报给上述应用程序标识对应的应用程序。
S310、应用程序A开启拓展计步器服务向下层服务的监听。
S311、拓展计步器服务向服务B注册监听。
S312、服务B向底层传感器接口注册监听。
应用程序A可以调用开启拓展计步器服务向服务B监听的端口,进而触发拓展计步器服务向服务B的注册监听。与标准计步器服务不同的是,标准计步器服务在启动后可以直接向底层服务(服务A)注册监听,而拓展计步器服务不是在服务启动时就立即向底层服务(服务B)注册监听,而是需要响应于应用程序对接口的调用才向服务B注册监听,进而触发服务B向底层传感器接口注册监听。
拓展计步器服务可以用列表存储向其注册监听的应用程序的标识,拓展计步器服务计算出运动数据后可以将运动数据上报向其注册监听的应用程序。
S313、应用程序A向拓展计步器服务注册监听。
S314、底层传感器接口向服务A和服务B上报传感器数据。
S315、服务A向标准计步器服务上报传感器数据。
S316、服务B向拓展计步器服务上报传感器数据。
第二传感器可以通过底层传感器接口向服务A上报传感器数据,第一传感器可以通过底层传感器接口向服务B上报传感器数据。服务A可以将第二传感器采集到的传感器数据透传给标准计步器服务,服务B可以将第一传感器采集到的传感器数据透传给拓展计步器服务。
其中第一传感器包含的传感器的数量可以多于第二传感器包含的传感器的数量,这样拓展计步器服务可以对更多类型的传感器数据进行融合得到更多类型的运动数据。
S317、标准计步器服务根据传感器数据计算步数统计值并存储。
S318、标准计步器服务向应用程序A上报步数统计值。
标准计步器服务可以根据服务A上报的传感器数据计算出传感器数据对应的步数,标准计步器服务可以获取存储的步数统计值,并将存储的步数统计值与计算出的步数相加,得到新的步数统计值。然后标准计步器可以将上述新的步数统计值存储,同时将新的步数统计值上报给应用程序A。
S319、拓展计步器服务根据传感器数据计算出多个运动数据并存储。
S320、拓展计步器服务向应用程序A上报运动数据。
S321、应用程序A向拓展计步器服务获取历史运动数据。
S322、拓展计步器服务向应用程序A返回存储的历史运动数据。
拓展计步器服务可以包含多种算法,这样拓展计步器服务可以根据第一传感器上报的多种类型的传感器数据计算出多种类型的运动数据。例如,拓展计步器服务可以根据传感器数据计算出用户在各个时间点运动产生的步数、海拔高度、阶梯数变化或是运动状态等运动数据,其中运动状态可包括但不限于:跑步状态、上阶梯状态、下阶梯状态、静止状态。拓展计步器服务可以将上述运动数据存储,并且拓展计步器服务还可以将该段传感器数据对应的运动数据(例如步数、高度等)上报给应用程序A。也即是说,拓展计步器服务能够计算出的运动数据的类型多于标准计步器服务。并且,拓展计步器服务能够计算用户在每个时间点的步数,而标准计步器服务仅能够为应用程序提供用户从电子设备重启到当前时间的总步数。
除了拓展计步器服务主动在第一传感器发送传感器数据时向应用程序A上报运动数据,应用程序A也可以向拓展计步器服务请求获取其存储的历史运动数据。响应于应用程序A获取历史运动数据的请求,拓展计步器服务可以将其存储的历史运动数据发送给应用程序A,其中历史运动数据可以包括在一个或多个时间点或时间段用户移动的步数、高度或是阶梯阶数,或是运动状态等,帮助用户了解自己在历史时间段内的运动情况。
S323、应用程序A关闭。
S324、应用程序A关闭拓展计步器服务向下层服务的监听。
S325、拓展计步器服务取消监听服务B。
S326、服务B取消监听底层传感器接口。
应用程序A关闭后可以调用关闭拓展计步器服务向下层服务监听的接口,进而触发拓展计步器服务取消监听服务B,然后服务B取消对底层传感器接口的监听。此时第一传感器不再通过底层传感器接口将传感器数据上报给服务B。
不限于同时注册监听标准计步器服务和拓展计步器服务,在一些实施例中,应用程序A可以根据自身的业务需求选择要注册监听的服务。例如,当应用程序A只需要获取用户的步数统计值时,可以只注册监听标准计步器服务。当应用程序A需要获取多种类型或更多时间段的运动数据时,可以只注册监听拓展计步器服务。
其它应用程序通过标准计步器服务和拓展计步器服务获取运动数据的步骤可以参考应用程序A获取运动数据的步骤,这里不再赘述。
下面介绍多个应用程序使用拓展计步器服务的方法。
图4是本申请实施例提供的多个应用程序开启第一数据通道的架构图。
应用程序在需要使用拓展计步器服务时都会调用开启拓展计步器服务向下层服务监听的接口,该接口用于打开第一传感器向拓展计步器服务上报传感器数据的通道。如图4所示,应用程序A调用开启拓展计步器服务向下层服务(服务B)注册监听的接口后,会触发拓展计步器服务向服务B注册监听,服务B向底层传感器接口注册监听,这样第一传感器采集到的传感器数据就可以通过底层传感器接口传到服务B,进而传递到拓展计步器服务。然后应用程序A可以向拓展计步器服务注册监听,这样拓展计步器服务对传感器数据进行处理计算出运动数据后,就可以将运动数据上报给应用程序A。
当应用程序B需要使用拓展计步器服务时,也会调用开启拓展计步器服务向下层服务(服务B)注册监听的接口。由于第一数据通道已经开启,因此拓展计步器服务实际不需要再次向服务B注册监听,只需要告知应用程序B已经开启了拓展计步器服务向下层服务的监听。应用程序B向拓展计步器服务注册监听后,拓展计步器服务不但会将运动数据上报给应用程序A,还会上报给应用程序B。
应用程序关闭时会关闭拓展计步器服务向下层服务的监听。当有多个应用程序同时向拓展计步器服务注册监听时,可能会出现拓展计步器服务对下层服务的监听被其它应用程序关闭,导致仍在监听拓展计步器服务的应用程序无法获取新的运动数据。
图5是本申请实施例提供的第一数据通道被错误关闭的架构图。
如图5所示,应用程序A和应用程序B是向拓展计步器服务注册监听的应用程序。应用程序A关闭时,会调用关闭拓展计步器服务对下层服务(服务B)监听的接口,触发拓展计步器服务取消对服务B的监听,进而服务B会取消对底层传感器接口的监听。同时,应用程序A还会取消自身对拓展计步器服务的监听。也即是说应用程序A关闭时会关闭第一数据通道,这样第一传感器采集的传感器数据不再通过底层传感器接口上报到服务B,服务B获取不到底层传感器接口上报的传感器数据,拓展计步器服务接收不到服务B上报的传感器数据,也不会上报新的运动数据给应用程序B。虽然应用程序B仍在监听拓展计步器服务,但由于第一数据通道被关闭,导致应用程序B不能获取新的运动数据,影响应用程序B为用户提供相应的功能。
为了解决上述多个应用程序使用拓展计步器服务时,拓展计步器服务向下层服务的监听被某个应用程序关闭,导致其它应用程序无法正常使用拓展计步器服务的问题,在一些实施例中,拓展计步器服务可以维护图6所示的应用程序维护队列。为了便于描述,图6中用OPEN表示应用程序调用了打开拓展计步器服务向下层服务(服务B)监听的接口,用CLOSE表示应用程序调用了关闭拓展计步器服务向下层服务(服务B)监听的接口。
如图6所示,当应用程序调用了打开拓展计步器服务向下层服务(服务B)监听的接口时,应用程序维护队列可以将该应用程序的标识存储至应用程序维护队列。同时,拓展计步器服务可以在向下层服务的监听未启动时,开启对下层服务的监听。可选的,上述应用程序的标识可以是应用程序的包名。
当应用程序调用了关闭拓展计步器服务向下层服务监听的接口时,应用程序维护队列可以将该应用程序的标识从应用程序维护队列中移除。由于应用程序维护队列为空时不存在向拓展计步器服务注册监听的应用程序,拓展计步器服务可以在其对下层服务(服务B)的监听已开启,而应用维护队列为空时关闭对下层服务(服务B)的监听。可选的,上述应用程序的标识可以是应用程序的包名。
在一些实施例中,拓展计步器服务可以记录应用程序调用打开拓展计步器服务向下层服务(服务B)监听的接口的时间,以及调用关闭拓展计步器服务向下层服务(服务B)监听的接口的时间。拓展计步器服务可以在预设时间段内应用程序调用关闭拓展计步器服务向下层服务(服务B)监听的接口的次数超过预设次数时,不再对该应用程序调用关闭拓展计步器服务向下层服务(服务B)监听的接口做出响应。这样可以避免一些应用程序恶意关闭拓展计步器服务对下层服务的监听,影响其它应用程序使用拓展计步器服务。
图7具体介绍本申请实施例提供的一种拓展计步器服务开启和关闭第一数据通道的方法流程图。
如图7所示,拓展计步器服务开启对下层服务监听的流程可以包括但不限于以下几步:
S701、应用程序调用开启拓展计步器服务向下层服务监听的接口。
S702、拓展计步器服务获取应用程序标识,并将应用程序标识存至应用程序状态维护队列。
应用程序可以调用开启拓展计步器服务向下层服务监听的接口,指示拓展计步器服务开启向服务B的监听。拓展计步器服务可以获取应用程序的标识,然后将应用程序标识存储至应用程序维护队列。可选的,上述应用程序的标识可以是应用程序的包名,拓展计步器服务可以通过应用程序的进程号获取应用程序的包名。
S703、拓展计步器服务确定对下层服务的监听状态。
拓展计步器服务可获取其对下层服务(服务B)的监听状态,拓展计步器服务对下层服务的监听状态包括两种:开启状态和关闭状态。拓展计步器服务可以通过标志位对拓展计步器服务的状态进行标识。示例性地,当拓展计步器服务对服务B的监听为关闭状态时,标志位可以为0;当拓展计步器服务对服务B的监听为开启状态时,标志位可以为1。不限于0和1,标志位还可以是其他值,本申请实施例对于标志位的取值不作限定。
拓展计步器服务可以通过标志位确定对下层服务的监听状态。当标志位为0时表明拓展计步器服务未开启向服务B的监听,拓展计步器服务可以执行步骤S704启动对下层服务(服务B)的监听,然后拓展计步器服务可以将标志位置为1,表明对下层服务的监听已启动。
当拓展计步器服务获取到的标志位为1时,拓展计步器服务可以执行步骤S705:拓展计步器服务保持对下层服务(服务B)的监听。
拓展计步器服务关闭对下层服务监听的流程可以包括但不限于以下几步:
S711、应用程序调用关闭拓展计步器服务向下层服务监听的接口。
S712、拓展计步器服务获取应用程序标识,并从应用程序状态维护队列取出上述应用程序标识。
应用程序可以调用关闭拓展计步器服务向下层服务监听的接口,指示拓展计步器服务关闭向服务B的监听。拓展计步器服务可以获取应用程序的标识,然后将该应用程序的标识从应用程序状态维护队列中取出。
S713、拓展计步器服务确定对下层服务的监听状态。
拓展计步器服务可以通过获取标志位确定对下层服务的监听状态。关于标志位的介绍可以参考步骤S703,这里不再赘述。
当拓展计步器服务获取到的标准位为1,且应用程序状态维护队列为空时电子设备可以执行步骤S714:拓展计步器服务关闭对下层服务的监听。拓展计步器服务可以关闭对服务B的监听,同时将标志位设置为0。
其它情况下电子设备可以执行步骤S715:拓展计步器服务保持当前状态,也即是说拓展计步器服务保持对下层服务的监听。上述其它情况包括标准位为0(拓展计步器服务已经关闭第一数据通道)的情况和应用程序状态维护队列不为空的情况。当拓展计步器服务已经关闭第一数据通道时,无需再次执行向服务B取消监听的步骤,只需要保持当前状态不变。当应用程序状态维护队列不为空时,表明仍然存在注册监听拓展计步器服务的应用程序,为了保证上述应用程序能够继续正常使用拓展计步器服务,拓展计步器服务需要维持对服务B的监听。
图8是本申请实施例提供的一种拓展计步器服务关闭第一数据通道的架构图。图8可以看作在电子设备使用图7所示方法控制第一数据通道的关闭时,应用程序调用关闭拓展计步器服务向服务B监听的接口的情况。
如图8所示,应用程序A和应用程序B同时注册监听拓展计步器服务时,应用程序维护队列中包含应用程序A的标识和应用程序B的标识。当应用程序A关闭时,会调用关闭拓展计步器服务向服务B监听的接口,拓展计步器服务会将应用程序A的标识从应用程序维护队列中移除。由于应用程序维护队列中仍存在应用程序B的标识,因此拓展计步器服务仍然保持对服务B的监听,这样从底层传感器接口到拓展计步器服务的数据通道仍然存在。第一传感器获取到的传感器数据仍然可以通过底层传感器接口上报给服务B,进而上报给拓展计步器服务。拓展计步器服务可以对传感器数据进行处理得到运动数据,然后将运动数据上报给仍在监听的应用程序B。
图9是本申请实施例提供的一种多个应用程序使用拓展计步器服务的时序图。
其中,拓展计步器服务可以包含代理模块、服务模块和实现模块。
代理模块是拓展计步器服务接收应用程序的消息的接口,应用程序向拓展计步器服务发送消息时需要首先发送到代理模块。
服务模块可以用于对拓展计步器服务各个模块进行管理。服务模块可以获取代理模块接收到的应用程序的消息,然后指示实现模块具体实现拓展计步器服务的一个或多个功能。
实现模块是拓展计步器服务各个事件的具体“执行者”。例如,实现模块可以向服务B注册监听,接收服务B上报的传感器数据。实现模块还可以包含一个或多个数据融合的算法,用于对多种类型的传感器数据进行数据融合,计算出多个类型的运动数据。实现模块计算出运动数据后将运动数据上报给应用程序。
如图9所示,应用程序A和应用程序B使用拓展计步器服务的步骤可以包括但不限于以下几步:
S901、应用程序A启动并调用开启拓展计步器服务向下层服务监听的接口。
S902、拓展计步器服务中的代理模块获取应用程序标识并将应用程序标识添加到应用程序维护队列。
S903、拓展计步器服务中的代理模块确定拓展计步器服务未开启对下层服务的监听。
S904、拓展计步器服务中的代理模块向实现模块发送启动对下层服务监听的消息。
S905、拓展计步器服务中的实现模块向服务B注册监听。
S906、服务B向底层传感器接口注册监听。
在初始情况下,应用程序维护队列中不存在应用程序的标识,并且拓展计步器服务的标志位可以为0,表明当前未开启对下层服务(服务B)的监听。
应用程序A启动时会绑定拓展计步器服务,进而调用开启拓展计步器服务向服务B监听的接口。然后,拓展计步器服务可以获取应用程序A的标识(例如应用程序A的包名),并将应用程序标识添加到应用程序维护队列中。这样应用程序维护队列中就包含了应用程序A的标识。其中应用程序A绑定拓展计步器服务具体绑定的是拓展计步器服务的服务模块。
拓展计步器服务中的代理模块可以获取到拓展计步器服务的标志位为0,确定当前还未启动对服务B的监听。响应于应用程序A调用的开启向服务B监听的接口,拓展计步器服务中的代理模块可以通过服务模块向实现模块发送开始监听服务B的消息,指示实现模块开启对服务B的监听。拓展计步器服务中的实现模块用于具体实现拓展计步器服务对服务B的注册监听,进而服务B会向底层传感器接口注册监听。拓展计步器服务中的代理模块可以将拓展计步器服务的标志位由0更改为1。
关于步骤S901-步骤S906可以看作是电子设备100按照图7中步骤S701-步骤S704对拓展计步器服务进行管理得到的。
S907、应用程序A向拓展计步器服务注册监听。
S908、拓展计步器服务中代理模块向实现模块发送应用程序A注册监听的消息。
应用程序A可以向拓展计步器服务注册监听,拓展计步器服务中的代理模块可以接收到应用程序A向拓展计步器服务注册监听的消息,然后将该消息通过服务模块透传给实现模块。拓展计步器服务的实现模块可以维护一个向其注册监听的应用程序的列表,该列表中存储有应用程序的标识,为了便于描述后续将该列表称为应用程序订阅列表。拓展计步器服务接收到应用程序A注册监听的消息后,可以将应用程序A的标识添加到上述列表中。当拓展计步器服务的实现模块接收到服务B上报的传感器数据并对传感器数据进行处理生成运动数据后,实现模块就会将运动数据上报给在应用程序订阅列表中存在的应用程序A标识对应的应用程序A。
S909、应用程序B启动并调用开启拓展计步器服务向下层服务监听的接口。
S910、拓展计步器服务的代理模块获取应用程序标识并将应用程序标识添加到应用程序维护队列。
S911、拓展计步器服务的代理模块确定拓展计步器服务已开启对下层服务的监听。
应用程序B启动时也会绑定拓展计步器服务,进而调用开启拓展计步器服务向下层服务监听的接口。拓展计步器服务的代理模块会获取应用程序B的标识,并将应用程序B的标识添加到应用程序状态维护队列中。此时应用程序状态维护队列中包含应用程序A的标识和应用程序B的标识。其中应用程序B绑定拓展计步器服务具体绑定的是拓展计步器服务的服务模块。
拓展计步器服务的代理模块还可以获取到拓展计步器服务的标志位为1,这表明当前拓展计步器服务已经开启对服务B的监听,拓展计步器服务可以保持对服务B的监听。
步骤S909-步骤S911可以看作是电子设备100按照图7中步骤S701-步骤S703、步骤S705对拓展计步器服务进行管理得到的。
S912、应用程序B向拓展计步器服务中注册监听。
S913、拓展计步器服务中代理模块向实现模块发送应用程序B注册监听的消息。
应用程序B可以向拓展计步器服务注册监听,拓展计步器服务中的代理模块接收到应用程序注册监听的消息后将该消息通过服务模块透传给实现模块。拓展计步器服务中的实现模块可以将应用程序B的标识添加到应用程序订阅列表中。
S914、底层传感器接口向服务B上报传感器数据。
S915、服务B向拓展计步器服务上报传感器数据。
当电子设备100的显示屏为亮屏状态时,第一传感器可以在第一传感器包括的一个或多个传感器监测到数据发生变化时通过底层传感器接口上报传感器数据。其中,上报传感器数据的传感器可以仅包括数据发生变化的传感器,或者还可以是第一传感器中所有的传感器。当电子设备100的显示屏为灭屏状态时,第一传感器可以每隔A时间存储一次传感器数据,当第一传感器存储传感器数据的时间超过B时间时,第一传感器可以通过底层传感器接口将传感器数据上报给服务B。可选的,上述A时间可以是两分钟,B时间可以是十分钟。可选的,当电子设备100的显示屏由灭屏状态转换为亮屏状态时,第一传感器可以将已存储的还未上报的传感器数据都上报给服务B。第二传感器上报数据的方式可以参考第一传感器,这里不再赘述。
服务B接收到底层传感器接口上报的传感器数据后,可以对传感器数据的格式做处理,然后将传感器数据透传给拓展计步器服务。
S916、拓展计步器服务中的实现模块根据传感器数据计算出多个运动数据并存储。
S917、拓展计步器服务中的实现模块向应用程序A和应用程序B上报运动数据。
拓展计步器服务中的实现模块接收到服务B上报的传感器数据后,可以使用计步算法计算出多个运动数据,例如其中可以包括该段传感器数据对应运动所产生的步数变化量、楼层高度变化量。拓展计步器服务可以将运动数据及其对应的时间存储到存储器中,同时还可以向应用程序A和应用程序B上报上述数据。
可选的,应用程序A或应用程序B还可以向拓展计步器服务请求获取历史运动数据,进而拓展计步器服务中的实现模块可以从存储器中取出已存储的运动数据及其对应的时间,然后发送给请求获取历史运动数据的应用程序。
S918、应用程序A关闭并调用关闭拓展计步器服务向下层服务监听的接口。
S919、拓展计步器服务中的代理模块将应用程序A的标识从应用程序维护队列移除。
S920、拓展计步器服务中的代理模块确定应用程序维护队列不为空。
应用程序A关闭的同时,会停止监听拓展计步器服务,并调用关闭拓展计步器服务向服务B监听的接口。拓展计步器服务中的代理模块会获取应用程序A的标识,并将应用程序A的标识从应用程序维护队列中移除。
同时,拓展计步器服务中的代理模块还可以获取拓展计步器服务的标志位,确定标志位为1,这表明拓展计步器服务向下层服务的监听正在开启。由于应用程序维护队列中还存在有应用程序B的标识,因此不满足关闭拓展计步器服务对服务B的监听的条件,因此拓展计步器服务保持当前状态不变。
步骤S918-S920可以看作是电子设备100按照图7中步骤S711-S713、步骤S715对拓展计步器服务进行管理得到的。
S921、应用程序B关闭并调用关闭拓展计步器服务向下层服务监听的接口。
S922、拓展计步器服务中的代理模块将应用程序B的标识从应用程序维护队列移除。
S923、拓展计步器服务中的代理模块确定拓展计步器服务对下层服务的监听为开启状态,且应用程序维护队列为空。
S924、拓展计步器服务中的代理模块向实现模块发送停止监听下层服务的消息。
S925、拓展计步器服务的实现模块取消对服务B的监听。
S926、服务B取消对底层传感器接口的监听。
应用程序B关闭后,会调用关闭拓展计步器服务向服务B监听的接口。拓展计步器服务中的代理模块可以获取应用程序B的标识(例如应用程序B的标识),然后将应用程序B的标识从应用程序维护队列中移除,应用程序B的标识被移除后应用程序维护队列中为空。
拓展计步器服务中的代理模块还可以获取拓展计步器服务的标志位,拓展计步器服务的标志位为1,表明拓展计步器服务正在监听服务B。由于应用程序维护队列中为空且拓展计步器服务的标志位为1,这满足停止拓展计步器服务向服务B监听的条件,响应于应用程序B对关闭拓展计步器服务向下层服务监听的接口的调用,拓展计步器服务的代理模块可以向实现模块发送停止监听服务B的消息。拓展计步器服务的实现模块进而取消对服务B的监听,然后服务B会取消对底层服务器接口的监听。
步骤S921-S926可以看作是电子设备100按照图7中步骤S711-S714对拓展计步器服务进行管理得到的。
可以看出,拓展计步器服务会对是否满足开启或停止监听下层服务的条件进行判断,这样就可以避免出现拓展计步器服务多次启动向下层服务的监听,或是拓展计步器服务对下层服务的监听被某个应用程序关闭导致其它应用程序无法正常使用拓展计步器服务的情况。
不限于由代理模块控制开启或关闭拓展计步器服务对服务B的监听,还可以是拓展计步器服务中的其它模块控制开启或关闭对服务B的监听。其它模块控制开启或关闭拓展计步器服务对服务B的监听的方法可以参考代理模块控制开启或关闭拓展计步器服务对服务B的监听的方法,这里不再赘述。
不限于应用程序关闭时调用拓展计步器服务停止监听服务B的接口,在一些实施例中,应用程序还可以基于自身业务需求调用拓展计步器服务停止监听服务B的接口,指示拓展计步器服务停止监听服务B。例如,当应用程序不需要使用拓展计步器服务提供的运动数据时,可以取消监听拓展计步器服务并调用关闭拓展计步器服务监听服务B的接口。
不限于应用程序A和应用程序B,还可以有更多或更少的应用程序同时使用拓展计步器服务,不同的应用程序也可以向拓展计步器服务注册监听不同类型的运动数据。更多或更少的应用程序同时使用拓展计步器服务时拓展计步器服务对下层服务监听的开启或关闭的控制方法可以参考上述应用程序A和应用程序B同时使用拓展计步器服务时,拓展计步器服务对下层服务监听的开启或关闭的控制方法,这里不再赘述。
下面首先介绍本申请实施例提供的示例性电子设备100。
图10是本申请实施例提供的电子设备100的硬件结构示意图。
下面以电子设备100为例对实施例进行具体说明。应该理解的是,电子设备100可以具有比图10中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图10中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
电子设备100可以包括:处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,指示器160,显示屏150。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,加速度传感器180C,触摸传感器180D等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏150等供电。
电子设备100通过GPU,显示屏150,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏150和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏150用于显示图像,视频等。显示屏150包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏150,N为大于1的正整数。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,上述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用(比如人脸识别功能,指纹识别功能、移动支付功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如人脸信息模板数据,指纹信息模板等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universalflash storage,UFS)等。
指示器160可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。电子设备100可以设置至少一个麦克风170C。在另一些实施例中,电子设备100可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏150。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏150,电子设备100根据压力传感器180A检测上述触摸操作强度。电子设备100也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。
陀螺仪传感器180B可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定电子设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180B可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180B检测电子设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消电子设备100的抖动,实现防抖。陀螺仪传感器180B还可以用于导航,体感游戏场景。
加速度传感器180C可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
触摸传感器180D,也称“触控面板”。触摸传感器180D可以设置于显示屏150,由触摸传感器180D与显示屏150组成触摸屏,也称“触控屏”。触摸传感器180D用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏150提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180D也可以设置于电子设备100的表面,与显示屏150所处的位置不同。
气压传感器180E用于测量气压。在一些实施例中,电子设备100通过气压传感器180E测得的气压值计算海拔高度,辅助定位和导航。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
在本申请实施例中,第一传感器可以包括但不限于陀螺仪传感器180B、加速度传感器180C、和气压传感器180E,第二传感器可以包括但不限于加速度传感器180C,其中第一传感器中的加速度传感器180C和第二传感器中的加速度传感器180C可以是同一个传感器。
图11是本申请实施例的电子设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将系统分为四层,从上至下分别为应用程序层,应用程序框架(framework)层,硬件抽象(hardware abstraction layer,HAL)层和内核层。
应用程序层可以包括一系列应用程序包。
如图11所示,应用程序包可以包括应用程序A和应用程序B等应用程序(也可以称为应用),应用程序A和应用程序B可以向拓展计步器服务和标准计步器服务注册监听。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图11所示,应用程序框架层可以包括拓展计步器服务、标准计步器服务、服务A和服务B。
拓展计步器服务可以接受应用程序的注册监听,还可以向服务B注册传感器数据的监听。拓展计步器服务接收到服务B上报的传感器数据后,可以对传感器数据处理生成运动数据发送给向其注册监听的应用程序。拓展计步器服务可以生成的运动数据包括但不限于每个时间段用户的步数、高度、阶梯数和运动状态等。其中,拓展计步器服务可以包括代理模块、服务模块和实现模块,关于代理模块、服务模块和实现模块的介绍可以参考前述实施例的介绍,这里不再赘述。其中代理模块的功能可以是电子设备100调用StepCounterRemoteStub类下的一个或多个函数实现的,服务模块的功能可以是电子设备100调用StepCounterService类下的一个或多个函数实现的,实现模块的功能可以是电子设备100调用StepCounter类下的一个或多个函数实现的。服务B可以是Motion服务,电子设备可以通过ExtDeviceManager接口实现向Motion服务的注册监听,或是实现Motion服务对传感器数据的回调。
标准计步器服务可以接受应用程序的注册监听,还可以向服务A注册传感器数据的监听。标准计步器服务可以计算预设时长用户运动的总步数,并将上述总步数上报给向其注册监听的应用程序。上述预设时长可以是从电子设备开机到当前系统时间之间的时长。
服务A用于为标准计步器服务提供统一的获取传感器数据的接口。
HAL层的目的在于将硬件抽象化,可以为上层的应用提供统一的查询硬件设备的接口。该HAL层隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。
内核层是硬件和软件之间的层。内核层可以包含传感器驱动。在本申请实施例中第一驱动、第二驱动可以是传感器驱动中的两个接口。在一些实施例中,第一驱动和第二驱动还可以是两个独立的驱动,本申请实施例对此不作限制。
应用程序A和应用程序B可以分别向拓展计步器服务和标准计步器服务注册监听,然后拓展计步器服务向服务B注册监听,标准计步器服务可以向服务A注册监听。传感器驱动可以驱动底层传感器通过底层传感器接口将传感器数据上报给传感器HAL,传感器HAL可以将第一传感器采集到的传感器数据转发至服务B,将第二传感器采集到的传感器数据转发至服务A。进而服务A将传感器数据转发到标准计步器服务,服务B将传感器数据转发到拓展计步器服务。拓展计步器服务获取到传感器数据后可以计算出运动数据上报给向其监听的应用程序A和应用程序B。标准计步器服务获取到传感器数据后可以计算出预设时长内用户的总步数到应用程序A和应用程序B。
图12是本申请实施例提供的运动监测方法的流程图示意图。
如图12所示,该方法可以包括但不限于以下几步:
S1201、电子设备向监听第一计步器服务的第一应用程序、第二应用程序发送第一运动数据,其中第一运动数据是基于第一传感器在第一时间段采集到的数据确定的,第一计步器服务通过第一数据通道获得第一传感器采集到的数据。
电子设备可以包含多个应用程序,上述多个应用程序可以包括第一应用程序和第二应用程序。在本申请实施例中,拓展计步器服务也可以称为第一计步器服务。第一应用程序和第二应用程序可以与拓展计步器服务绑定,并向拓展计步器服务注册监听。当应用程序监听拓展计步器服务时,该应用程序能够在第一数据通道存在的情况下接收第一计步器服务发送的第一运动数据。第一运动数据可以包括以下一项或多项:步数、海拔高度、阶梯数和运动状态,其中运动状态可以包括但不限于跑步状态、静止状态、步行状态、上阶梯状态和下阶梯状态。其中第一数据通道是第一计步器服务响应于多个应用程序中的一个应用程序发送的第二指令建立的,第一数据通道可以是第一计步器服务和第一传感器之间的数据通道。应用程序调用开启拓展计步器服务向下层服务监听的接口,并向拓展计步器服务注册监听时应用程序向拓展计步器服务发送的消息可以称为第二指令。
参考图9所示的实施例,第一应用程序可以是应用程序A,第二应用程序可以是应用程序B。第一数据通道可以包括拓展计步器服务与服务B之间,服务B与底层传感器接口之间,以及底层传感器接口与第一传感器之间的数据通道。拓展计步器服务可以响应于该指令打开第一数据通道。拓展计步器服务可以通过第一数据通道获得第一传感器采集到的数据,也即是说第一传感器采集到的传感器数据可以通过底层传感器接口上报给服务B,然后服务B再将传感器数据上报给拓展计步器服务。其中,第一传感器可以包括但不限于:陀螺仪传感器180B、加速度传感器180C和气压传感器180E。
在一些实施例中,第一时间段的起点是第一传感器第K次向第一计步器服务上报数据的时间,第一时间段的终点是第一传感器第K+1次向第一计步器服务上报数据的时间,K为正整数。其中,第一传感器向第一计步器服务上报数据的方法包括以下一项或多项:第一传感器检测到运动时上报、电子设备在亮屏时第一传感器每隔第一时长上报、电子设备在灭屏时每隔第二时长上报。以第一传感器检测到运动时上报为例,第一传感器在00时00分时检测到数据变化会上报数据,00时00分即为第一传感器第K次向拓展计步器服务上报数据的时间。第一传感器在00时01分又检测到数据变化,则00时01分为第一传感器第K+1次向拓展计步器服务上报数据的时间。第一时间段就是第一传感器相邻两次向拓展计步器服务上报传感器数据的时间,即从00时00分到00时01分。第一传感器可以将从00时00分到00时01分之间的数据上报给服务B。由于第一传感器中可以包含多个物理传感器和/或软件传感器时,其中一个传感器检测到数据变化时第一传感器中的所有传感器可以同时上报传感器数据,或者,还可以只有检测到数据变化的传感器上报传感器数据。不限于在第一传感器检测到运动时上报,电子设备在亮屏时第一传感器还可以每隔第一时长上报一次传感器数据到服务B,或者电子设备在灭屏时第一传感器还可以每隔第二时长上报一次传感器数据到服务B。当电子设备由灭屏转换为亮屏时,电子设备可以将灭屏期间未上报的传感器数据上报到服务B。上述第一时长可以是100毫秒,第二时长可以是20分钟。本申请实施例对于第一时长和第二时长的长度不作限制。
S1202、电子设备通过第一计步器服务接收到第一应用程序的第一指令,停止第一应用程序对第一计步器服务的监听。
电子设备100中的拓展计步器服务可以接收到第一应用程序的第一指令,第一指令可以包括应用程序调用关闭拓展计步器服务向下层服务监听的接口,以及应用程序停止监听拓展计步器服务时应用程序向拓展计步器服务发送的消息。第一应用程序发送第一指令后,拓展计步器服务计算出的运动数据就不再上报给应用程序A。
S1203、电子设备判断是否存在监听第一计步器服务的应用程序,若不存在监听第一计步器服务的应用程序,则电子设备关闭第一计步器服务与第一传感器之间的第一数据通道。
拓展计步器服务接收到第一指令后,不会立刻关闭第一计步器服务与第一传感器之间的第一数据通道。只有拓展计步器服务确认不存在监听拓展计步器服务的应用程序时,才会关闭第一数据通道。这样就可以保证当有应用程序监听拓展计步器服务时,拓展计步器服务不会提前关闭第一数据通道导致仍在监听的应用程序无法正常使用拓展计步器服务。
在一些实施例中,电子设备可以通过第一队列判断是否存在监听拓展计步器服务的应用程序。第一队列用于存储向拓展计步器服务发送第二指令的应用程序的标识。在本申请实施例中,第一队列也可以称为应用程序维护队列。第一队列并不局限于以队列这种数据结构存储应用程序的标识,还可以是以其它类型数据结构存储应用程序的标识。这里对第一队列存储数据时的数据结构不作限制。当拓展计步器服务接收到应用程序发送的第二指令时,拓展计步器服务可以将该应用程序的标识存储到应用程序维护队列中;当拓展计步器服务接收到应用程序发送的第一指令时,拓展计步器服务可以将该应用程序的标识从应用程序维护队列中移除。参考图9所示的实施例,应用程序A和应用程序B启动时会调用开启拓展计步器服务向下层服务监听的接口,同时向拓展计步器服务注册监听。拓展计步器服务会将应用程序A和应用程序B的标识添加到应用程序维护队列中。当应用程序A调用关闭拓展计步器服务向下层服务监听的接口,同时取消对拓展计步器服务的监听时,拓展计步器服务会将应用程序A的标识从应用程序维护队列中移除,并且拓展计步器服务会判断应用程序维护队列是否为空。当应用程序维护队列为空,即应用程序维护队列中不存在应用程序的标识时,表明不存在监听拓展计步器服务的应用程序。当应用程序维护队列不为空,即应用程序维护队列中存在应用程序的标识时,表明存在监听拓展计步器服务的应用程序。由于拓展计步器服务将应用程序A的标识移除应用程序维护队列后应用程序维护队列不为空,则拓展计步器服务可以仅停止将运动数据上报给应用程序A,而不关闭第一数据通道。可选的,上述应用程序的标识可以是应用程序的包名。
在一些实施例中,电子设备还包括第二传感器,电子设备还包括第二计步器服务,该方法还包括:应用程序框架层的第二计步器服务启动然后建立第二数据通道;第二驱动获取第二传感器采集的数据,将第二传感器采集的数据通过所述第二数据通道发送给所述第二计步器服务;第二计步器服务基于第二传感器在第二时间段采集到的数据确定第二运动数据。在本申请实施例中,第二计步器服务也可以称为标准计步器服务,第一传感器包含的传感器可以涵盖第二传感器包含的传感器。其中第一传感器和第二传感器可以是电子设备中的硬件传感器,例如第一传感器可以包括但不限于:加速度传感器、气压传感器和陀螺仪传感器,第二传感器可以包括但不限于:加速度传感器。第一传感器和第二传感器还可以包括软件传感器。
参考图3所示的实施例,电子设备可以启动标准计步器服务,标准计步器服务可以存储步数统计值,当电子设备100重新启动时,步数统计值都会清零。第二传感器向标准计步器服务上报传感器数据的时机可以参考上述第一传感器向拓展计步器服务上报传感器数据的时机,这里不再赘述。标准计步器服务会计算出每次第二传感器上报的数据对应的用户步数,然后将该步数与其存储的步数统计值相加,得到新的步数统计值。然后标准计步器服务可以将该步数统计值存储,并上报给应用程序。
示例性地,电子设备100在启动后,标准计步器服务会将存储的步数统计值清零,假设第二传感器通过底层传感器接口向标准计步器服务上报了从00时00分到00时05分之间的传感器数据,标准计步器服务根据00时00分到00时05分之间的传感器数据计算出用户在00时00分到00时05分之间走了30步,标准计步器服务会将当前存储的步数统计值(0步)加上30步得到新的步数统计值(30步),然后标准计步器服务会将新的步数统计值(30步)存储,并上报给应用程序。第二传感器通过底层传感器接口向标准计步器服务上报了从00时05分到00时10分之间的传感器数据后,标准计步器服务根据00时05分到00时10分之间的传感器数据计算出用户在00时05分到00时10分之间走了50步,标准计步器服务会将当前存储的步数统计值(3步)加上50步,得到新的步数统计值(80步),然后标准计步器服务会将新的步数统计值存储,并上报给应用程序。应用程序只能展示从电子设备启动的时间(00时00分)到第二传感器上报传感器数据的时间之间用户走的总步数。若电子设备100在00时10分重启,步数统计值重新归零。不限于在电子设备重启时清零步数统计值,在一些实施例中,标准计步器服务还可以在系统时间为00时00分时清零步数统计值。
标准计步器服务上报的运动数据对应的时间段的起点都是电子设备启动的时间,而拓展计步器服务每次上报的运动数据的起点都是拓展计步器服务上次上报运动数据的时间。例如第一传感器通过底层传感器接口向拓展计步器服务上报00时00分到00时05分之间的传感器数据后,拓展计步器服务根据00时00分到00时05分的传感器数据计算出00时00分到00时05分之间用户走了30步后,可以将00时00分到00时05分之间用户走的步数(30步)存储,并将00时00分到00时05分之间用户走的步数发送给应用程序,应用程序可以展示00时00分到00时05分之间用户的步数。上述第一传感器和第二传感器上报传感器数据的时机仅作为示例,不作为本申请实施例的限制。
当应用程序需要获取用户的总步数时,可以注册监听标准计步器服务,获取标准计步器服务上报的用户在一定时间段内的总步数。当应用程序需要获取用户在更短时间段内的步数,或者应用程序需要获取更多类型的运动数据,例如应用程序需要获取用户在某个时刻或某个时间段的运动状态、移动的阶梯数、上升或下降的海拔高度等运动数据,则应用程序可以注册监听拓展计步器服务。拓展计步器服务和标准计步器服务可以为应用程序提供不同类型的运动数据,这样应用程序可以根据多种运动数据为用户提供更多类型的功能,从而提高用户的使用体验。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
上述实施例中所用,根据上下文,术语“当…时”可以被解释为意思是“如果…”或“在…后”或“响应于确定…”或“响应于检测到…”。类似地,根据上下文,短语“在确定…时”或“如果检测到(所陈述的条件或事件)”可以被解释为意思是“如果确定…”或“响应于确定…”或“在检测到(所陈述的条件或事件)时”或“响应于检测到(所陈述的条件或事件)”。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。上述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。上述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。上述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,上述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。上述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。上述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘)等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
Claims (13)
1.一种运动监测方法,所述方法应用于电子设备,其特征在于,所述电子设备包括第一传感器,所述电子设备包括多个应用程序和第一计步器服务,所述多个应用程序包括第一应用程序和第二应用程序,所述方法包括:
所述电子设备向监听所述第一计步器服务的第一应用程序、第二应用程序发送第一运动数据,所述第一运动数据是基于所述第一传感器在第一时间段采集到的数据确定的,所述第一计步器服务通过第一数据通道获得所述第一传感器采集到的数据,所述第一数据通道是所述第一计步器服务响应于所述多个应用程序中的一个应用程序发送的第二指令建立的;
所述电子设备通过所述第一计步器服务接收到第一应用程序的第一指令,停止所述第一应用程序对所述第一计步器服务的监听;
所述电子设备通过第一队列判断是否存在监听所述第一计步器服务的应用程序,若所述第一队列为空,则不存在监听所述第一计步器服务的应用程序;若所述第一队列不为空,则存在监听所述第一计步器服务的应用程序;所述第一队列用于存储向所述第一计步器服务发送所述第二指令的应用程序的标识;
若不存在监听所述第一计步器服务的应用程序,则所述电子设备关闭所述第一计步器服务与所述第一传感器之间的所述第一数据通道。
2.根据权利要求1所述的方法,其特征在于,监听所述第一计步器服务的应用程序能够在所述第一数据通道存在的情况下接收所述第一计步器服务发送的所述第一运动数据。
3.根据权利要求1所述的方法,其特征在于,所述电子设备通过所述第一计步器服务接收到第一应用程序的第一指令时,所述方法还包括:所述电子设备将所述第一应用程序的标识从所述第一队列移除。
4.根据权利要求3所述的方法,其特征在于,所述第一时间段的起点是所述第一传感器第K次向所述第一计步器服务上报数据的时间,所述第一时间段的终点是所述第一传感器第K+1次向所述第一计步器服务上报数据的时间,K为正整数。
5.根据权利要求4所述的方法,其特征在于,所述上报包括以下一项或多项:所述第一传感器检测到运动时上报、所述电子设备在亮屏时所述第一传感器每隔第一时长上报、所述电子设备在灭屏时每隔第二时长上报。
6.根据权利要求5所述的方法,其特征在于,所述电子设备还包括第二传感器,所述电子设备还包括第二计步器服务,所述方法还包括:
所述电子设备启动所述第二计步器服务;
所述电子设备通过所述第二计步器服务确定第二运动数据,所述第二运动数据是基于所述第二传感器在第二时间段采集到的数据得到的。
7.根据权利要求6所述的方法,其特征在于,所述第一运动数据包括以下一项或多项:步数、高度和运动状态,所述第二运动数据包括步数。
8.根据权利要求7所述的方法,其特征在于,所述应用程序的标识为应用程序的包名。
9.根据权利要求1所述的方法,其特征在于,所述电子设备包括应用层,应用程序框架层和内核层,所述应用层包括所述多个应用程序,所述应用程序框架层包括所述第一计步器服务,所述内核层包括第一驱动,所述电子设备向监听所述第一计步器服务的第一应用程序、第二应用程序发送第一运动数据,具体包括:
所述第一驱动获取所述第一传感器采集的数据,通过所述第一数据通道将所述第一传感器采集的数据发送给所述应用程序框架层的所述第一计步器服务;
所述第一计步器服务基于所述第一传感器在所述第一时间段采集的数据确定所述第一运动数据;
所述第一计步器服务将所述第一运动数据发送给应用层的所述第一应用程序和所述第二应用程序。
10.根据权利要求9所述的方法,其特征在于,所述电子设备通过所述第一计步器服务接收到第一应用程序的第一指令,停止所述第一应用程序对所述第一计步器服务的监听,具体包括:
所述第一应用程序向所述第一计步器服务发送所述第一指令,所述第一应用程序停止对所述第一计步器服务的监听;
所述第一计步器服务将所述第一应用程序的标识从第一队列移除,所述第一队列用于存储向所述第一计步器服务发送所述第二指令的应用程序的标识。
11.根据权利要求10所述的方法,所述电子设备还包括第二传感器,所述应用程序框架层还包括第二计步器服务,所述内核层还包括第二驱动,其特征在于,所述方法还包括:
所述应用程序框架层的所述第二计步器服务启动并建立第二数据通道;
所述第二驱动获取所述第二传感器采集的数据,将所述第二传感器采集的数据通过所述第二数据通道发送给所述第二计步器服务;
所述第二计步器服务基于所述第二传感器在第二时间段采集到的数据确定第二运动数据。
12.一种电子设备,其特征在于,所述电子设备包括:存储器以及耦合于所述存储器的处理器;所述存储器存储有计算机程序,所述处理器执行所述计算机程序时使得所述电子设备实现如权利要求1至11中任一项所述的方法。
13.一种计算机可读存储介质,存储计算机程序,其特征在于,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求1至11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310990839.3A CN116755977B (zh) | 2023-08-08 | 2023-08-08 | 运动监测方法、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310990839.3A CN116755977B (zh) | 2023-08-08 | 2023-08-08 | 运动监测方法、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116755977A CN116755977A (zh) | 2023-09-15 |
CN116755977B true CN116755977B (zh) | 2024-04-12 |
Family
ID=87948114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310990839.3A Active CN116755977B (zh) | 2023-08-08 | 2023-08-08 | 运动监测方法、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116755977B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108881626A (zh) * | 2018-06-06 | 2018-11-23 | Oppo(重庆)智能科技有限公司 | 位置服务控制方法及相关产品 |
CN108937860A (zh) * | 2018-06-06 | 2018-12-07 | 歌尔科技有限公司 | 一种运动状态监测方法、系统及设备和存储介质 |
CN114237921A (zh) * | 2020-09-09 | 2022-03-25 | 华为终端有限公司 | 传感器监听方法、装置及终端设备 |
CN116049822A (zh) * | 2023-01-05 | 2023-05-02 | 宜宾邦华智慧科技有限公司 | 应用程序的监管方法、系统、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8996332B2 (en) * | 2008-06-24 | 2015-03-31 | Dp Technologies, Inc. | Program setting adjustments based on activity identification |
-
2023
- 2023-08-08 CN CN202310990839.3A patent/CN116755977B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108881626A (zh) * | 2018-06-06 | 2018-11-23 | Oppo(重庆)智能科技有限公司 | 位置服务控制方法及相关产品 |
CN108937860A (zh) * | 2018-06-06 | 2018-12-07 | 歌尔科技有限公司 | 一种运动状态监测方法、系统及设备和存储介质 |
CN114237921A (zh) * | 2020-09-09 | 2022-03-25 | 华为终端有限公司 | 传感器监听方法、装置及终端设备 |
CN114741256A (zh) * | 2020-09-09 | 2022-07-12 | 华为终端有限公司 | 传感器监听方法、装置及终端设备 |
CN116049822A (zh) * | 2023-01-05 | 2023-05-02 | 宜宾邦华智慧科技有限公司 | 应用程序的监管方法、系统、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116755977A (zh) | 2023-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113254120B (zh) | 数据处理方法和相关装置 | |
CN115866121A (zh) | 应用界面交互方法、电子设备和计算机可读存储介质 | |
CN115016869B (zh) | 帧率调整方法、终端设备及帧率调整系统 | |
CN112882823B (zh) | 屏幕显示方法及电子设备 | |
CN113797530B (zh) | 图像的预测方法、电子设备和存储介质 | |
CN113688019B (zh) | 响应时长检测方法及装置 | |
CN113722058A (zh) | 一种资源调用方法及电子设备 | |
CN115292052A (zh) | 内存回收方法、电子设备及计算机可读存储介质 | |
CN114995715B (zh) | 悬浮球的控制方法和相关装置 | |
CN113641271A (zh) | 应用窗口的管理方法、终端设备及计算机可读存储介质 | |
CN110955373A (zh) | 一种显示要素的显示方法和电子设备 | |
CN113747374A (zh) | 一种消息推送方法及装置 | |
CN111249728B (zh) | 一种图像处理方法、装置及存储介质 | |
WO2023130931A1 (zh) | 服务异常提醒方法、电子设备及存储介质 | |
CN116755977B (zh) | 运动监测方法、电子设备及计算机可读存储介质 | |
CN111104209A (zh) | 一种处理任务的方法及相关设备 | |
CN115016712B (zh) | 退出二维码的方法和装置 | |
CN111475363B (zh) | 卡死识别方法及电子设备 | |
CN113380240B (zh) | 语音交互方法和电子设备 | |
CN114740986B (zh) | 手写输入显示方法及相关设备 | |
EP4057122A1 (en) | Screenshot method and related device | |
CN112286596A (zh) | 消息显示方法及电子设备 | |
CN116775345B (zh) | 一种数据传输方法及电子设备 | |
CN116048236B (zh) | 通信方法及相关装置 | |
CN113672454B (zh) | 冻屏监控方法、电子设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |