发明内容
本申请提供一种悬浮窗的显示方法,使第三方非桌面主屏程序启动时,悬浮窗可以自动隐藏,不会干扰用户的操作。
本申请还提供了一种悬浮窗的显示装置,用以保证上述方法在实际中的应用及实现。
为了解决上述问题,本申请公开了一种悬浮窗的显示方法,包括:
获取移动终端屏幕上显示的当前程序的相关信息;
由所述相关信息判断所述当前程序是否为系统桌面主屏程序;
若是,则在屏幕上显示目标悬浮窗;若否,则在屏幕上不显示目标悬浮窗。
优选的,所述方法按照预设频率重复执行。
优选的,在获取移动终端屏幕上显示的当前程序的相关信息的步骤之前,还包括:
由移动终端安装的操作系统发送的屏幕状态信息,判断当前屏幕是否开启,若是,则执行获取的步骤。
优选的,所述相关信息为程序包名称,所述获取移动终端屏幕上显示的当前程序的相关信息的步骤包括:
访问移动终端安装的操作系统的应用程序接口API,获取当前进程名称列表;
提取所述当前进程名称列表中第一项进程名称,即为移动终端屏幕上显示的当前程序的程序包名称。
优选的,所述由相关信息判断所述当前程序是否为系统桌面主屏程序的步骤包括:
判断预置的系统桌面主屏程序列表中,是否包括所述当前程序的程序包名称;
若是,则所述当前程序为系统桌面主屏程序,若否,则所述当前程序不是系统桌面主屏程序。
优选的,所述由相关信息判断所述当前程序是否为系统桌面主屏程序的步骤包括:
访问移动终端安装的操作系统的应用程序接口API,由所述当前程序的程序包名称,提取所述当前程序的属性信息;
判断所述当前程序的属性信息中,是否包含CATEGORY_HOME和DEFAULT两个属性;
若是,则所述当前程序为系统桌面主屏程序,若否,则所述当前程序不是系统桌面主屏程序。
优选的,所述系统桌面主屏程序列表包含一个或多个系统桌面主屏程序的程序包名称,通过以下步骤预置所述系统桌面主屏程序列表:
访问移动终端安装的操作系统的应用程序接口API,获取所述移动终端所有安装程序的属性信息;
判断各个安装程序的属性信息中,是否包含CATEGORY_HOME和DEFAULT两个属性;
若是,则判断该程序为系统桌面主屏程序,并将该程序的程序包名称添加到系统桌面主屏程序列表。
优选的,所述目标悬浮窗用于显示移动终端性能参数,所述目标悬浮窗内包括一个用于启动清理内存操作的预设入口。
优选的,在屏幕上显示目标悬浮窗的步骤之后,所述方法还包括:
通过所述目标悬浮窗的预设入口访问预设内容或进行预设操作。
本申请还提供了一种悬浮窗的显示装置,包括:
相关信息获取模块,用于获取移动终端屏幕上显示的当前程序的相关信息。
程序判断模块,用于由所述相关信息判断所述当前程序是否为系统桌面主屏程序,若是,则执行显示模块,若否,则执行隐藏模块;
显示模块,用于在屏幕上显示目标悬浮窗;
隐藏模块,用于在屏幕上不显示目标悬浮窗。
优选的,所述装置的各个模块按照预设频率重复执行。
优选的,在相关信息获取模块之前,还包括:
屏幕状态判断模块,用于由移动终端安装的操作系统发送的屏幕状态信息,判断当前屏幕是否开启,若是,则执行相关信息获取模块。
优选的,所述相关信息为程序包名称,所述相关信息获取模块包括:
进程名称列表获取子模块,用于访问移动终端安装的操作系统的应用程序接口API,获取当前进程名称列表;
程序包名称提取子模块,用于提取所述当前进程名称列表中第一项进程名称,即为移动终端屏幕上显示的当前程序的程序包名称。
优选的,所述相关信息判断模块包括:
程序包名称判断子模块,用于判断预置的系统桌面主屏程序列表中,是否包括所述当前程序的程序包名称,若是,则所述当前程序为系统桌面主屏程序,若否,则所述当前程序不是系统桌面主屏程序。
优选的,所述相关信息判断模块包括:
第一属性信息获取子模块,用于访问移动终端安装的操作系统的应用程序接口API,由所述当前程序的程序包名称,提取所述当前程序的属性信息;
第一属性信息判断子模块,用于判断所述当前程序的属性信息中,是否包含CATEGORY_HOME和DEFAULT两个属性,若是,则所述当前程序为系统桌面主屏程序,若否,则所述当前程序不是系统桌面主屏程序。
优选的,所述系统桌面主屏程序列表包含一个或多个系统桌面主屏程序的程序包名称,通过以下子模块预置所述系统桌面主屏程序列表:
第二属性信息获取子模块,用于访问移动终端安装的操作系统的应用程序接口API,获取所述移动终端所有安装程序的属性信息;
第二属性信息判断子模块,用于判断各个安装程序的属性信息中,是否包含CATEGORY_HOME和DEFAULT两个属性,若是,则判断该程序为系统桌面主屏程序,并将该程序的名称添加到系统桌面主屏程序列表。
优选的,所述目标悬浮窗用于显示移动终端性能参数,所述目标悬浮窗内包括一个用于启动清理内存操作的预设入口。
优选的,在显示模块之后,所述装置还包括:
目标悬浮窗操作模块,用于通过所述目标悬浮窗的预设入口访问预设内容或进行预设操作。
与现有技术相比,本申请具有以下优点:
依据本申请,判断移动终端屏幕上显示的当前程序是否为系统桌面主屏程序,若否,则不显示悬浮窗,从而使第三方非系统桌面主屏程序启动时,悬浮窗可以自动隐藏,不会干扰用户的操作。
其次,本申请还通过接收系统发送的屏幕状态信息,确认当前屏幕是否开启,若屏幕关闭就停止判断的操作,达到不会额外浪费电力的目的。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
部分手机软件可以在手机屏幕上生成相应的悬浮窗。当用户打开第三方非系统桌面主屏程序时,该悬浮窗仍然会显示在屏幕最顶层,影响了用户进行第三方程序的操作。
本申请的核心构思之一在于,判断移动终端屏幕上显示的当前程序是否为系统桌面主屏程序,若否,则不显示悬浮窗,从而使第三方非桌系统面主屏程序启动时,悬浮窗可以自动隐藏,不会干扰用户的操作。
参考图1,其示出了本申请的一种悬浮窗的显示方法实施例1的流程图,具体可以包括以下步骤:
步骤101、获取移动终端屏幕上显示的当前程序的相关信息;
移动终端屏幕显示的当前程序是否为系统桌面主屏程序可以通过当前程序的相关信息进行判断,在本申请的一种优选实施例中,所述相关信息可以为程序包名称,即安装程序的包名,例如程序“愤怒的小鸟”的程序包名称是com.angrybird。优选的,所述步骤101可以包括:
子步骤S11、访问移动终端安装的操作系统的应用程序接口API,获取当前进程名称列表;
子步骤S12、提取所述当前进程名称列表中第一项进程名称,即为移动终端屏幕上显示的当前程序的程序包名称。
操作系统的应用程序接口API是应用程序和操作系统交通的接口,是系统提供的公知的服务,包括了多个可调用的函数,调用相应的函数可以得到移动终端的各种信息。例如,此处通过调用进程列表获取函数getRunningAppProcesses(),就可获得系统当前进程名称列表,当前进程名称列表中包括了系统中正在运行的所有程序的程序包名称,表中的第一项即为当前屏幕上所显示的程序,因此,可将第一项进程名称作为当前程序的程序包名称。
步骤102、由所述相关信息判断所述当前程序是否为系统桌面主屏程序,若是,则执行步骤103,若否,则执行步骤104。
在本申请的一种优选实施例的一种示例中,所述步骤102可以包括:
子步骤S21、判断预置的系统桌面主屏程序列表中,是否包括所述当前程序的程序包名称,若是,则所述当前程序为系统桌面主屏程序,若否,则所述当前程序不是系统桌面主屏程序。
获取了当前程序的程序包名称后,可以依据程序包名称判断当前程序是否为系统桌面主屏程序,在本实施例的一种示例中,可以预置系统桌面主屏程序列表,所述系统桌面主屏程序列表可以包含一个或多个系统桌面主屏程序的程序包名称,判断当前程序是否为系统桌面主屏程序时,只需判断当前程序的程序包名称是否在此列表中,若在,则说明当前程序为系统桌面主屏程序。
在具体的实现中,可以通过以下步骤预置所述系统桌面主屏程序列表:
访问移动终端安装的操作系统的应用程序接口API,获取所述移动终端所有安装程序的属性信息;
判断各个安装程序的属性信息中,是否包含CATEGORY_HOME和DEFAULT两个属性;
若是,则判断该程序为系统桌面主屏程序,并将该程序的程序包名称添加到系统桌面主屏程序列表。
程序的属性信息包括程序名称、程序包名称、程序大小、路径、拥有的服务和申请的权限等信息,系统桌面主屏程序区别于非系统桌面主屏程序的特征在于,系统桌面主屏程序的属性信息中包含有CATEGORY_HOME和DEFAULT两个属性。因此,预置系统桌面主屏程序列表时,可以提取移动终端已安装的所有程序的属性信息,然后依据属性信息中是否包含上述两个属性,来判断该程序是否为系统桌面主屏程序。例如,移动终端安装的程序中包含了程序包名称为com.android.launcher和com.angrybird两个程序,com.android.launcher为android操作系统自带的系统桌面主屏程序,其属性信息中包含了CATEGORY_HOME和DEFAULT两个属性,因此,可以将com.android.launcher添加到系统桌面主屏程序列表中,com.angrybird的属性信息中不包含上述两个属性,则不添加到该列表中。
在判断当前程序是否为系统桌面主屏程序的时候,若当前程序的程序包名称是com.android.launcher,由该程序包名称存在系统桌面主屏程序列表中,可知该程序为系统桌面主屏程序;若当前程序的程序包名称是com.angrybird,该程序包名称不存在系统桌面主屏程序列表中,可知该程序不是系统桌面主屏程序。
具体的,可以通过访问移动终端安装的操作系统的应用程序接口API,此处即调用程序属性信息获取函数queryIntentActivities(),可获得所述移动终端所有安装程序的属性信息。
在本申请的一种优选实施例的另一种示例中,所述步骤102可以包括:
子步骤S31、访问移动终端安装的操作系统的应用程序接口API,由所述当前程序的程序包名称,提取所述当前程序的属性信息;
子步骤S32、判断所述当前程序的属性信息中,是否包含CATEGORY_HOME和DEFAULT两个属性,若是,则所述当前程序为系统桌面主屏程序,若否,则所述当前程序不是系统桌面主屏程序。
与上个示例不同的是,本示例不需要预置系统桌面主屏程序列表,在获取了当前程序的程序包名称之后,通过提取当前程序的属性信息来进行判断。具体的,可以通过访问移动终端安装的操作系统的应用程序接口API,即调用程序属性信息获取函数queryIntentActivities(),依据当前程序的程序包名称提取当前程序的属性信息。然后判断当前程序的属性信息中,是否包含了CATEGORY_HOME和DEFAULT两个属性,若是,则判断当前程序为系统桌面主屏程序。
在本申请的一种优选实施例中,所述方法可以按照预设频率重复执行,使当前程序发生变化时,悬浮窗也相应的隐藏或显示。预设频率越高,所述方法重复执行的间隔时间越短,就可以在用户打开第三方程序时,尽快隐藏悬浮窗。
步骤103、在屏幕上显示目标悬浮窗。
当前程序为系统桌面主屏程序时,需要在屏幕上显示目标悬浮窗。在具体的实现中,还需要判断当前屏幕上是否已经显示了目标悬浮窗,若有,则不执行任何操作,若无,则在屏幕上增加位于最前端的目标悬浮窗。
步骤104、在屏幕上不显示目标悬浮窗。
当前程序不是系统桌面主屏程序时,不需要在屏幕上显示目标悬浮窗。在具体的实现中,还需要判断当前屏幕上是否已经显示了目标悬浮窗,若有,则隐藏已经显示的目标悬浮窗,若无,则不执行任何操作。
在本申请的一种优选实施例中,所述目标悬浮窗可以用于显示移动终端性能参数,所述目标悬浮窗内可以包括一个用于启动清理内存操作的预设入口。
参考图2,其示出了本申请的一种悬浮窗的显示方法实施例2的流程图,具体可以包括以下步骤:
步骤201、由移动终端安装的操作系统发送的屏幕状态信息,判断当前屏幕是否开启,若是,则执行步骤202。
与上个实施例不同的是,本实施例中,在执行判断桌面主屏程序的步骤之前,还需要判断当前屏幕是否开启,若是,则执行下一判断的步骤,若否,则不执行任何操作,避免在屏幕关闭的时候执行判断的操作而费电。
当前屏幕是否开启可以由操作系统发送的屏幕状态信息获知。具体的,可以向操作系统广播注册接口(RegisterReceiver)发送请求,要求操作系统在屏幕变化的时候发送屏幕状态信息,依据屏幕状态信息可以获知当前屏幕是否开启。例如,某一时刻,屏幕由开启转为关闭,操作系统就会发出屏幕状态转为关闭的信息,由该信息可知当前屏幕状态为关闭,就不执行判断桌面主屏程序的步骤。
步骤202、获取移动终端屏幕上显示的当前程序的相关信息;
步骤203、由所述相关信息判断所述当前程序是否为系统桌面主屏程序,若是,则执行步骤204和步骤205,若否,则执行步骤206;
步骤204、在屏幕上显示目标悬浮窗;
步骤205、通过所述目标悬浮窗的预设入口访问预设内容或进行预设操作。
目标悬浮窗包含了一个可以供用户访问的预设入口,在屏幕上显示目标悬浮窗后,用户可以通过该预设入口访问预设内容或执行预设操作。例如,360手机安全卫士的悬浮窗上有一个入口,用户点击这个入口就可以启动清理内存的操作。
步骤206、在屏幕上不显示目标悬浮窗。
综上所述,本申请提供了一种悬浮窗的显示方法,依据本申请,判断移动终端屏幕上显示的当前程序是否为系统桌面主屏程序,若否,则不显示悬浮窗,从而使第三方非系统桌面主屏程序启动时,悬浮窗可以自动隐藏,不会干扰用户的操作。
其次,本申请还通过接收系统发送的屏幕状态信息,确认当前屏幕是否开启,若屏幕关闭就停止判断的操作,达到不会额外浪费电力的目的。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
参考图3,其示出了本申请的一种悬浮窗的显示装置实施例1的结构框图,具体可以包括以下模块:
相关信息获取模块301,用于获取移动终端屏幕上显示的当前程序的相关信息;
程序判断模块302,用于由所述相关信息判断所述当前程序是否为桌面主屏程序,若是,则执行显示模块303,若否,则执行隐藏模块304;
显示模块303,用于在屏幕上显示目标悬浮窗;
隐藏模块304,用于在屏幕上不显示目标悬浮窗。
在本申请的一种优选实施例中,所述装置的各个模块可以按照预设频率执行。
在本申请的一种优选实施例中,所述相关信息可以为程序包名称,所述相关信息获取模块301可以包括:
进程名称列表获取子模块,用于访问移动终端安装的操作系统的应用程序接口API,获取当前进程名称列表;
程序包名称提取子模块,用于提取所述当前进程名称列表中第一项进程名称,即为移动终端屏幕上显示的当前程序的程序包名称。
在本申请的一种优选实施例中,所述程序判断模块302可以包括:
程序包名称判断子模块,用于判断预置的系统桌面主屏程序列表中,是否包括所述当前程序的程序包名称,若是,则所述当前程序为系统桌面主屏程序,若否,则所述当前程序不是系统桌面主屏程序。
在本申请的一种优选实施例的另一种示例中,所述程序判断模块302可以包括:
第一属性信息获取子模块,用于访问移动终端安装的操作系统的应用程序接口API,由所述当前程序的程序包名称,提取所述当前程序的属性信息;
第一属性信息判断子模块,用于判断所述当前程序的属性信息中,是否包含CATEGORY_HOME和DEFAULT两个属性,若是,则所述当前程序为系统桌面主屏程序,若否,则所述当前程序不是系统桌面主屏程序。
在本申请的一种优选实施例中,所述系统桌面主屏程序列表可以包含一个或多个系统桌面主屏程序的程序包名称,可以通过以下子模块预置所述系统桌面主屏程序列表:
第二属性信息获取子模块,用于访问移动终端安装的操作系统的应用程序接口API,获取所述移动终端所有安装程序的属性信息;
第二属性信息判断子模块,用于判断各个安装程序的属性信息中,是否包含CATEGORY_HOME和DEFAULT两个属性,若是,则判断该程序为系统桌面主屏程序,并将该程序的程序包名称添加到系统桌面主屏程序列表。
在本申请的一种优选实施例中,所述目标悬浮窗可以用于显示移动终端性能参数,所述目标悬浮窗内可以包括一个用于启动清理内存操作的预设入口。
参考图4,其示出了本申请的一种悬浮窗的显示装置实施例2的结构框图,具体可以包括以下模块:
屏幕状态判断模块401,用于由移动终端安装的操作系统发送的屏幕状态信息,判断当前屏幕是否开启,若是,则执行相关信息获取模块402。
相关信息获取模块402,用于获取移动终端屏幕上显示的当前程序的相关信息;
程序判断模块403,用于由所述相关信息判断所述当前程序是否为系统桌面主屏程序,若是,则执行显示模块404和目标悬浮窗操作模块405,若否,则执行隐藏模块406;
显示模块404,用于在屏幕上显示目标悬浮窗;
目标悬浮窗操作模块405,用于通过所述目标悬浮窗的预设入口访问预设内容或进行预设操作;
隐藏模块406,用于在屏幕上不显示目标悬浮窗。
由于所述装置实施例基本相应于前述图1和图2所示的方法实施例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此就不赘述了。
本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
最后,还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种悬浮窗的显示方法,以及,一种悬浮窗的显示装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。