智能设备的广播拦截方法和装置制造方法

文档序号:7776645阅读:164来源:国知局
智能设备的广播拦截方法和装置制造方法
【专利摘要】本发明公开了一种智能设备的广播拦截方法和装置;其中的广播拦截方法包括:在框架层,获取广播中心需要向应用的广播接收器发送的广播;根据所述广播中包含的信息确定所述广播的广播类型;根据所述广播类型以及广播订阅信息确定需要接收所述广播的应用的标识信息;在判断出所述应用的标识信息与预先设定的广播拦截信息集合中应用的标识信息匹配、且所述广播的广播类型与预先针对应用设定的广播过滤类型匹配的情况下,禁止向所述应用的广播接收器发送所述广播;否则,允许向所述应用的广播接收器发送所述广播。
【专利说明】智能设备的广播拦截方法和装置
【技术领域】
[0001]本发明涉及智能设备的广播技术,具体涉及一种智能设备的广播拦截方法和装置。
【背景技术】
[0002]在操作系统为Android的智能设备(尤其是智能移动设备)中,一些应用(也可以称为第三方应用或者应用程序)会根据其接收到的来自操作系统的相应类型的广播,在用户不知情的情况下,在后台自动执行一些操作;一个具体的例子,智能移动设备在开机或者成功接入网络后,其操作系统的框架(Framework)层中的广播中心(如活动管理服务,ActivityManagerService)会向相应应用的广播接收器发送开机类型的广播或网络连接类型的广播,相应应用在接收到开机类型或者网络连接类型的广播后,在后台自动执行启动操作,从而使其处于运行状态。
[0003]应用接收到广播而在后台自动执行的操作很可能会给智能设备带来不良影响,例如,自启动的应用会占用智能移动设备的处理以及缓存等资源,从而可能会使智能移动设备的性能恶化,甚至有可能会影响智能移动设备中其他应用的正常运行;再例如,恶意应用可能会在接收到相应类型的广播后执行一些恶意操作,从而会对智能移动设备的安全产生不良影响;还有,自启动的应用会缩短智能移动设备的续航时间。
[0004]为了避免应用在接收到广播后在后台自动执行的操作对智能设备的不良影响,应针对相应应用进行广播拦截。现有的广播拦截方式通常为:对相应应用的广播接收器进行组件禁用设置,使广播中心所面对的广播接收器均为未被组件禁用设置的广播接收器,从而相应应用不会再通过被组件禁用设置的广播接收器接收到来自广播中心的广播。
[0005]发明人在实现本发明过程中发现,应用在正常运行过程中很可能也需要接收广播,而将应用的广播接收器进行组件禁用设置后,该应用不会再通过该广播接收器接收到来自广播中心的任何类型的广播,从而现有的广播拦截方式很可能会影响应用的正常运行,如应用不能够正常启动或者不能正常实现某个功能等;另外,组件禁用设置通常需要具有较高的设置权限,如安全管理应用在具有Root权限后,才能将相应应用的广播接收器设置为组件禁用状态;而安全管理应用具有较高的设置权限会产生一些不良影响,如增加了智能设备中的恶意程序(如木马病毒程序)获得智能设备的Root权限的风险等,从而会影响智能设备的安全。还有,由于较高的设置权限而引起的故障通常会被排除在智能设备售后保修服务范围之外。

【发明内容】

