一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种控制方法、装置、终端设备及存储介质与流程

2022-11-13 22:43:56 来源:中国专利 TAG:


1.本技术涉及数据处理技术领域,尤其涉及一种控制方法、装置、终端设备及存储介质。


背景技术:

2.在相关技术中,android平台对多播包的管控主要是通过apf(android packet filter)技术来进行,并且提供接口给上层应用进行调用。apf技术主要是对bpf技术的封装,用来给上层应用或系统框架层调用。即,可以通过上层应用,实现对多播包的管控。
3.但是,由于上层应用自身的不稳定性及不可控性,导致可能出现不能按照预期对多播包进行管控的情况。


技术实现要素:

4.有鉴于此,本发明实施例提供了一种控制方法、装置、终端设备及存储介质。
5.根据本发明实施例的第一方面,提供一种控制方法,应用于终端设备,所述方法包括:
6.检测所述终端设备的屏幕的亮灭变化;
7.根据所述屏幕的亮灭变化,基于系统侧函数启动或者停止多播包过滤。
8.在一个实施例中,所述根据所述屏幕的亮灭变化,基于系统侧函数启动或者停止多播包过滤,包括:
9.当检测到所述屏幕从所述熄灭状态切换到点亮状态时,根据所述屏幕前一次点亮状态时所述多播包过滤的开启记录,确定启动或停止所述多播包过滤。
10.在一个实施例中,所述根据所述屏幕的亮灭变化,基于系统侧函数启动或者停止多播包过滤,包括:
11.根据所述屏幕的亮灭变化,通过系统侧的设置函数调用所述多播包过滤的使能函数并配置所述使能函数的入参;其中,所述使能函数,用于根据所述入参启动或者停止所述多播包过滤。
12.在一个实施例中,当根据检测的所述亮灭变化确定出所述屏幕从点亮状态切换到熄灭状态时,启动多播包过滤,包括:
13.当根据检测的所述亮灭变化确定所述屏幕从所述点亮状态切换到所述熄灭状态时,将所述系统侧的设置函数的入参设置为第一布尔取值;其中,
14.入参为所述第一布尔取值的设置函数,调用并将所述多播包过滤的所述使能函数的入参设置为第一布尔取值;入参为所述第一布尔取值的所述使能函数,使能所述多播包过滤。
15.在一个实施例中,当根据检测的所述亮灭变化确定出所述屏幕从熄灭状态切换到点亮状态时,启动或者停止多播包过滤,包括:
16.当根据检测的所述亮灭变化确定所述屏幕从所述熄灭状态切换到所述点亮状态,
且所述屏幕前一次点亮状态时所述多播包过滤的最终状态为启动时,将所述系统侧的设置函数的入参设置为第一布尔取值;其中,
17.入参为所述第一布尔取值的设置函数,调用并将所述多播包过滤的所述使能函数的入参设置为第一布尔取值;入参为所述第一布尔取值的所述使能函数,使能所述多播包过滤。
18.在一个实施例中,当根据检测的所述亮灭变化确定出所述屏幕从熄灭状态切换到点亮状态时,启动或者停止多播包过滤,还包括:
19.当根据检测的所述亮灭变化确定所述屏幕从所述熄灭状态切换到所述点亮状态,且所述屏幕前一次点亮状态时所述多播包过滤的最终状态为停止时,将所述系统侧的设置函数的入参设置为第二布尔取值;其中,
20.入参为所述第二布尔取值的设置函数,调用并将所述多播包过滤的所述使能函数的入参设置为第二布尔取值;入参为所述第二布尔取值的所述使能函数,去使能所述多播包过滤。
21.在一个实施例中,所述方法,还包括:
22.在所述屏幕进入点亮状态之后,应用层基于应用程序接口api对应的启动函数,调用所述多播包过滤的使能函数并配置所述使能函数的入参;其中,所述使能函数,用于根据所述启动函数配置的入参,启动所述多播包过滤;
23.和/或,
24.在所述屏幕进入点亮状态之后,应用层基于应用程序接口api对应的停止函数,调用所述多播包过滤的使能函数并配置所述使能函数的入参;其中,所述使能函数,用于根据所述停止函数配置的入参,停止所述多播包过滤。
25.根据本发明实施例的第二方面,提供一种控制装置,应用于终端设备,所述装置包括:
26.检测模块,用于检测所述终端设备的屏幕的亮灭变化;
27.第一控制模块,用于根据所述屏幕的亮灭变化,基于系统侧函数启动或者停止多播包过滤。
28.在一个实施例中,所述第一控制模块,具体用于:
29.当检测到所述屏幕从所述熄灭状态切换到点亮状态时,根据所述屏幕前一次点亮状态时所述多播包过滤的开启记录,确定启动或停止所述多播包过滤。
30.在一个实施例中,所述第一控制模块,具体用于:
31.根据所述屏幕的亮灭变化,通过系统侧的设置函数调用所述多播包过滤的使能函数并配置所述使能函数的入参;其中,所述使能函数,用于根据所述入参启动或者停止所述多播包过滤。
32.在一个实施例中,所述第一控制模块,包括:
33.第一控制单元,用于当根据检测的所述亮灭变化确定所述屏幕从所述点亮状态切换到所述熄灭状态时,将所述系统侧的设置函数的入参设置为第一布尔取值;其中,
34.入参为所述第一布尔取值的设置函数,调用并将所述多播包过滤的所述使能函数的入参设置为第一布尔取值;入参为所述第一布尔取值的所述使能函数,使能所述多播包过滤。
35.在一个实施例中,所述第一控制模块,包括:
36.第二控制单元,用于当根据检测的所述亮灭变化确定所述屏幕从所述熄灭状态切换到所述点亮状态,且所述屏幕前一次点亮状态时所述多播包过滤的最终状态为启动时,将所述系统侧的设置函数的入参设置为第一布尔取值;其中,
37.入参为所述第一布尔取值的设置函数,调用并将所述多播包过滤的所述使能函数的入参设置为第一布尔取值;入参为所述第一布尔取值的所述使能函数,使能所述多播包过滤。
38.在一个实施例中,所述第一控制模块,还包括:
39.第三控制单元,用于当根据检测的所述亮灭变化确定所述屏幕从所述熄灭状态切换到所述点亮状态,且所述屏幕前一次点亮状态时所述多播包过滤的最终状态为停止时,将所述系统侧的设置函数的入参设置为第二布尔取值;其中,
40.入参为所述第二布尔取值的设置函数,调用并将所述多播包过滤的所述使能函数的入参设置为第二布尔取值;入参为所述第二布尔取值的所述使能函数,去使能所述多播包过滤。
41.在一个实施例中,所述装置,还包括:
42.第二控制模块,用于在所述屏幕进入点亮状态之后,应用层基于应用程序接口api对应的启动函数,调用所述多播包过滤的使能函数并配置所述使能函数的入参;其中,所述使能函数,用于根据所述启动函数配置的入参,启动所述多播包过滤;
43.和/或,
44.所述第二控制模块,还用于在所述屏幕进入点亮状态之后,应用层基于应用程序接口api对应的停止函数,调用所述多播包过滤的使能函数并配置所述使能函数的入参;其中,所述使能函数,用于根据所述停止函数配置的入参,停止所述多播包过滤。
45.根据本发明实施例的第三方面,提供一种终端设备,所述终端设备包括第二方面所述的装置。
46.根据本发明实施例的第四方面,提供一种存储介质,其上存储由可执行程序,所述可执行程序被处理器执行时实现第一方面所述控制方法的步骤。
47.本发明实施例提供的控制方法,根据检测的终端设备的屏幕的亮灭变化,启动或者停止多播包过滤,从系统层面控制屏幕发生亮灭变化后的多播包过滤,解决屏幕熄灭后不能及时启动多播包过滤,以及,屏幕点亮后不能及时恢复多播包过滤状态等问题。
48.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明实施例。
附图说明
49.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明实施例,并与说明书一起用于解释本发明实施例的原理。
50.图1是根据一示例性实施例示出的第一种控制方法的流程示意图;
51.图2是根据一示例性实施例示出的第二种控制方法的流程示意图;
52.图3是根据一示例性实施例示出的第三种控制方法的流程示意图;
53.图4是根据一示例性实施例示出的第四种控制方法的流程示意图;
54.图5是根据一示例性实施例示出的第五种控制方法的流程示意图;
55.图6是现有技术中对多播包过滤管控出现问题的流程示意图;
56.图7是根据一示例性实施例示出的一种控制装置的框图;
57.图8是根据一示例性实施例示出的一种控制装置的组成结构框图。
具体实施方式
58.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明实施例的一些方面相一致的装置和方法的例子。
59.在本发明实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明实施例。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
60.应当理解,尽管在本发明实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
61.本技术实施例提供一种控制方法,应用于终端设备,如图1所示,所述方法包括:
62.步骤100:检测所述终端设备的屏幕的亮灭变化;
63.步骤101:根据所述屏幕的亮灭变化,基于系统侧函数启动或者停止多播包过滤。
64.在本实施例中,终端设备的屏幕的亮灭状态包括:点亮状态,灰暗状态,和/或,熄灭状态,其中,灰暗状态为屏幕由点亮状态切换至熄灭状态,或者,由熄灭状态切换至点亮状态的中间状态,屏幕在灰暗状态下的亮度介于在点亮状态和熄灭状态之间;终端设备的屏幕的亮灭变化包括:从点亮状态切换为熄灭状态,从点亮状态切换为灰暗状态,从灰暗状态切换为熄灭状态,从熄灭状态切换为灰暗状态,从灰暗状态切换为点亮状态,和/或,从熄灭状态切换为点亮状态。
65.在本发明所有实施例中,在确定屏幕的亮灭变化时,可以根据实际应用的需要,将灰暗状态等同于点亮状态或者熄灭状态。
66.具体地,终端设备的屏幕的亮灭变化包括如下至少之一:
67.当屏幕处于点亮状态时,如果在指定的第一时间段内,没有接收到任何屏幕操作,则终端设备的屏幕将从点亮状态切换为熄灭状态,或者,屏幕先从点亮状态切换为灰暗状态,再从灰暗状态最终切换为熄灭状态;
68.当屏幕处于熄灭状态时,如果接收到屏幕操作,终端设备的屏幕将从熄灭状态切换为点亮状态,或者,屏幕先从熄灭状态切换为灰暗状态,再从灰暗状态最终切换为点亮状态;
69.当屏幕处于灰暗状态时,如果在指定的第二时间段内,没有接收到任何屏幕操作,则终端设备的屏幕将从灰暗状态切换为熄灭状态;如果在指定的第三时间段内,接收到屏
幕操作,终端设备的屏幕将从灰暗状态切换为点亮状态。
70.这里,屏幕操作包括:在位于屏幕感应区的任意位置的点击、双击、横向滑动、纵向滑动、画圈滑动等操作。
71.在本实施例中,终端设备在检测到屏幕发生亮灭变化后,根据所述屏幕的亮灭变化,基于系统侧函数启动或者停止多播包过滤。具体实现方式可包括如下至少之一:
72.当屏幕从点亮状态切换为熄灭状态,操作系统基于系统侧函数启动多播包过滤,即,在屏幕进入熄灭状态后进行多播包过滤,操作系统基于系统侧函数不对多播包进行处理;
73.当屏幕从点亮状态切换为灰暗状态,操作系统基于系统侧函数启动多播包过滤,即,将灰暗状态等同于熄灭状态,在屏幕进入灰暗状态后,操作系统基于系统侧函数即开始进行多播包过滤,不对多播包进行处理;
74.当屏幕从点亮状态切换为灰暗状态,操作系统基于系统侧函数不对多播包过滤做开启或者停止操作;且,当屏幕从灰暗状态切换为熄灭状态,操作系统基于系统侧函数启动多播包过滤,即,将灰暗状态等同于点亮状态,在屏幕进入熄灭状态后,才开始进行多播包过滤,不对多播包进行处理;
75.当屏幕从熄灭状态切换为点亮状态,操作系统基于系统侧函数停止多播包过滤,即,在屏幕进入点亮状态后,操作系统基于系统侧函数停止多播包过滤,对多播包进行处理;
76.当屏幕从熄灭状态切换为灰暗状态,操作系统基于系统侧函数停止多播包过滤,即,将灰暗状态等同于点亮状态,在屏幕进入灰暗状态后,操作系统基于系统侧函数即停止多播包过滤,对多播包进行处理;
77.当屏幕从熄灭状态切换为点亮状态,操作系统基于系统侧函数不对多播包过滤做开启或者停止操作,以实现屏幕在进入点亮状态后继续保持过滤多播包,不对多播包进行处理。
78.这里,多播包是指一台服务器/主机发出的可以同时被多个有资格的终端设备接收的数据包。多播包过滤是指过滤多播包,不对其进行处理,例如,通过多播过滤器判断进入的数据包是否为多播数据,以及判断该多播数据是否为指定多播地址的多播数据,以确定是否对其进行过滤。
79.在终端设备中,使用多播包技术的应用包括:网络音频/视频广播、aod/vod、网络视频会议、多媒体远程教育和虚拟现实游戏等。
80.操作系统可以使用系统侧函数,直接根据屏幕的亮灭变化控制多播包过滤的启动或停止,从而减少了因为应用层的应用通过api控制多播包过滤的启动或停止导致的异常现象。
81.在一个实施例中,如图2所示,上述步骤101,包括:
82.步骤1011:当检测到所述屏幕从点亮状态切换到熄灭状态时,操作系统基于系统侧函数启动多播包过滤;
83.和/或,
84.步骤1012:当检测到所述屏幕从所述熄灭状态切换到点亮状态时,操作系统基于系统侧函数根据所述屏幕前一次点亮状态时所述多播包过滤的开启记录,确定启动或停止
所述多播包过滤。
85.在一些实施例中,步骤101至少包括步骤10111。
86.在上述步骤1011中,由于屏幕在熄灭状态下,并不存在多播包的应用需求,相应地,也没有必要接收多播包。因此,在上述步骤1011中,当检测到所述屏幕从点亮状态切换到熄灭状态时,启动多播包过滤,不对多播包进行处理,从而,可以减少在灭屏状态下处理多播包造成的功耗浪费。
87.基于上述步骤1011,屏幕从点亮状态切换到熄灭状态时,操作系统基于系统侧函数启动多播包过滤的动作,包括:
88.屏幕处于点亮状态时,若多播包过滤处于停止状态,则屏幕从点亮状态切换到熄灭状态时,操作系统基于系统侧函数启动多播包过滤;
89.屏幕处于点亮状态时,若多播包过滤处于启动状态,则屏幕从点亮状态切换到熄灭状态时,操作系统基于系统侧函数启动多播包过滤,或者,保持多播包过滤处于启动状态(即系统侧不做任何事情)。
90.在上述步骤1012中,当检测到所述屏幕从所述熄灭状态切换到点亮状态时,还进一步根据所述屏幕前一次点亮状态时所述多播包过滤的开启记录,确定启动或停止所述多播包过滤,以恢复屏幕点亮状态时的多播包过滤的开启状态。
91.在一个实施例中,开启记录包括开启记录标识位,开启记录标识位用于指示屏幕前一次点亮状态时多播包过滤的最终处于启动状态或者停止状态。
92.例如,在屏幕前一次点亮状态时,当收到应用调用用于开启多播包过滤的启动函数startfilteringmulticastpackets(),则置开启记录标识位为第一布尔取值(true),用于指示屏幕前一次点亮状态时多播包过滤的最终处于启动状态;当收到应用调用用于停止多播包过滤的停止函数stopfilteringmulticastpackets(),则置开启记录标识位为第二布尔取值(false),用于指示屏幕前一次点亮状态时多播包过滤的最终处于停止状态。
93.此处的startfilteringmulticastpackets()是一个通过应用层的应用通过api调用系统侧函数进行多播包过滤启动的函数。
94.此处的stopfilteringmulticastpackets()是一个通过应用层的应用通过api调用系统侧函数进行多播包过滤停止的函数。
95.最后,当检测到所述屏幕从所述熄灭状态切换到点亮状态时,根据开启记录标识位,确定启动或停止所述多播包过滤,以恢复屏幕点亮状态时的多播包过滤的开启状态。例如:若开启记录标识位为第一布尔取值,启动多播包过滤;若开启记录标识位为第二布尔取值,停止多播包过滤。
96.在另一个实施例中,开启记录用于记录屏幕处于点亮状态时多播包过滤的开启事件或停止事件。例如,应用调用用于开启多播包过滤的启动函数的开启事件,和/或,应用调用用于停止多播包过滤的停止函数的停止事件。
97.一种场景下,开启记录可包括至少一条开启记录,每一条开启记录包括:发起时间,发起应用,事件,和/或,执行结果。其中,发起时间包括:应用调用启动函数的时间,和/或,应用调用停止函数的时间;发起应用包括:调用启动函数的应用,和/或,调用停止函数的应用;事件包括:调用启动函数,和/或,调用停止函数;执行结果包括:执行成功,和/或,执行失败。
98.在本实施例中,当检测到所述屏幕从所述熄灭状态切换到点亮状态时,根据所述屏幕前一次点亮状态时所述多播包过滤的开启记录的所记录的发起时间、发起应用和/或执行结果,确定启动或停止所述多播包过滤。
99.例如,在一次终端设备的屏幕从熄灭状态切换到点亮状态时,其在前一次点亮状态时所述多播包过滤的开启记录,如下表1所示:
100.表1多播包过滤的开启记录
101.序号发起时间发起应用事件执行结果1t1应用1调用停止函数执行成功2t2应用2调用启动函数执行成功3t3应用1调用停止函数执行成功4t4应用3调用启动函数执行成功5t5应用4调用停止函数执行成功6t6应用2调用启动函数执行成功7t7应用1调用停止函数执行失败8t8应用1调用停止函数执行成功
102.其中,上述表1中,发起时间由早到晚的排序依次为:t1、t2、t3、t4、t5、t6、t7、t8。
103.在一个示例中,停止函数用于停止终端设备对所用应用的多播包过滤,即,对所用应用的多播包均处理;启动函数用于启动终端设备对所有应用的多播包过滤,即,对所用应用的多播包均不处理。
104.在该示例中,当检测到所述屏幕从所述熄灭状态切换到点亮状态时,基于发起时间排序的最后一条记录,确定启动或停止所述多播包过滤:
105.首先,确定基于发起时间排序的最后一条记录为:第8条记录,即,发起时间为t8的记录;
106.然后,基于确定的第8条记录,确定该记录对应的事件为调用停止函数,且执行结果为执行成功,即,屏幕前一次点亮状态时,开启记录的最后一次记录为停止多播包过滤,即,在屏幕在从点亮状态进入熄灭状态之前是停止了多播包过滤的;
107.最后,停止多播包过滤,以恢复前一次点亮状态时的多播包过滤开启状态。
108.在另一个示例中,继续参考上述表1,当检测到所述屏幕从所述熄灭状态切换到点亮状态时,基于预设优先级最高的发起应用的最后一条记录,确定启动或停止所述多播包过滤。例如,应用1的优先级高于应用2、应用3和应用4,则确定步骤如下:
109.首先,确定预设优先级最高的发起应用的最后一条记录为:第8条记录,即,发起时间为t8的记录;
110.然后,基于确定的第8条记录,确定该记录对应的事件为调用停止函数,且执行结果为执行成功,即,屏幕前一次点亮状态时,开启记录的最后一次记录为停止多播包过滤,即,在屏幕在从点亮状态进入熄灭状态之前是停止了多播包过滤的;
111.最后,停止多播包过滤,以恢复前一次点亮状态时的多播包过滤开启状态。
112.在另一个示例中,在一次终端设备的屏幕从熄灭状态切换到点亮状态时,其在前一次点亮状态时所述多播包过滤的开启记录,如下表2所示:
113.表2多播包过滤的开启记录
114.序号发起时间发起应用事件执行结果1t9应用1调用停止函数执行成功2t10应用2调用启动函数执行成功3t11应用1调用启动函数执行成功4t12应用3调用启动函数执行成功5t13应用4调用停止函数执行成功6t14应用2调用停止函数执行成功7t15应用1调用停止函数执行成功8t16应用1调用启动函数执行成功
115.其中,上述表2中,发起时间由早到晚的排序依次为:t1、t2、t3、t4、t5、t6、t7、t8。
116.在该示例中,停止函数用于停止终端设备对指定应用的多播包过滤,即,对指定应用的多播包均处理;启动函数用于启动终端设备对指定应用的多播包过滤,即,对指定应用的多播包均不处理。
117.基于上述表2所示的开启记录,当检测到所述屏幕从所述熄灭状态切换到点亮状态时,确定启动或停止指定应用的多播包过滤。这里,假设指定应用包括应用1、应用2、应用3和应用4,则确定启动或停止指定应用的多播包过滤的步骤如下:
118.首先,针对每个指定应用,确定其基于发起时间排序的最后一条记录,具体为:应用1对应第8条记录,即,发起时间为t16的记录;应用2对应第6条记录,即,发起时间为t14的记录;应用3对应第4条记录,即,发起时间为t12的记录;应用4对应第5条记录,即,发起时间为t13的记录;
119.然后,基于确定的与指定应用对应的最后一条记录,确定记录对应的事件及执行结果:
120.应用1对应的最后一条记录8,该记录对应的事件为调用启动函数,且执行结果为执行成功,即,屏幕前一次点亮状态时,应用1对应的开启记录的最后一次记录为启动多播包过滤,即,在屏幕在从点亮状态进入熄灭状态之前是启动了多播包过滤的;
121.应用2对应的最后一条记录6,该记录对应的事件为调用停止函数,且执行结果为执行成功,即,屏幕前一次点亮状态时,应用1对应的开启记录的最后一次记录为停止多播包过滤,即,在屏幕在从点亮状态进入熄灭状态之前是停止了多播包过滤的;
122.应用3对应的最后一条记录4,该记录对应的事件为调用启动函数,且执行结果为执行成功,即,屏幕前一次点亮状态时,应用3对应的开启记录的最后一次记录为启动多播包过滤,即,在屏幕在从点亮状态进入熄灭状态之前是启动了多播包过滤的;
123.应用4对应的最后一条记录5,该记录对应的事件为调用启动函数,且执行结果为执行成功,即,屏幕前一次点亮状态时,应用4对应的开启记录的最后一次记录为启动多播包过滤,即,在屏幕在从点亮状态进入熄灭状态之前是启动了多播包过滤的;
124.最后,分别基于应用在屏幕在从点亮状态进入熄灭状态之前的多播过滤开启状态,停止或启动多播包过滤,以恢复前一次点亮状态时的多播包过滤开启状态:
125.启动应用1的多播包过滤,以恢复前一次点亮状态时的应用1的多播包过滤开启状态;
126.停止应用2的多播包过滤,以恢复前一次点亮状态时的应用2的多播包过滤开启状
态;
127.启动应用3的多播包过滤,以恢复前一次点亮状态时的应用3的多播包过滤开启状态;
128.启动应用4的多播包过滤,以恢复前一次点亮状态时的应用4的多播包过滤开启状态。
129.在一个实施例中,如图3所示,上述步骤101,具体包括:
130.步骤101’:根据所述屏幕的亮灭变化,通过系统侧的设置函数调用所述多播包过滤的使能函数并配置所述使能函数的入参;其中,所述使能函数,用于根据所述入参启动或者停止所述多播包过滤。
131.具体地,假设设置函数为setsys(),使能函数为setmulticastfilter(),当检测到屏幕的亮灭变化时,配置设置函数的入参,并通过设置函数setsys()调用使能函数setmulticastfilter(),并以配置的设置函数的入参作为使能函数的入参,使能函数根据该入参启动或者停止多播包过滤。
132.setmulticastfilter()为前述的系统侧的函数的一个举例。
133.在具体实现过程中,startfilteringmulticastpackets()和stopfilteringmulticastpackets(),将接口调度,调用setmulticastfilter()来配置mmulticastfilterenalbed的值,从而实现对多播包过滤的启动或停止。
134.在另一个实施例中,开启记录不存在任何记录,即,在屏幕前一次点亮状态时未有任何应用启动或者停止多播包过滤,故,不作任何操作。
135.在一个实施例中,如图4所示,上述步骤101’,包括:
136.步骤1011’:当根据检测的所述亮灭变化确定所述屏幕从所述熄灭状态切换到所述点亮状态,且所述屏幕前一次点亮状态时所述多播包过滤的最终状态为启动时,将所述系统侧的设置函数的入参设置为第一布尔取值;其中,
137.入参为所述第一布尔取值的设置函数,调用并将所述多播包过滤的所述使能函数的入参设置为第一布尔取值;入参为所述第一布尔取值的所述使能函数,使能所述多播包过滤;
138.或者,
139.步骤1012’:当根据检测的所述亮灭变化确定所述屏幕从所述熄灭状态切换到所述点亮状态,且所述屏幕前一次点亮状态时所述多播包过滤的最终状态为停止时,将所述系统侧的设置函数的入参设置为第二布尔取值;其中,
140.入参为所述第二布尔取值的设置函数,调用并将所述多播包过滤的所述使能函数的入参设置为第二布尔取值;入参为所述第二布尔取值的所述使能函数,去使能所述多播包过滤。
141.具体地,设置函数的入参为根据屏幕的亮灭变化和/或屏幕前一次点亮状态时多播包过滤的开启记录确定的。例如:
142.若屏幕从点亮状态切换到熄灭状态,将设置函数的入参设置为第一布尔取值。
143.第一布尔值可为true,则入参为第一布尔取值的设置函数setsys(true),调用并将多播包过滤的使能函数的入参设置为第一布尔取值,即setmulticastfilter(true);入参为所述第一布尔取值的所述使能函数setmulticastfilter(true),使能所述多播包过
滤;
144.若屏幕从熄灭状态切换到点亮状态,且开启记录指示屏幕前一次点亮状态下多播包过滤的最终状态为开启状态,将设置函数的入参设置为第一布尔值。
145.第一布尔值可为true,则入参为第一布尔取值的设置函数setsys(true),调用并将多播包过滤的使能函数的入参设置为第一布尔取值,即setmulticastfilter(true);入参为所述第一布尔取值的所述使能函数setmulticastfilter(true),使能所述多播包过滤;
146.若屏幕从熄灭状态切换到点亮状态,且开启记录指示屏幕前一次点亮状态下多播包过滤的最终状态为为停止状态,将设置函数的入参设置为第二布尔值。
147.第二布尔值可为false,则入参为第二布尔取值的设置函数setsys(false),调用并将多播包过滤的使能函数的入参设置为第二布尔取值,即setmulticastfilter(false);入参为所述第二布尔取值的所述使能函数setmulticastfilter(false),去使能所述多播包过滤。
148.在一个实施例中,如图5所示,上述方法,还包括:
149.步骤102:根据所述屏幕的亮灭变化,通过应用层基于应用程序接口api对应的启动函数和停止函数,调用所述多播包过滤的使能函数并配置所述使能函数的入参;其中,所述使能函数,用于根据所述入参启动或者停止所述多播包过滤。
150.具体地,上述步骤102包括:
151.步骤1021:在所述屏幕进入点亮状态之后,应用层基于应用程序接口api对应的启动函数,调用所述多播包过滤的使能函数并配置所述使能函数的入参;其中,所述使能函数,用于根据所述启动函数配置的入参,启动所述多播包过滤;
152.和/或,
153.步骤1022:在所述屏幕进入点亮状态之后,应用层基于应用程序接口api对应的停止函数,调用所述多播包过滤的使能函数并配置所述使能函数的入参;其中,所述使能函数,用于根据所述停止函数配置的入参,停止所述多播包过滤。
154.具体地,启动函数startfilteringmulticastpackets()或停止函数stopfilteringmulticastpackets()的入参为根据屏幕的亮灭变化和/或屏幕前一次点亮状态时多播包过滤的开启记录确定的。例如:
155.若屏幕从点亮状态切换到熄灭状态,应用层将启动函数startfilteringmulticastpackets()的入参设置为第一布尔取值,即,startfilteringmulticastpackets(true),基于该启动函数调用并将多播包过滤的使能函数的入参设置为第一布尔取值,即setmulticastfilter(true);入参为所述第一布尔取值的所述使能函数setmulticastfilter(true),使能(即,启动)所述多播包过滤;
156.若屏幕从熄灭状态切换到点亮状态,且开启记录指示屏幕前一次点亮状态下多播包过滤的最终状态为开启状态,则应用层将启动函数startfilteringmulticastpackets()的入参设置为第一布尔取值,即,startfilteringmulticastpackets(true),基于该启动函数调用并将多播包过滤的使能函数的入参设置为第一布尔取值,即setmulticastfilter(true);入参为所述第一布尔取值的所述使能函数setmulticastfilter(true),使能(即,启动)所述多播包过滤;
157.若屏幕从熄灭状态切换到点亮状态,且开启记录指示屏幕前一次点亮状态下多播包过滤的最终状态为为停止状态,则应用层将停止函数stopfilteringmulticastpackets()的入参设置为第二布尔取值,即,stopfilteringmulticastpackets(false),基于该停止函数调用并将多播包过滤的使能函数的入参设置为第二布尔取值,即setmulticastfilter(false);入参为所述第二布尔取值的所述使能函数setmulticastfilter(false),去使能(即,停止)所述多播包过滤。
158.以下,结合上述任意实施例提供一个具体示例:
159.现有android平台中,鉴于网络中的多播包并没有太多业务应用,且频繁的处理多播包会导致设备耗电量变高,所以,android平台默认启动多播包过滤,以过滤掉多播包,降低设备能耗。
160.同时,为满足部分应用对多播包的应用需求,android平台也提供了针对多播包过滤进行管控的接口,例如,接口提供供应用程序调用的启动函数startfilteringmulticastpackets()和停止函数stopfilteringmulticastpackets(),启动函数用于启动多播包过滤,停止函数用于停止多播包过滤。当应用需要接收多播包时,应用可以通过调用停止函数来停止过滤多播包,以从网络中接收应用需要的多播包;当应用处理涉及多播包的业务后,需要调用启动函数以恢复多播包过滤。
161.但是,由于应用在应用过程中可能出现异常,比如应用本身故障或者响应不够灵敏等,导致应用在停止多播包过滤后,由于发生异常,而不能及时启动多播包过滤,甚至在设备进入灭屏待机状态后,也一直在接收多播包,并在接收到多播包时即唤醒设备,增加能耗。
162.例如,如图6所示,首先,应用根据业务需要,调用停止函数stopfilteringmulticastpackets()停止多播包过滤,以停止android设备对多播包的过滤;但是,在停止多播包过滤后,由于应用或android设备出现异常,导致应用非正常退出,进而应用无法调用启动函数startfilteringmulticastpackets()以启动android设备对多播包的过滤,以致于在android设备灭屏待机后,仍继续接收多播包,导致频繁唤醒android设备系统,大幅拉升了设备灭屏待机状态下的功耗,耗电严重。
163.为解决上述问题,按照如下方案对多播包过滤进行控制:
164.1.三方应用通过api进行停止设备过滤多播包的函数(即,停止函数)是stopfilteringmulticastpackets(),在停止函数内加入标志位(即,开启记录标识位)mmulticastfilterenalbed,当停止函数被调用时,标志位mmulticastfilterenalbed设置为false,表示当前有应用请求终端设备停止多播包过滤。
165.2.三方应用通过api进行恢复设备过滤多播包的函数(即,启动函数)是startfilteringmulticastpackets(),在启动函数内加入标志位(即,开启记录标识位)mmulticastfilterenalbed,当启动函数被调用时,标志位mmulticastfilterenalbed设置为true,表示当前有应用请求终端设备启动多播包过滤。
166.3.停止函数stopfilteringmulticastpackets()和启动函数startfilteringmulticastpackets()中都是通过接口设置函数setmulticastfilter()来控制多播包过滤的启动/停止,设置函数setmulticastfilter()的入参是布尔(bool)变量,当传入参数是0(即,第二布尔取值),即“false”时,表示停止多播包过滤,当传入参数是
1(即,第一布尔取值),“true”时,表示启动多播包过滤。
167.4.android设备屏幕亮灭发生变化时,屏幕亮灭函数handlescreenstatechanged()会被执行,通过该函数,如果当前屏幕是灭屏,则屏幕亮灭状态标识mscreen会被设置为false,如果当前屏幕是亮屏,则屏幕亮灭状态标识mscreen会被设置为true。
168.5.在屏幕亮灭状态发生变化后,且handlescreenstatechanged()中屏幕亮灭状态标识mscreen的值已经被赋值对应值后,进行如下判断:
169.a.如果当前是灭屏状态,则立即调用setmulticastfilter(true)启动终端设备的多播包过滤;
170.b.如果当前是亮屏状态,且开启记录标识位mmulticastfilterenalbed是false的状态,表示在之前亮屏阶段,有应用调用过api stopfilteringmulticastpackets()进行停止多播过滤的行为,这时候执行setmulticastfilter(false)的动作,继续停止终端设备的多播包过滤,保证应用业务不受影响。
171.c.如果当前是亮屏状态,开启记录标识位mmulticastfilterenalbed是true的状态,那么,表示应用已经通过启动函数startfilteringmulticastpackets()恢复启动了终端设备的多播包过滤,故,系统侧不用处理。
172.如图7所示,本发明实施例还提供了一种控制装置10,应用于终端设备,所述装置包括:
173.检测模块100,用于检测所述终端设备的屏幕的亮灭变化;
174.第一控制模块101,用于根据所述屏幕的亮灭变化,基于系统侧函数启动或者停止多播包过滤。
175.在一个实施例中,所述第一控制模块101,具体用于:
176.当检测到所述屏幕从点亮状态切换到熄灭状态时,启动多播包过滤;
177.或者,
178.当检测到所述屏幕从所述熄灭状态切换到点亮状态时,根据所述屏幕前一次点亮状态时所述多播包过滤的开启记录,确定启动或停止所述多播包过滤。
179.在一个实施例中,所述第一控制模块101,具体用于:
180.根据所述屏幕的亮灭变化,通过系统侧的设置函数调用所述多播包过滤的使能函数并配置所述使能函数的入参;其中,所述使能函数,用于根据所述入参启动或者停止所述多播包过滤。
181.在一个实施例中,所述第一控制模块101,包括:
182.第一控制单元1011,用于当根据检测的所述亮灭变化确定所述屏幕从所述点亮状态切换到所述熄灭状态时,将所述系统侧的设置函数的入参设置为第一布尔取值;其中,
183.入参为所述第一布尔取值的设置函数,调用并将所述多播包过滤的所述使能函数的入参设置为第一布尔取值;入参为所述第一布尔取值的所述使能函数,使能所述多播包过滤。
184.在一个实施例中,所述第一控制模块101,包括:
185.第二控制单元1012,用于当根据检测的所述亮灭变化确定所述屏幕从所述熄灭状态切换到所述点亮状态,且所述屏幕前一次点亮状态时所述多播包过滤的最终状态为启动时,将所述系统侧的设置函数的入参设置为第一布尔取值;其中,
186.入参为所述第一布尔取值的设置函数,调用并将所述多播包过滤的所述使能函数的入参设置为第一布尔取值;入参为所述第一布尔取值的所述使能函数,使能所述多播包过滤;
187.或者,
188.第三控制单元1013,用于当根据检测的所述亮灭变化确定所述屏幕从所述熄灭状态切换到所述点亮状态,且所述屏幕前一次点亮状态时所述多播包过滤的最终状态为停止时,将所述系统侧的设置函数的入参设置为第二布尔取值;其中,
189.入参为所述第二布尔取值的设置函数,调用并将所述多播包过滤的所述使能函数的入参设置为第二布尔取值;入参为所述第二布尔取值的所述使能函数,去使能所述多播包过滤。
190.在一个实施例中,所述装置,还包括:
191.第二控制模块102,用于在所述屏幕进入点亮状态之后,应用层基于应用程序接口api对应的启动函数,调用所述多播包过滤的使能函数并配置所述使能函数的入参;其中,所述使能函数,用于根据所述启动函数配置的入参,启动所述多播包过滤;
192.和/或,
193.所述第二控制模块102,还用于在所述屏幕进入点亮状态之后,应用层基于应用程序接口api对应的停止函数,调用所述多播包过滤的使能函数并配置所述使能函数的入参;其中,所述使能函数,用于根据所述停止函数配置的入参,停止所述多播包过滤。
194.本示例性实施例还提供一种终端设备,所述终端设备包括上述任一项实施例所述的装置。
195.本示例性实施例还提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现上述任一项实施例所述的方法。
196.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
197.在示例性实施例中,检测模块100、第一控制模块101和第二控制模块102等可以被一个或多个中央处理器(cpu,central processing unit)、图形处理器(gpu,graphics processing unit)、基带处理器(bp,baseband processor)、应用专用集成电路(asic,application specific integrated circuit)、dsp、可编程逻辑器件(pld,programmable logic device)、复杂可编程逻辑器件(cpld,complex programmable logic device)、现场可编程门阵列(fpga,field-programmable gate array)、通用处理器、控制器、微控制器(mcu,micro controller unit)、微处理器(microprocessor)、或其他电子元件实现,用于执行前述方法。
198.图8是根据一示例性实施例示出的一种控制装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
199.参照图8,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(i/o)的接口812,传感器组件814,以及通信组件816。
200.处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相
机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
201.存储器804被配置为存储各种类型的数据以支持在装置800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
202.电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
203.多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当装置800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
204.音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(mic),当装置800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
205.i/o接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
206.传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到装置800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
207.通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如wifi,4g或5g,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(nfc)模块,以促进短程通信。例
如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
208.在示例性实施例中,装置800可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
209.在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
210.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明实施例的其它实施方案。本技术旨在涵盖本发明实施例的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明实施例的一般性原理并包括本发明实施例未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明实施例的真正范围和精神由下面的权利要求指出。
211.应当理解的是,本发明实施例并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明实施例的范围仅由所附的权利要求来限制。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献