[0006]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的智能设备的广播拦截方法和相应的智能设备的广播拦截装置。
[0007]依据本发明的一个方面,提供了一种智能设备的广播拦截方法,该方法包括:在框架层,获取广播中心需要向应用的广播接收器发送的广播;根据所述广播中包含的信息确定所述广播的广播类型;根据所述广播类型以及广播订阅信息确定需要接收所述广播的应用的标识信息;在判断出所述应用的标识信息与预先设定的广播拦截信息集合中应用的标识信息匹配、且所述广播的广播类型与预先针对应用设定的广播过滤类型匹配的情况下,禁止向所述应用的广播接收器发送所述广播;否则,允许向所述应用的广播接收器发送所述广播。
[0008]根据本发明的另一方面,提供了一种智能设备的广播拦截装置,该装置包括:获取模块,设置于框架层,适于获取广播中心需要向应用的广播接收器发送的广播;第一确定模块,设置于框架层,适于根据所述广播中包含的信息确定所述广播的广播类型;第二确定模块,设置于框架层,适于根据所述广播类型以及广播订阅信息确定需要接收所述广播的应用的标识信息;拦截处理模块,设置于框架层,适于在判断出所述应用的标识信息与预先设定的广播拦截信息集合中应用的标识信息匹配、且所述广播的广播类型与预先针对应用设定的广播过滤类型匹配的情况下,禁止向所述应用的广播接收器发送所述广播;否则,允许向所述应用的广播接收器发送所述广播。
[0009]本发明的智能设备的广播拦截方法和装置通过在确定出需要发送给应用的广播接收器的广播的广播类型以及需要接收该广播的应用的标识信息之后,进行应用的标识信息的匹配以及广播类型的匹配操作,这样,可以根据匹配结果对相应的应用进行相应广播类型的广播拦截,也即,本发明在将广播发送到应用的广播接收器的过程中有针对性的实现了广播拦截;从而本发明在避免了某些应用在用户不知情的情况下,在后台执行自启动等操作的同时,避免了将广播接收器组件设置为禁用而对应用的正常运行带来的不良影响;而且,本发明还可以同时避免设置权限较高而对智能设备的安全以及售后保修服务等方面带来的不良影响。
[0010]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【专利附图】

【附图说明】
[0011]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。本实施例的附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0012]图1示出了根据本发明实施例一的智能设备的广播拦截方法流程图;
[0013]图2示出了根据本发明实施例二的智能设备的广播拦截方法流程图;
[0014]图3示出了根据本发明实施例三的智能设备的广播拦截装置示意图。
【具体实施方式】
[0015]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0016]实施例一、智能设备的广播拦截方法。下面结合图1对本实施例的方法进行说明。[0017]图1中,S100、在框架(Framework)层,获取广播中心需要向应用的广播接收器发送的广播。
[0018]具体的,本实施例中的智能设备可以为基于Android操作系统的智能设备,当然,如果存在与Andriod操作系统结构类似结构的其他操作系统,则本实施例中的智能设备也可以为基于该结构类似的操作系统的智能设备。下面以Andriod操作系统为例对本发明进行说明。
[0019]在基于Android的智能设备中,应用层中的应用可以根据其具体需求利用订阅消息在框架层注册广播接收器,应用注册广播接收器的过程会产生广播订阅信息,该广播订阅信息可以存储在框架层中,且该广播订阅信息应包括应用的标识信息(也可以称为应用的广播接收器的标识信息)以及广播类型等信息;这样,框架层可以根据广播订阅信息向相应的应用的广播接收器发送相应类型的广播。
[0020]应用注册的广播接收器通常可以接收多种不同广播类型的广播,而且应用注册的广播接收器可以为静态广播接收器,也可以为动态广播接收器。另外,上述应用的标识信息可以为应用的包名称(即包标识),上述广播类型可以为开机类型或者网络连接类型等。
[0021]智能设备在执行相应操作(如开机操作或者网络连接操作等)时,其操作系统会产生相应广播类型的广播(如开机类型的广播或者网络连接类型的广播等),以将智能设备当前执行的操作通知给相应的应用,从而应用可以根据接收到的广播执行相应的操作(如自启动操作等)。
[0022]本实施例中的广播中心通常是指用于以队列的形式缓存广播并最终将队列中缓存的广播发送给相应的应用的广播接收器的平台,在基于Android的操作系统中,广播中心可以由AMS (活动管理服务,ActivityManagerService)来实现。
[0023]从广播接收器的角度而言,所有的动态广播接收器和静态广播接收器在经过解析后均存储在AMS中;从广播发送的角度而言,通过函数SendBroadcast ()或者SendOrderedBroadcast ()而发送的广播,实际上最终会被调用至AMS中,并在AMS中以队列的形式存储,并等待AMS对各广播进行处理;AMS会针对队列中存储的广播逐条进行处理,以使广播最终发送给相应的广播接收器。
[0024]在本实施例中,获取广播的操作可以由广播中心来执行,例如,AMS中的处理下一条广播函数(即函数ProcessNextBroadCast ())从广播中心的广播队列(BroadCastQueue)中取出一条广播,该条被取出的广播即为上述需要向应用的广播接收器发送的广播。
[0025]S110、根据广播中包含的信息确定该广播的广播类型。
[0026]具体的,由于广播中通常包含有与广播类型相关的信息,因此,通过广播中包含的信息就可以准确的确定出该广播的广播类型。本步骤中确定广播类型的操作可以由广播中心来执行,例如,AMS中的函数ProcessNextBroadCast ()根据其从广播队列中取出的广播所包含的信息确定该广播的广播类型。
[0027]S120、根据上述确定出的广播类型以及预先设置的广播订阅信息确定需要接收该广播的应用的标识信息。
[0028]具体的,针对一条广播而言,需要接收该条广播的应用可以是一个,也可以是多个,也就是说,需要接收该条广播的广播接收器可能是一个,也可能是多个;因此,根据广播类型以及广播订阅信息确定出的需要接收该广播的应用的标识信息(也可以称为广播接收器的标识信息)可以是一个,也可以是多个。
[0029]上述广播订阅信息可以以表或者数据库的形式存储在广播中心中,且广播订阅信息应包括广播类型与应用的标识信息的对应关系,从而根据广播的广播类型即可从广播订阅信息中查询出需要接收该类型的广播的所有应用的标识信息。本步骤中的操作可以由广播中心来执行,例如,AMS中的ProcessNextBroadCast ()函数在从广播队列中取出的广播,并根据该广播包含的信息确定出该广播的广播类型后,利用该广播类型在广播订阅信息中查询,以确定需要接收该广播的所有应用的标识信息。
[0030]上述应用的标识信息可以为应用的包名称,也可以为其他能够唯一标识出应用的信息。
[0031]S130、判断上述确定出的应用的标识信息与预先设定的广播拦截信息集合中应用的标识信息是否匹配,并判断上述确定出的广播的广播类型与预先针对应用设定的广播过滤类型是否匹配;在判断出上述确定出的应用的标识信息与预先设定的广播拦截信息集合中应用的标识信息匹配、且上述确定出的广播的广播类型与预先针对应用设定的广播过滤类型匹配,则到S140 ;在判断出上述确定出的应用的标识信息与预先设定的广播拦截信息集合中应用的标识信息不匹配,或者,上述确定出的广播的广播类型与预先针对应用设定的广播过滤类型不匹配,则到S150。
[0032]具体的,本实施例的广播拦截信息集合中通常包含有一条或者多条应用的标识信息(如应用的包名称),在广播拦截信息集合为空时,表示该智能设备中的所有应用均不需要采用本实施例的方式进行广播拦截。
[0033]广播拦截信息集合中的应用的标识信息可以表示出针对某个或者某些指定应用而言,存在需要进行拦截的广播。
[0034]上述广播过滤类型可以具体为广播类型过滤器的形式,即针对每一个需要进行广播拦截的应用分别设置一个广播类型过滤器,针对一个应用需要拦截的所有的广播类型都可以通过该应用所对应的广播类型过滤器来体现。
[0035]广播拦截信息集合中的应用的标识信息以及广播类型过滤器可以是用户根据其实际需要设置的;一个具体的例子,智能设备提供安全管理应用,用户在使安全管理应用处于运行状态后,选择该安全管理应用中的广播拦截选项,从而安全管理应用为用户呈现广播拦截窗口,用户可以通过该广播拦截窗口设置广播拦截信息集合中的应用的标识信息以及广播类型过滤器;如广播拦截窗口中包括有智能设备中的多个应用的图标,且每个应用图标均对应有至少一种广播类型(如开机类型或者网络连接类型等)选项,用户勾选相应的应用图标并勾选该应用图标对应的某一或某些广播类型,且用户在点击拦截确定按钮后,安全管理应用接收到广播拦截策略信息,安全管理应用根据接收到的广播拦截策略信息生成相应的应用的包名称以及广播类型过滤器,并将包标识添加在广播拦截信息集合中。
[0036]广播拦截信息集合中的应用的标识信息以及广播类型过滤器也可以是缺省设置的;一个具体的例子,智能设备中设置有安全管理应用,该安全管理应用在安装时,会自动在框架层设置广播拦截信息集合,并在广播拦截信息集合中设置一个或者多个应用的标识信息,并为相应的应用设置相应的广播类型过滤器;安全管理应用在广播拦截信息集合中增加的应用的标识信息以及设置的广播类型过滤器通常是其针对已发现的恶意应用的。
[0037]本步骤中的操作可以由广播中心来执行,例如,AMS中的ProcessNextBroadCast()函数在从广播队列中取出的广播,并根据该广播包含的信息确定出该广播的广播类型,且利用该广播类型在广播订阅信息中查询确定了需要接收该广播的所有应用的标识信息后,调用广播拦截策略查询函数(即isIntentBlockedForPkg O函数),且在调用广播拦截策略查询函数过程中,ProcessNextBroadCast ()函数会将其确定出的应用的标识信息以及广播类型过滤器作为函数的输入参数提供给isIntentBlockedForPkg ()函数;由isIntentBlockedForPkg ()函数执行预先设定的广播拦截信息集合中是否存在与上述应用的标识信息匹配、以及上述确定出的广播类型是否与广播类型过滤器所表示出的广播类型匹配的判断操作。
[0038]需要说明的是,如果S120中确定出的需要接收该广播的应用的标识信息为多个,则在本步骤中应针对每一个需要接收该广播的应用的标识信息,分别进行本步骤中的匹配操作。
[0039]S140、禁止向上述需要接收该广播的应用的广播接收器发送该广播。
[0040]具体的,广播中心不再会按照其现有广播处理流程向相应的应用的广播接收器发送该广播,一个具体的例子,isIntentBlockedForPkg ()函数将上述匹配操作产生的匹配结果信息返回ProcessNextBroadCast ()函数,且该返回的匹配结果信息可以包括:应用的标识信息;也可以包括:应用的标识信息与广播类型ProcessNextBroadCast ()函数在接收到isIntentBlockedForPkg ()函数返回的匹配结果信息后,不再根据匹配结果信息中的应用的标识信息向相应的应用的广播接收器发送前述其从广播队列中取出的广播。
[0041]需要说明的是,如果在前述S120中确定出的需要接收该广播的应用的标识信息为多个,而在前述S130中判断出并不是所有的应用的标识信息和广播类型均匹配,则isIntentBlockedForPkg ()函数返回的匹配结果信息中可以只包括具有应用的标识信息和广播类型均匹配的应用标识信息,也可以包括所有的应用的标识信息,并进一步标明每个应用是否需要进行广播拦截的信息(如匹配标志位等)。
[0042]S150、允许向上述需要接收该广播的应用的广播接收器发送该广播。
[0043]具体的,广播中心可以按照其现有广播处理流程向相应的应用的广播接收器发送该广播,一个具体的例子,isIntentBlockedForPkg ()函数将上述匹配操作产生的匹配结果信息返回ProcessNextBroadCast ()函数,且该返回的匹配结果信息可以包括:应用的标识信息与广播类型均匹配的应用的标识信息;也可以包括:应用的标识信息与广播类型均匹配的应用的标识信息和广播类型!ProcessNextBroadCast ()函数在接收到isIntentBlockedForPkg ()函数返回的匹配结果信息后,将匹配结果信息中的应用的标识信息从前述S120中其确定出的需要接收该广播的应用的标识信息中刨除,然后,根据剩余的应用的标识信息向相应的应用的广播接收器发送前述其从广播队列中取出的广播。
[0044]需要说明的是,如果前述S130中判断出所有的应用的标识信息和广播类型均不同时匹配,则isIntentBlockedForPkg ()函数返回的匹配结果信息可以为空,此时,ProcessNextBroadCast ()函数应根据前述S120中其确定出的需要接收该广播的应用的标识信息向相应的应用的广播接收器发送前述其从广播队列中取出的广播。
[0045]实施例二、基于Android的广播拦截方法。下面结合图2对该装置进行详细说明。
[0046]从图2可知,本实施例是在应用层(即图2中的app层)和框架层的基础上实现广播拦截的。[0047]在应用层,安全管理应用(也可以称为安全软件)可以通过SDK (SoftwareDevelopment Kit,即软件开发工具包)来定义函数。
[0048]本实施例在应用层定义的函数可以如下述表1所示。
[0049]表1
[0050]
【权利要求】
1.一种智能设备的广播拦截方法,其包括: 在框架层,获取广播中心需要向应用的广播接收器发送的广播; 根据所述广播中包含的信息确定所述广播的广播类型; 根据所述广播类型以及广播订阅信息确定需要接收所述广播的应用的标识信息; 在判断出所述应用的标识信息与预先设定的广播拦截信息集合中应用的标识信息匹配、且所述广播的广播类型与预先针对应用设定的广播过滤类型匹配的情况下,禁止向所述应用的广播接收器发送所述广播;否则,允许向所述应用的广播接收器发送所述广播。
2.如权利要求1所述的方法,其中,所述广播过滤类型表现为广播类型过滤器的形式。
3.如权利要求2所述的方法,所述方法还包括: 接收用户输入的广播拦截策略信息,根据所述广播拦截策略信息在所述广播拦截信息集合中设置应用的标识信息,并根据所述广播拦截策略信息针对应用设置广播类型过滤器。
4.如权利要求3所述的方法,其中,应用层中设置有设置广播拦截策略函数,框架层中设置有安全服务的设置广播拦截策略函数; 且所述接收用户输入的广播拦截策略信息,根据所述广播拦截策略信息在所述广播拦截信息集合中设置应用的标识信息,并根据所述广播拦截策略信息针对应用设置广播类型过滤器包括: 应用层的设置广播拦截策 略函数接收用户输入的广播拦截策略信息,并调用框架层的设置广播拦截策略函数,以将应用的包名称和广播类型过滤器传输给所述框架层的设置广播拦截策略函数; 框架层的设置广播拦截策略函数将所述包名称设置于广播拦截信息集合中,并在框架层为所述应用设置广播类型过滤器。
5.如权利要求1至4中任一权利要求所述的方法,所述获取广播中心需要向应用的广播接收器发送的广播包括: 从广播中心的广播队列中取出一条广播。
6.如权利要求5所述的方法,其中,所述从广播中心的广播队列中取出一条广播包括: 框架层中的处理下一条广播函数从广播中心的广播队列中取出一条广播; 且所述处理下一条广播函数还适于:根据所述广播中包含的信息确定所述广播的广播类型,根据所述广播类型以及广播订阅信息确定需要接收所述广播的应用的标识信息,调用广播拦截策略查询函数,并将所述应用的标识信息和广播类型提供给所述广播拦截策略查询函数。
7.如权利要求6所述的方法,其中,所述广播拦截策略查询函数具体适于:判断所述应用的标识信息与预先设定的广播拦截信息集合中应用的标识信息是否匹配以及所述广播的广播类型与预先针对应用设定的广播过滤类型是否匹配,并将判断结果返回给所述处理下一条广播函数。
8.如权利要求7所述的方法,其中,所述处理下一条广播函数还具体适于:针对所述广播拦截策略查询函数返回的不需要进行广播拦截的信息进行相应的广播发送处理,针对所述广播拦截策略查询函数返回的需要进行广播拦截的信息不进行相应的广播发送处理。
9.如权利要求1至4中任一权利要求所述的方法,其中,所述智能设备为基于Andriod操作系统的智能设备。
10.一种智能设备的广播拦截装置,其包括: 获取模块,设置于框架层,适于获取广播中心需要向应用的广播接收器发送的广播; 第一确定模块,设置于框架层,适于根据所述广播中包含的信息确定所述广播的广播类型; 第二确定模块,设置于框架层,适于根据所述广播类型以及广播订阅信息确定需要接收所述广播的应用的标识信息; 拦截处理模块,设置于框架层,适于在判断出所述应用的标识信息与预先设定的广播拦截信息集 合中应用的标识信息匹配、且所述广播的广播类型与预先针对应用设定的广播过滤类型匹配的情况下,禁止向所述应用的广播接收器发送所述广播;否则,允许向所述应用的广播接收器发送所述广播。
【文档编号】H04L12/18GK103595547SQ201310573881
【公开日】2014年2月19日 申请日期:2013年11月15日 优先权日:2013年11月15日
【发明者】胡中, 王鑫 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1