悬浮窗管理方法、装置、设备及可读存储介质与流程

未命名 10-09 阅读:130 评论:0


1.本技术涉及计算机技术领域,具体涉及悬浮窗管理方法、悬浮窗管理装置、计算机设备以及计算机可读存储介质。


背景技术:

2.悬浮窗是一种在终端设备上悬浮在应用程序表面的活动窗口,通过悬浮窗,可以为使用者提供快捷方便的操作。例如,通过悬浮窗可以展示常用的应用列表,使得使用者可以快速的跳转到需要的应用;还可以展示诸如手电筒、蓝牙开关、无线网络、音量调节、屏幕亮度调节等系统功能。
3.目前,应用程序在展示悬浮窗之前,需要使用者手动授予权限,并且由于终端设备的开发系统的权限限制问题,默认不给予应用程序悬浮窗权限,使得终端设备无法弹出悬浮窗,降低了悬浮窗启动的成功率,甚至会出现应用程序崩溃的情况。因此,如何提高悬浮窗启动的成功率,是目前亟需解决的问题。


技术实现要素:

4.本技术提供了一种悬浮窗管理方法、装置、设备及可读存储介质,可以提高悬浮窗启动的成功率。
5.第一方面,本技术提供了一种悬浮窗管理方法,该方法包括:
6.当终端设备的目标应用启动时,若上述终端设备的系统版本信息指示的版本低于目标版本,则生成上述目标应用对应的第一透明活动栈;
7.当针对上述目标应用的操作事件触发时,获取上述操作事件的事件类型;
8.根据上述操作事件的事件类型以及上述第一透明活动栈,在上述终端设备的顶层窗口展示上述目标应用的悬浮窗。
9.第二方面,本技术提供了一种悬浮窗管理装置,该装置包括:
10.处理模块,用于当终端设备的目标应用启动时,若上述终端设备的系统版本信息指示的版本低于目标版本,则生成上述目标应用对应的第一透明活动栈;
11.上述处理模块,还用于当针对上述目标应用的操作事件触发时,获取上述操作事件的事件类型;
12.显示模块,用于根据上述操作事件的事件类型以及上述第一透明活动栈,在上述终端设备的顶层窗口展示上述目标应用的悬浮窗。
13.第三方面,本技术提供了一种计算机设备,包括:处理器、存储装置和通信接口,上述处理器、上述通信接口和上述存储装置相互连接,其中,上述存储装置存储有可执行程序代码,上述处理器用于调用上述可执行程序代码,用以实现上述的悬浮窗管理方法。
14.第四方面,本技术提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序包括程序指令,上述程序指令被处理器执行,用以实现如上述的悬浮窗管理方法。
15.第五方面,本技术提供了一种计算机程序产品,上述计算机程序产品包括计算机程序或计算机指令,上述计算机程序或计算机指令被处理器执行,用以实现上述的悬浮窗管理方法。
16.本技术在终端设备的目标应用启动时,若目标应用的悬浮窗权限信息指示无权限,则获取终端设备的系统版本信息,以便于基于不同系统版本进行针对性的悬浮窗管理操作,以达到在系统无悬浮窗权限的情况下,也能在终端设备上正常使用悬浮窗功能。本技术在系统版本信息指示的版本低于目标版本时,生成目标应用对应的第一透明活动栈。在针对目标应用的操作事件触发时,获取操作事件的事件类型,再根据操作事件的事件类型以及第一透明活动栈,在终端设备的顶层窗口展示目标应用的悬浮窗,该悬浮窗是基于操作事件的事件类型生成的,实现了针对不同事件类型生成对应的悬浮窗。本技术通过生成第一透明活动栈,再基于第一透明活动栈和操作事件的事件类型生成悬浮窗,可以解决终端设备的开发系统设置的悬浮窗权限限制,提高了悬浮窗启动的成功率。
附图说明
17.为了更清楚地说明本技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
18.图1是本技术一个示例性实施例提供的一种悬浮窗管理系统的架构示意图;
19.图2是本技术一个示例性实施例提供的一种悬浮窗管理方法的流程示意图;
20.图3a是本技术一个示例性实施例提供的一种悬浮窗管理的处理流程图;
21.图3b是本技术一个示例性实施例提供的另一种悬浮窗管理的处理流程图;
22.图4是本技术一个示例性实施例提供的另一种悬浮窗管理方法的流程示意图;
23.图5是本技术一个示例性实施例提供的另一种悬浮窗管理的处理流程图;
24.图6是本技术一个示例性实施例提供的一种悬浮窗管理装置的示意框图;
25.图7是本技术一个示例性实施例提供的一种计算机设备的示意框图。
具体实施方式
26.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
27.需要说明的是,本技术实施例中所涉及到的“第一”、“第二”等描述仅用于描述目的,而不能理解为指示或者暗示其相对重要性或者隐含指明所指示的技术特征的数量。因此,限定有“第一”、“第二”的技术特征可以明示或者隐含的包括至少一个该特征。
28.本发明实施例可应用于云计算、云物联、云游戏、人工智能、车载场景、智慧交通、辅助驾驶等各种场景,下面将对几个典型应用场景进行介绍。
29.云计算(cloud computing)指it基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是it和软件、互联网相关,也可是其他服务。云计
算是网格计算(grid computing)、分布式计算(distributed computing)、并行计算(parallel computing)、效用计算(utility computing)、网络存储(network storage technologies)、虚拟化(virtualization)、负载均衡(load balance)等传统计算机和网络技术发展融合的产物。随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。本技术可以将配置数据、信息对象等数据存储于云服务器上,当需要使用上述不同数据时,可以在云服务器上直接获取,极大地提高了数据获取速度。
30.云物联(cloud iot)旨在将传统物联网中传感设备感知的信息和接受的指令连入互联网中,真正实现网络化,并通过云计算技术实现海量数据存储和运算,由于物联网的特性是物与物相连接,实时感知各个“物体”当前的运行状态,在这个过程中会产生大量的数据信息,如何将这些信息汇总,如何在海量信息中筛取有用信息为后续发展做决策支持,这些已成为影响物联网发展的关键问题,而基于云计算和云存储技术的物联云也因此成为物联网技术和应用的有力支持。
31.云游戏(cloud gaming)又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thin client)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。本技术应用于云游戏,在有相应业务需求时,通过本技术提出的方法生成游戏弹窗,游戏弹窗可以包括多种功能控件,例如游戏内容加速、游戏客户端下载加速、移动终端加速、页面跳转等,便于使用者触发以快速使用其功能。
32.智能交通系统(intelligent traffic system,its)又称智能运输系统(intelligent transportation system),是将先进的科学技术(信息技术、计算机技术、数据通信技术、传感器技术、电子控制技术、自动控制理论、运筹学、人工智能等)有效地综合运用于交通运输、服务控制和车辆制造,加强车辆、道路、使用者三者之间的联系,从而形成一种保障安全、提高效率、改善环境、节约能源的综合运输系统。本技术应用于智能交通系统,可以提高弹窗服务的智能化,并支持多种交通监管业务服务集成在弹窗内,提高了操作对象使用系统的效率。
33.目前,市面上默认不给第三方下载应用程序悬浮窗权限的智能终端系统包括:华为emui系统(华为厂商开发的软件系统)手机,小米miui系统(小米厂商开发的操作系统)的手机,魅族系列手机,vivo系列手机等,如果在这些智能终端上安装带有悬浮窗的应用程序,在应用程序启动时将报错,甚至出现应用程序崩溃,从而导致无法正常使用应用的功能。并且,对于一些应用程序的使用者来说,由于不具备相关专业知识,往往存在希望开启但又不知如何开启的困惑。因此亟待一种终端设备启动悬浮窗的方法,在保障终端设备安全稳定的情况下,能够提高在终端设备上显示悬浮窗的成功率。
34.在android 6.0之前,应用默认具有悬浮窗权限,可以实现在桌面显示悬浮视图(悬浮窗),达到桌面弹窗的目的。但是android 6.0之后,悬浮窗权限则需要使用者手动授
予,导致原有业务的桌面弹窗弹出率大大降低。
35.本技术提供了一种层次化的悬浮窗启动方法,是一种无任何权限限制,即可让应用后台启动桌面弹窗的技术手段,通过绕过厂商权限以及谷歌系统限制,可以广泛用于应用软件(或应用程序)的悬浮窗服务,例如应用宝的动态化桌面弹窗模块,包括垃圾清理弹窗、应用卸载弹窗、应用更新弹窗,以及人工运营弹窗等场景。除此之外,本技术可以推广到其他应用场景中,例如覆盖厂商安装拦截页面等。
36.通过本技术提出的方法,还可以将虚拟返回键、home键、菜单键,以及各种系统功能的快捷设置集成在终端的悬浮窗上,通过悬浮于所有窗口之上的优势,为使用者提供方便快捷的操作体验,同时通过悬浮窗实现的虚拟按键功能,替代终端设备的系统按键使用,节省终端设备的系统按键被按压的次数,延长终端设备的系统按键的使用寿命。
37.可以理解的是,在本技术的具体实施方式中,涉及到悬浮窗权限信息等相关的数据,当本技术以上实施例运用到具体产品或技术中时,相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
38.本技术将具体通过如下实施例进行说明。
39.请参阅图1,图1是本技术一个示例性实施例提供的一种悬浮窗管理系统的架构示意图。如图1所示,该悬浮窗管理系统具体可以包括终端设备101、和服务器102。其中,终端设备101、和服务器102之间通过网络连接,比如,通过局域网、广域网、移动互联网等连接。操作对象在终端设备101的浏览器或者客户端应用上进行操作,对各种数据源进行访问。服务器102可以响应于该操作,为操作对象提供各种数据访问的服务。
40.具体的,终端设备101中安装有浏览器或者客户端应用(例如本技术的悬浮窗管理客户端),操作对象通过终端设备101中安装的浏览器或者客户端应用向服务器102发送数据获取请求,服务器102将用户请求的数据发送给终端设备101,由终端设备101中安装的浏览器或者客户端应用对接收到的数据进行展示。终端设备101也可以从服务器102中获取目标应用的悬浮窗配置信息;再根据悬浮窗配置信息生成多个候选配置数据,每个候选配置数据用于设置对应悬浮窗的形态、功能和内容。
41.服务器102可以为任何能够提供网站服务、应用开发和/或数据传输服务的服务器设备。以一个客户端app的开发项目为例(即此时将客户端app看作终端设备101)进行说明。在开发阶段,可以在服务器102中配置该客户端app的各种数据(其中包括多个候选配置数据)等。配置该客户端app的数据可以是配置悬浮窗管理器、配置该应用程序的activity类等。在客户端app的运行阶段,该客户端app可以安装并运行于终端设备101中。在该客户端app的用户界面中可以展示悬浮窗。操作对象可以对该悬浮窗进行触发操作。
42.终端设备101也称为终端(terminal)、用户设备(user equipment,ue)、接入终端、用户单元、移动设备、用户终端、无线通信设备、用户代理或用户装置。终端设备可以是智能家电、具有无线通信功能的手持设备(例如智能手机、平板电脑)、计算设备(例如个人电脑(personal computer,pc)、车载终端、智能语音交互设备、可穿戴设备或者其他智能装置等,但并不局限于此。
43.服务器102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、
以及大数据和人工智能平台等基础云计算服务的云服务器。
44.可以理解的是,本技术实施例描述的系统的架构示意图是为了更加清楚的说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定。例如,本技术实施例所提供的悬浮窗管理方法还可以由服务器102执行。相应地,本技术实施例所提供的悬浮窗管理装置也可以设置于服务器102中。本技术实施例所提供的悬浮窗管理方法也可以由不同于服务器102且能够与终端设备101和/或服务器102通信的其他服务器或服务器集群执行。相应地,本技术实施例所提供的悬浮窗管理方法还可以部分由终端设备101执行,部分由服务器102执行。相应地,本技术实施例所提供的悬浮窗管理客户端可以部分设置于终端设备101中,部分设置于服务器102中。本领域普通技术人员可知,图1中的终端设备和服务器的数目仅仅是示意性的。根据实现需要,可以配置具有任意数目的终端设备和服务器。并且,随着系统架构的演变和新业务场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
45.请参阅图2,图2是本技术一个示例性实施例提供的一种悬浮窗管理方法的流程示意图,以该方法应用于悬浮窗管理客户端(该悬浮窗管理客户端配置在在终端设备101上)为例进行说明,该方法可包括以下步骤:
46.s201、当终端设备的目标应用启动时,若终端设备的系统版本信息指示的版本低于目标版本,则生成目标应用对应的第一透明活动栈。
47.本技术实施例中,悬浮窗管理客户端可以集成在终端设备的目标应用程序内,换句话说,悬浮窗管理客户端是目标应用程序中的进行悬浮窗管理操作的一个功能模组。悬浮窗管理客户端可以获取终端设备的多种信息,包括系统版本信息、悬浮窗权限信息等。当悬浮窗管理客户端检测到终端设备的目标应用启动时,首先进行悬浮窗权限获取操作,若悬浮窗管理客户端获取到的目标应用的悬浮窗权限信息指示无权限,则表示当前状态下,终端设备厂商或者开发系统对目标应用程序的权限进行了限制,会导致终端设备无法弹出悬浮窗。此时,悬浮窗管理客户端通过获取终端设备的系统版本信息,然后基于系统版本信息针对性的进行悬浮窗管理操作,以使得目标应用程序的悬浮窗能够成功弹出。
48.在一实施例中,终端设备的系统版本信息可以是安卓系统的多个版本,例如安卓系统1.0版本(android 1.0)、安卓系统3.0版本(android 3.0)、安卓系统6.0版本(android 6.0)、安卓系统9.0版本(android 9.0)、安卓系统10.0版本(android q)、安卓系统11.0版本(android 11.0)、安卓系统12.0版本(android 12.0)等。每一次版本迭代都是一次系统从底层优化的大更新,其中包括漏洞修复、功能添加及更新、硬件支持添加及更新等等,在保证终端设备的安全的前提下,提高操作对象的使用体验。而对于每个系统版本所赋予的权限范围也不尽相同,本技术即是基于不同系统版本进行针对性的悬浮窗管理操作,以达到在系统无悬浮窗权限的情况下,也能在终端设备上正常使用悬浮窗功能。
49.本技术实施例中,悬浮窗管理客户端通过获取系统版本信息,当检测到系统版本信息指示的版本低于目标版本时,生成目标应用对应的第一透明活动栈,第一透明活动栈可以理解为一个可以储存悬浮窗包括的一个或多个界面的容器,该容器中的界面是基于后进先出的原则进行界面存取的。通过生成透明活动栈,用于后续根据操作事件的事件类型获取对应的配置数据生成悬浮窗。
50.在一实施例中,目标版本可以是终端设备的系统版本信息中的某一版本信息。通
过测试发现,安卓系统10.0版本(android q)以下的版本可以在应用后台启动activity(活动),但是部分厂商(例如oppo、vivo等)有对应的权限限制,会导致直接从后台启动activity的成功率低于30%;安卓系统10.0版本(android q)以上的版本无法在应用后台启动activity(活动)。因此,本技术根据系统版本信息指示的版本进行针对性的处理,以达到目标应用程序的悬浮窗在无权限的情况下也能够成功弹出。通过测试发现,可以将目标版本设置为android q,也即是说,当系统版本信息指示的版本低于android q时,生成目标应用对应的第一透明活动栈,并执行后续s202~s203的步骤。
51.s202、当针对目标应用的操作事件触发时,获取操作事件的事件类型。
52.在一实施例中,悬浮窗管理客户端在检测到针对目标应用的操作事件触发时,通过操作事件可以得到操作事件的事件类型。操作事件是操作对象于终端设备上针对目标应用的操作行为,例如单击屏幕、双击屏幕、解锁、按返回键、晃动终端设备等。针对目标应用的操作事件触发时,可以获取操作事件的事件类型。例如,当悬浮窗管理客户端检测到操作对象针对目标应用中的清理控件进行触发时,可以判断该操作事件的事件类型为垃圾清理;当悬浮窗管理客户端检测到操作对象针对目标应用中的更新控件进行触发时,可以判断该操作事件的事件类型为app更新。
53.在一实施例中,操作事件的事件类型可以预先设置,也即是设置多组事件类型与操作事件的映射关系,每组映射关系包括一个事件类型与一个或多个操作事件之间的对应关系。悬浮窗管理客户端通过检测操作对象的操作事件,即可从多组映射关系中确定与该操作对象的操作事件所对应的事件类型。示例性的,可以将一个事件类型(垃圾清理)与一个操作事件(触发目标应用主页面上的清理控件)作为一组映射关系;也可以将一个事件类型(垃圾清理)与多个操作事件(触发目标应用主页面上的清理控件,以及晃动终端设备)作为一组映射关系。
54.s203、根据操作事件的事件类型以及第一透明活动栈,在终端设备的顶层窗口展示目标应用的悬浮窗。
55.本技术实施例中,根据操作事件的事件类型即可确定该操作事件的事件类型所对对应的目标配置数据,根据目标配置数据对第一透明活动栈进行配置,再将配置好的第一透明活动栈以悬浮窗形式(或活动窗口形式)在终端设备的顶层窗口进行展示。
56.在一实施例中,上述根据操作事件的事件类型以及第一透明活动栈,在终端设备的顶层窗口展示目标应用的悬浮窗,可以根据以下步骤实现。
57.(1)、根据操作事件的事件类型从多个候选配置数据中确定目标配置数据。
58.在一实施例中,多个候选配置数据可以预先设置,同时可以设置多组事件类型与多个候选配置数据的映射关系,每组映射关系包括一个事件类型与一个候选配置数据之间的对应关系。悬浮窗管理客户端通过检测操作对象的操作事件的事件类型,即可从多个候选配置数据中确定与该操作事件的事件类型所对应的候选配置数据。示例性的,可以将一个事件类型(垃圾清理)与一个候选配置数据(垃圾清理悬浮窗所对应的配置数据,包括悬浮窗卡片配置数据、功能控件配置数据等)作为一组映射关系。
59.(2)、根据目标配置数据配置第一透明活动栈,并以悬浮窗的形式在终端设备的顶层窗口展示配置后的第一透明活动栈。
60.本技术实施例中,在获取到目标配置数据之后,悬浮窗管理客户端即可根据目标
配置数据对第一透明活动栈进行配置,并以悬浮窗的形式(或活动窗口的形式)在终端设备的顶层窗口展示配置后的第一透明活动栈。
61.在一实施例中,上述生成目标应用对应的第一透明活动栈时,以及当针对目标应用的操作事件触发时,还可以执行以下步骤。
62.(1)、将第一透明活动栈退回到后台。
63.(2)、当针对目标应用的操作事件触发时,利用终端设备的活动管理服务将第一透明活动栈从后台调取到前台。
64.本技术实施例中,悬浮窗管理客户端将第一透明活动栈退回到后台,可以使得第一透明活动栈不会影响目标应用的后续界面展示。当悬浮窗管理客户端检测到针对目标应用的操作事件触发时,利用终端设备的活动管理服务将第一透明活动栈从后台调取到前台。通过上述方法,使得操作对象对整个第一透明活动栈的调用过程无感知,提高了操作对象的使用体验。
65.请参见图3a,图3a是本技术实施例提供的一种透明活动栈的创建方法,在目标应用启动阶段(对应图中步骤3.1),目标应用会启动主界面,也即是进行应用初始化(对应图中步骤3.2),悬浮窗管理客户端会创建透明活动栈(对应图中步骤3.3以及步骤3.4),透明活动栈可以自动退回到后台,等待操作事件的触发(对应图中步骤3.5)。
66.请参见图3b,图3b是本技术实施例提供的一种透明活动栈的调用方法,在操作事件发生阶段,假设操作事件是应用卸载,当悬浮窗管理客户端检测到操作事件(应用卸载)时(对应图中步骤3.6),会将透明活动栈从后台调取到前台(对应图中步骤3.7以及步骤3.8),并通过操作事件的事件类型所对应的配置数据,进行透明活动栈的配置(对应图中步骤3.9),最终将在终端设备上展示该悬浮窗。
67.在一实施例中,上述透明活动栈可以是安卓activity中的dialogmainactivity。上述将透明活动栈从后台调取到前台,可以采用安卓activitymanager类中的movetasktofront方式进行处理。在目标应用初始化时,可以启动一个透明的activity(也即是透明独立栈),并将其退到后台等待;当操作事件触发时,将透明activity所在activity栈通过movetasktofront方法移动到前台,这时的应用已转变为前台应用;在前台应用的基础上,可以随意进行activity窗口的创建和显示,达到桌面展示悬浮窗的目的。
68.在一实施例中,悬浮窗管理客户端生成透明独立栈的方法可以是在目标应用的界面所在的栈中添加的(也即是在目标应用的已存在的界面所在的栈中添加的用于展示悬浮窗的界面,即singletask模式);也可以是在目标应用的界面所在的栈之外创建的新栈(也即是在目标应用的已存在的界面所在的栈之外添加的用于展示悬浮窗的界面的一个独立的栈,即singleinstance模式)。
69.在上述第一种情况下,悬浮窗管理客户端将透明独立栈移动到前台,会将该栈中目标应用的已存在的界面一起移动到前台,无法做到用户无感知,导致操作对象的使用体验差;在上述第二种情况下,将透明独立栈移动到前台,不会对会将该栈中目标应用的已存在的界面造成影响,操作对象对上述透明独立栈的调用过程无法感知,提高了操作对象的使用体验。因此,本技术后续实施例中,将以上述第二种方法进行透明独立栈的调用,后续实施例将不再赘述。
70.本技术在终端设备的目标应用启动时,若目标应用的悬浮窗权限信息指示无权
限,则获取终端设备的系统版本信息,以便于基于不同系统版本进行针对性的悬浮窗管理操作,以达到在系统无悬浮窗权限的情况下,也能在终端设备上正常使用悬浮窗功能。本技术在系统版本信息指示的版本低于目标版本时,生成目标应用对应的第一透明活动栈,通过生成透明活动栈,用于后续根据操作事件的事件类型获取对应的配置数据生成悬浮窗。在针对目标应用的操作事件触发时,获取操作事件的事件类型,再根据操作事件的事件类型从多个候选配置数据中确定目标配置数据,再根据目标配置数据配置第一透明活动栈,最终在终端设备的顶层窗口展示目标应用的悬浮窗,该悬浮窗是基于操作事件的事件类型生成的,实现了针对不同事件类型生成对应的悬浮窗。其中,本技术可以预先设置不同的操作事件,操作事件对应的事件类型,以及事件类型对应的配置数据之间的映射关系,本技术通过检测操作对象的操作事件,即可从预设的映射关系中确定与操作事件匹配的事件类型,再根据事件类型确定目标配置数据,从而提高处理效率。本技术在生成第一透明活动栈时,会将第一透明活动栈退回到后台,当针对目标应用的操作事件触发时,再利用终端设备的活动管理服务将第一透明活动栈从后台调取到前台,通过该方法,使得第一透明活动栈不会影响目标应用的后续界面展示,使得操作对象对第一透明活动栈的调用过程无感知,提高了操作对象的使用体验。
71.请参阅图4,图4是本技术一个示例性实施例提供的一种悬浮窗管理方法的流程示意图,以该方法应用于悬浮窗管理客户端(该悬浮窗管理客户端配置在在终端设备101上)为例进行说明,该方法可包括以下步骤:
72.s401、当终端设备的目标应用启动时,若系统版本信息指示的版本等于或高于目标版本,则生成目标应用对应的第二透明活动栈,第二透明活动栈中包括原始信息对象。
73.其中,步骤s401中有关于获取悬浮窗权限的具体实施方式参见前述实施例中步骤s201的相关描述,此处不再赘述。
74.在一实施例中,当所述悬浮窗权限为开启时,可以执行以下步骤。
75.(1)、获取终端设备的系统顶级窗口服务。
76.本技术实施例中,系统顶级窗口服务是指安卓的windowmanager服务。安卓的窗口机制是基于windowmanager实现,通过该接口,可以添加视图(view)到屏幕,也可以从屏幕删除视图。本技术实施例中的activity或者diolog(弹出弹窗)底层的实现也是经过windowmanager实现的。windowmanager主要用来管理窗口的状态、属性、视图增加、视图删除、更新、窗口顺序、消息收集和处理等。
77.(2)、当针对目标应用的操作事件触发时,根据操作事件的事件类型从多个候选配置数据中确定目标配置数据。
78.本技术实施例中,当悬浮窗管理客户端检测到针对目标应用的操作事件触发时,根据操作事件获取操作事件对应的事件类型,再根据事件类型从多个候选配置数据中确定与该事件类型匹配的目标配置数据。
79.在一实施例中,多个候选配置数据可以预先设置,也即是设置多组事件类型与多个候选配置数据的映射关系,每组映射关系包括一个事件类型与一个候选配置数据之间的对应关系。悬浮窗管理客户端通过检测操作对象的操作事件的事件类型,即可从多个候选配置数据中确定与该操作事件的事件类型所对应的候选配置数据。示例性的,可以将一个事件类型(垃圾清理)与一个候选配置数据(垃圾清理悬浮窗所对应的配置数据,包括悬浮
窗卡片配置数据、功能控件配置数据等)作为一组映射关系。
80.(3)、通过系统顶级窗口服务的服务接口,将目标配置数据以悬浮窗的形式在终端设备的顶层窗口进行展示。
81.其中,通过系统顶级窗口服务的服务接口,将目标配置数据以悬浮窗的形式在终端设备的顶层窗口进行展示的具体步骤请参见前实施例中步骤s203的相关描述,此处不再赘述。
82.本技术实施例中,由于每个系统版本所赋予的权限范围不同,因此,本技术基于不同系统版本进行针对性的悬浮窗管理操作,以达到在系统无悬浮窗权限的情况下,也能在终端设备上正常使用悬浮窗功能。当系统版本信息指示的版本等于或高于目标版本时,可以使用不同于上述步骤s201~s203的另一种悬浮窗管理方法,即利用终端设备的系统闹钟服务来实现悬浮窗的无权限启动。
83.在一实施例中,原始信息对象可以是安卓activity中的intent对象。intent可以用来在一个组件中启动app中的另一个组件,或者是启动另一个app的组件,这里所说的组件指的是activity、service以及broadcast。
84.s402、若目标厂商标识集合中包括终端设备的厂商标识,则对原始信息对象的私有属性进行更改,得到目标信息对象,目标信息对象用于终端设备的操作系统将第二透明活动栈识别为系统组件。
85.本技术实施例中,由于不同终端设备厂商会根据基于某一系统版本进行厂商定制化,从而生成不同厂商对应的操作系统定制版本。不同厂商的操作系统定制版本可以通过终端设备的厂商标识进行区分。不同操作系统定制版本所赋予的权限范围不同,因此在实施本技术的无权限启动悬浮窗的方法时,应针对不同的操作系统定制版本,进行对应的处理,才能达到无权限启动悬浮窗。
86.本技术实施例中,厂商的定制化逻辑在于只允许被认为是自己系统的系统组件才可以进行后台启动动作,对原始信息对象中的私有属性进行更改的目的,是为了把此次启动activity的行为伪装成系统组件发起的行为。若目标厂商标识集合中包括终端设备的厂商标识(也即是终端设备的操作系统版本是目标厂商标识集合中某一厂商所定制的),需要对原始信息对象中的私有属性进行更改,得到目标信息对象,以使得终端设备的操作系统将第二透明活动栈识别为系统组件,绕过悬浮窗启动限制。
87.在一实施例中,上述对原始信息对象的私有属性进行更改,得到目标信息对象,可以根据以下步骤实现。
88.(1)、当终端设备的厂商标识为目标厂商标识集合中的第一厂商标识时,将原始信息对象的私有属性中的第一标志位的值设置为目标数值。
89.在一实施例中,第一厂商标识为miui系统,第一标志位是mmiuiflags,第一标志位的值设置为0x02。通过上述方法,此次启动行为即可以被认为是自己系统的系统组件进行的,从而成功在后台启动activity。下面展示了实现上述方法的关键代码。
90.91.上述代码中,mmiuiflags是第一标志位,0x02即为第一标志位的目标数值。
92.(2)、当终端设备的厂商标识为目标厂商标识集合中的第二厂商标识时,将原始信息对象的私有属性中的第二标志位的值设置为目标逻辑值。
93.在一实施例中,第二厂商标识为funtouch系统,第二标志位是misvivowidget,第二标志位的值设置为ture。通过上述方法,此次启动行为即可以被认为是自己系统的系统组件进行的,从而成功在后台启动activity。下面展示了实现上述方法的关键代码。
[0094][0095]
上述代码中,misvivowidget是第二标志位,ture即为第二标志位的目标逻辑值。
[0096]
需要说明的是,上述对原始信息对象的私有属性进行更改的方法,可以基于反射设置实现,反射设置可以理解为一种动态调用的过程。具体的,通过间接引用的方法设置标志位的属性名,在使用时获取该属性名,并进行赋值。可以理解的是,上述基于不同厂商标识对其原始信息对象的私有属性进行更改,得到目标信息对象的方法只是示例性的。对于任意厂商标识对应的终端设备,都可以给予本技术在上述提出的方法,通过修改其原始信息对象的私有属性中的标志位,以达到让操作系统认为是自身的系统组件发起的操作,从而成功在后台启动悬浮窗。
[0097]
(3)、对更改后的原始信息对象进行封装处理,得到目标信息对象。
[0098]
本技术实施例中,目标信息对象可以是安卓activity中的pendingintent对象,上述对更改后的原始信息对象进行封装处理,得到目标信息对象,可以是使用系统接口构建pendingintent,将pendingintent作为目标信息对象,再使用系统闹钟服务启动activity。
[0099]
s403、当针对目标应用的操作事件触发时,调用终端设备的系统闹钟服务启动定时器。
[0100]
本技术实施例中,系统闹钟服务是安卓的alarmmanagerservice服务,该服务在systemserver的其他服务中启动,是android中系统级别的提醒服务,主要用于提供应用定时触发活动页面或者后台服务,但是当系统关机或者重启之后则会被清除。由于此服务是系统服务,将启动activity的任务托管给系统服务,由系统服务发起启动动作,可以在特定场景(例如目标厂商的终端设备)下成功绕过悬浮窗的启动限制。本技术即是在构建目标信息对象后获取系统服务alarmmanagerservice,通过系统接口设置定时器,当定时器触发,系统会使用alarmmanagerservice启动activity,绕过系统版本的悬浮窗限制。下面展示了构建目标信息对象并通过系统闹钟服务启动activity的关键代码。
[0101]
[0102]
上述代码中,alarmmanager即是系统闹钟服务接口,pendingintent即为封装后的目标信息对象。
[0103]
s404、当定时器触发时,根据操作事件的事件类型以及第二透明活动栈,在终端设备的顶层窗口展示目标应用的悬浮窗。
[0104]
其中,上述根据操作事件的事件类型以及第二透明活动栈,在终端设备的顶层窗口展示目标应用的悬浮窗的具体步骤请参见前实施例中步骤s203的相关描述,此处不再赘述。
[0105]
在一实施例中,上述根据操作事件的事件类型以及第二透明活动栈,在终端设备的顶层窗口展示目标应用的悬浮窗,可以包括以下步骤。
[0106]
(1)、根据操作事件的事件类型从多个候选配置数据中确定目标配置数据。
[0107]
(2)、根据目标配置数据配置第二透明活动栈,并以悬浮窗的形式在终端设备的顶层窗口展示配置后的第二透明活动栈。
[0108]
其中,该步骤(1)~(2)的具体实施方式参见前述实施例中步骤s203的相关描述,此处不再赘述。
[0109]
在一实施例中,上述在判断目标厂商标识集合与终端设备的厂商标识的包含关系时,还可以执行以下步骤。
[0110]
(1)、若目标厂商标识集合中不包括终端设备的厂商标识,则当针对目标应用的操作事件触发时,调用终端设备的系统闹钟服务启动定时器。
[0111]
(2)、当定时器触发时,根据操作事件的事件类型以及第二透明活动栈,在终端设备的顶层窗口展示目标应用的悬浮窗。
[0112]
该情况下,不对原始信息对象的私有属性进行更改,直接调用终端设备的系统闹钟服务启动定时器。其中,该步骤(1)~(2)的具体实施方式参见前述实施例中步骤s403~s404的相关描述,此处不再赘述。
[0113]
在一实施例中,在根据操作事件的事件类型从多个候选配置数据中确定目标配置数据之前,还可以预设多种操作事件的事件类型所对应的多个候选配置数据,用于通过事件类型获取该事件类型对应的配置数据,并根据获取到的配置数据对第一透明活动栈(或者第二透明活动栈)进行相关配置,以达到针对不同事件类型对应的业务,弹出对应的业务弹窗,保证了使用体验。因此,上述在根据操作事件的事件类型从多个候选配置数据中确定目标配置数据之前,还包括以下步骤。
[0114]
(1)、获取目标应用的悬浮窗配置信息,悬浮窗配置信息包括操作事件配置信息、事件类型配置信息、悬浮窗卡片配置信息、功能控件配置信息、频控配置信息、数据拉取配置信息以及反馈信息配置信息中的一个或多个。
[0115]
本技术实施例中,悬浮窗配置信息既可以是在悬浮窗管理客户端所在的目标应用中提前配置的(例如,在开发目标应用时将悬浮窗配置信息配置在目标应用中),也可以是通过悬浮窗配置界面获取得到的。提高了悬浮窗配置的灵活性。
[0116]
其中,操作事件配置信息用于配置操作对象的不同操作行为,使得悬浮窗管理客户端可以根据操作对象在终端设备的行为确定对应的操作事件。事件类型配置信息用于根据操作事件确定对应的操作事件类型,以便于后续弹出该事件类型所对应的悬浮窗。并且,操作事件配置信息与事件类型配置信息具有对应关系(换句话说,一个事件类型可以匹配
一个或多个操作事件)。例如,当悬浮窗管理客户端检测到操作对象针对目标应用中的清理控件的触发操作时(此时,操作事件即是针对目标应用中的清理控件进行触发操作),可以确定该操作事件的事件类型为垃圾清理;当悬浮窗管理客户端检测到操作对象针对目标应用中的更新控件进行触发时,(此时,操作事件即是针对目标应用中的更新控件进行触发操作),可以判断该操作事件的事件类型为app更新。
[0117]
其中,功能控件配置信息用于配置悬浮窗中包括的功能控件。例如,可以在悬浮窗中配置常用应用列表跳转控件,使得操作对象可以快速的跳转到需要的应用;也可以在悬浮窗中配置网页跳转控件;还可以在悬浮窗中配置一键清理控件等。悬浮窗卡片配置信息用于配置悬浮窗的形态、外观、样式等。将该悬浮窗所包括的功能控件等以图形化界面进行展示,提高操作对象的使用体验。
[0118]
其中,频控配置信息用于对操作对象的操作行为的频次进行检测,以确定是否需要触发操作事件对应的事件类型。示例性的,在事件类型为垃圾清理时,可以设置通过晃动终端设备进行触发,但是在操作对象正常使用时,也可能晃动终端设备,从而发生误触。因此,可以进行频控配置,即检测晃动终端设备的频次达到触发条件(例如,在三秒内检测晃动终端设备三次),才确定触发该操作事件对应的事件类型。保证了稳定性,提高了悬浮窗的智能化。
[0119]
其中,数据拉取配置信息用于根据操作事件配置信息与事件类型配置信息,从多个候选配置数据中获取目标配置数据。反馈信息配置信息用于在操作对象进行操作后将操作信息反馈给悬浮窗管理客户端,以便于悬浮窗管理客户端基于返回的操作信息进行操作事件以及事件类型的分析。
[0120]
在一实施例中,悬浮窗管理客户端可以在终端设备上展示悬浮窗配置界面;于悬浮窗配置界面接收悬浮窗配置信息;根据接收到的配置信息,生成多个候选配置数据,多个候选配置数据中的每个候选配置数据用于设置悬浮窗的形态、功能和内容;其中,悬浮窗配置界面包括触发事件配置界面、事件类型配置界面、悬浮窗卡片配置界面、功能控件配置界面、频控配置界面、数据拉取配置界面,以及反馈信息配置界面中的一个或多个。
[0121]
(2)、根据悬浮窗配置信息生成多个候选配置数据,多个候选配置数据中的每个候选配置数据用于设置对应悬浮窗的形态、功能和内容中的一种或多种。
[0122]
在进行上述操作事件配置信息、事件类型配置信息、悬浮窗卡片配置信息、功能控件配置信息、频控配置信息、数据拉取配置信息以及反馈信息配置信息等相关配置之后,将一个事件类型与其对应的其他悬浮窗配置信息作为一个候选配置数据,该候选配置数据可以对悬浮窗的形态、功能和内容中的一种或多种进行配置,从而生成该事件类型对应的悬浮窗。
[0123]
请参见图5,图5是本技术实施例提供的一种悬浮窗管理的处理流程图。首先在目标应用启动时(即开始阶段),判断目标应用是否具有悬浮窗权限(对应图中步骤5.1),若目标应用具有悬浮窗权限,则采用系统顶级窗口服务的方法启动悬浮窗(对应图中步骤5.2,即本技术步骤s401中所述方法);若目标应用不具有悬浮窗权限,则判断终端设备的系统版本信息是否为目标版本(目标版本可以是android q,对应图中步骤5.3)。若终端设备的系统版本信息低于目标版本时,采用将透明活动栈移动到前台的方法启动悬浮窗(对应图中步骤5.4,即本技术步骤s202~s203中所述方法);若终端设备的系统版本信息等于或高于
目标版本(例如目标版本为android q)时,采用系统闹钟服务的方法启动悬浮窗(对应图中步骤5.5,即本技术步骤s402~s404中所述方法)。在采用系统闹钟服务的方法启动悬浮窗时,会设置定时器,判断定时器是否超时(对应图中步骤5.6),若定时器超时(即定时器触发),启动悬浮窗(对应图中步骤5.7);若定时器未触发(即定时器未触发),则结束流程。
[0124]
通过上述层次化的悬浮窗管理方法,可以针对不同情况针对性的使用不同方法启动悬浮窗,可以实现在操作对象不授予悬浮窗权限的情况下,达到80%以上的悬浮窗成功率,提高悬浮窗中的消息的触达率。本技术可以广泛用于诸如应用宝的动态化桌面弹窗模块,包括垃圾清理弹窗,应用卸载弹窗,应用更新弹窗以及人工运营弹窗等场景。
[0125]
本技术在终端设备的目标应用启动时,若目标应用的悬浮窗权限信息指示有权限,则获取终端设备的系统顶级窗口服务,根据终端设备的系统顶级窗口服务启动悬浮窗。若目标应用的悬浮窗权限信息指示无权限,则获取终端设备的系统版本信息,以便于基于不同系统版本进行针对性的悬浮窗管理操作,以达到在系统无悬浮窗权限的情况下,也能在终端设备上正常使用悬浮窗功能。本技术在系统版本信息指示的版本等于或高于目标版本时,生成目标应用对应的第二透明活动栈,第二透明活动栈中包括原始信息对象。由于不同操作系统厂商定制版本所赋予的权限范围不同,因此本技术针对不同的操作系统厂商定制版本,进行对应的处理,以实现无权限启动悬浮窗的目的。若终端设备的操作系统版本是目标厂商标识集合中某一厂商所定制的,则对原始信息对象中的私有属性进行更改,将修改后的原始信息对象进行封装,得到目标信息对象,以使得终端设备的操作系统将第二透明活动栈识别为系统组件,绕过悬浮窗启动限制,极大提高了悬浮窗的启动成功率。本技术还提供了针对不同厂商的私有属性修改策略,为本技术的实施和应用提供了参考。在得到目标信息对象后,当针对目标应用的操作事件触发时,通过调用终端设备的系统闹钟服务启动定时器,当定时器触发时,即可启动悬浮窗,上述过程可以看作是终端设备的所在系统的一次自发行为,避免悬浮窗的启动限制,实现悬浮窗的无权限启动。本技术在确定目标配置数据之前,还可以预设多种操作事件的事件类型所对应的多个候选配置数据,用于对生成的透明活动栈进行相关配置,以达到针对不同事件类型对应的业务,弹出对应的业务弹窗,保证了使用体验。其中,可以对目标配置数据中包括的操作事件配置信息、事件类型配置信息、悬浮窗卡片配置信息、功能控件配置信息、频控配置信息、数据拉取配置信息、反馈信息配置信息等进行配置,提高了悬浮窗配置的灵活性,提高了本技术的适用性。
[0126]
请参阅图6,图6是本技术实施例提供的一种悬浮窗管理装置的示意框图。其中,悬浮窗管理装置具体可以包括:
[0127]
处理模块601,用于当终端设备的目标应用启动时,若所述终端设备的系统版本信息指示的版本低于目标版本,则生成所述目标应用对应的第一透明活动栈;
[0128]
所述处理模块601,还用于当针对所述目标应用的操作事件触发时,获取所述操作事件的事件类型;
[0129]
显示模块602,用于根据所述操作事件的事件类型以及所述第一透明活动栈,在所述终端设备的顶层窗口展示所述目标应用的悬浮窗。
[0130]
可选的,上述处理模块601还用于:
[0131]
若所述系统版本信息指示的版本等于或高于所述目标版本,则生成所述目标应用对应的第二透明活动栈,所述第二透明活动栈中包括原始信息对象;
[0132]
若目标厂商标识集合中包括所述终端设备的厂商标识,则对所述原始信息对象的私有属性进行更改,得到目标信息对象,所述目标信息对象用于所述终端设备的操作系统将所述第二透明活动栈识别为系统组件;
[0133]
当针对所述目标应用的操作事件触发时,调用所述终端设备的系统闹钟服务启动定时器;
[0134]
当所述定时器触发时,根据所述操作事件的事件类型以及所述第二透明活动栈,在所述终端设备的顶层窗口展示所述目标应用的悬浮窗。
[0135]
可选的,上述显示模块602在用于根据所述操作事件的事件类型以及所述第一透明活动栈,在所述终端设备的顶层窗口展示所述目标应用的悬浮窗时,具体用于:
[0136]
根据所述操作事件的事件类型从多个候选配置数据中确定目标配置数据;
[0137]
根据所述目标配置数据配置所述第一透明活动栈,并以悬浮窗的形式在所述终端设备的顶层窗口展示配置后的第一透明活动栈。
[0138]
可选的,上述处理模块601还用于:
[0139]
将所述第一透明活动栈退回到后台;
[0140]
当针对所述目标应用的操作事件触发时,利用所述终端设备的活动管理服务将所述第一透明活动栈从后台调取到前台。
[0141]
可选的,上述处理模块601在用于对所述原始信息对象的私有属性进行更改,得到目标信息对象时,具体用于:
[0142]
当所述终端设备的厂商标识为所述目标厂商标识集合中的第一厂商标识时,将所述原始信息对象的私有属性中的第一标志位的值设置为目标数值;
[0143]
当所述终端设备的厂商标识为所述目标厂商标识集合中的第二厂商标识时,将所述原始信息对象的私有属性中的第二标志位的值设置为目标逻辑值;
[0144]
对更改后的原始信息对象进行封装处理,得到目标信息对象。
[0145]
可选的,上述处理模块601还用于:
[0146]
若所述目标厂商标识集合中不包括所述终端设备的厂商标识,则当针对所述目标应用的操作事件触发时,调用所述终端设备的系统闹钟服务启动定时器;
[0147]
当所述定时器触发时,根据所述操作事件的事件类型以及所述第二透明活动栈,在所述终端设备的顶层窗口展示所述目标应用的悬浮窗。
[0148]
可选的,上述处理模块601还用于:
[0149]
获取所述目标应用的悬浮窗配置信息,所述悬浮窗配置信息包括操作事件配置信息、事件类型配置信息、悬浮窗卡片配置信息、功能控件配置信息、频控配置信息、数据拉取配置信息以及反馈信息配置信息中的一个或多个;
[0150]
根据所述悬浮窗配置信息生成多个候选配置数据,所述多个候选配置数据中的每个候选配置数据用于设置对应悬浮窗的形态、功能和内容中的一种或多种。
[0151]
需要说明的是,本技术实施例的悬浮窗管理装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
[0152]
请参阅图7,图7是本技术一实施例提供的一种计算机设备的示意框图。如图所示的本实施例中的智能终端可以包括:处理器701、存储装置702以及通信接口703。上述处理
器701、存储装置702以及通信接口703之间可以进行数据交互。
[0153]
上述存储装置702可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,ram);存储装置702也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),固态硬盘(solid-state drive,ssd)等;上述存储装置702还可以包括上述种类的存储器的组合。
[0154]
上述处理器701可以是中央处理器(central processing unit,cpu)。在一个实施例中,上述处理器701还可以是图形处理器(graphics processing unit,gpu)。上述处理器701也可以是由cpu和gpu的组合。在一个实施例中,上述存储装置702用于存储程序指令,上述处理器701可以调用上述程序指令,执行如下操作:
[0155]
当终端设备的目标应用启动时,若所述终端设备的系统版本信息指示的版本低于目标版本,则生成所述目标应用对应的第一透明活动栈;
[0156]
当针对所述目标应用的操作事件触发时,获取所述操作事件的事件类型;
[0157]
根据所述操作事件的事件类型以及所述第一透明活动栈,在所述终端设备的顶层窗口展示所述目标应用的悬浮窗。
[0158]
可选的,上述处理器701还用于:
[0159]
若所述系统版本信息指示的版本等于或高于所述目标版本,则生成所述目标应用对应的第二透明活动栈,所述第二透明活动栈中包括原始信息对象;
[0160]
若目标厂商标识集合中包括所述终端设备的厂商标识,则对所述原始信息对象的私有属性进行更改,得到目标信息对象,所述目标信息对象用于所述终端设备的操作系统将所述第二透明活动栈识别为系统组件;
[0161]
当针对所述目标应用的操作事件触发时,调用所述终端设备的系统闹钟服务启动定时器;
[0162]
当所述定时器触发时,根据所述操作事件的事件类型以及所述第二透明活动栈,在所述终端设备的顶层窗口展示所述目标应用的悬浮窗。
[0163]
可选的,上述处理器701在用于根据所述操作事件的事件类型以及所述第一透明活动栈,在所述终端设备的顶层窗口展示所述目标应用的悬浮窗时,具体用于:
[0164]
根据所述操作事件的事件类型从多个候选配置数据中确定目标配置数据;
[0165]
根据所述目标配置数据配置所述第一透明活动栈,并以悬浮窗的形式在所述终端设备的顶层窗口展示配置后的第一透明活动栈。
[0166]
可选的,上述处理器701还用于:
[0167]
将所述第一透明活动栈退回到后台;
[0168]
当针对所述目标应用的操作事件触发时,利用所述终端设备的活动管理服务将所述第一透明活动栈从后台调取到前台。
[0169]
可选的,上述处理器701在用于对所述原始信息对象的私有属性进行更改,得到目标信息对象时,具体用于:
[0170]
当所述终端设备的厂商标识为所述目标厂商标识集合中的第一厂商标识时,将所述原始信息对象的私有属性中的第一标志位的值设置为目标数值;
[0171]
当所述终端设备的厂商标识为所述目标厂商标识集合中的第二厂商标识时,将所述原始信息对象的私有属性中的第二标志位的值设置为目标逻辑值;
[0172]
对更改后的原始信息对象进行封装处理,得到目标信息对象。
[0173]
可选的,上述处理器701还用于:
[0174]
若所述目标厂商标识集合中不包括所述终端设备的厂商标识,则当针对所述目标应用的操作事件触发时,调用所述终端设备的系统闹钟服务启动定时器;
[0175]
当所述定时器触发时,根据所述操作事件的事件类型以及所述第二透明活动栈,在所述终端设备的顶层窗口展示所述目标应用的悬浮窗。
[0176]
可选的,上述处理器701还用于:
[0177]
获取所述目标应用的悬浮窗配置信息,所述悬浮窗配置信息包括操作事件配置信息、事件类型配置信息、悬浮窗卡片配置信息、功能控件配置信息、频控配置信息、数据拉取配置信息以及反馈信息配置信息中的一个或多个;
[0178]
根据所述悬浮窗配置信息生成多个候选配置数据,所述多个候选配置数据中的每个候选配置数据用于设置对应悬浮窗的形态、功能和内容中的一种或多种。
[0179]
具体实现中,本技术实施例中所描述的处理器701、存储装置702以及通信接口703可执行本技术实施例图2或图4提供的悬浮窗管理方法的相关实施例中所描述的实现方式,也可执行本技术实施例图6提供的悬浮窗管理装置的相关实施例中所描述的实现方式,在此不再赘述。
[0180]
在本技术所提供的几个实施例中,应该理解到,所揭露的方法、装置和系统,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的;例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式;例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0181]
此外,这里需要指出的是:本技术实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的悬浮窗管理装置所执行的计算机程序,且该计算机程序包括程序指令,当处理器执行上述程序指令时,能够执行前文图2、图4所对应实施例中的方法,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本技术所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本技术方法实施例的描述。作为示例,程序指令可以被部署在一个计算机设备上,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备可以组成区块链系统。
[0182]
根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备可以执行前文图2、图4所对应实施例中的方法,因此,这里将不再进行赘述。
[0183]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述存储介质可为磁碟、光
盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等。
[0184]
以上所揭露的仅为本技术的部分实施例而已,当然不能以此来限定本技术之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本技术权利要求所作的等同变化,仍属于发明所涵盖的范围。

技术特征:
1.一种悬浮窗管理方法,其特征在于,所述方法包括:当终端设备的目标应用启动时,若所述终端设备的系统版本信息指示的版本低于目标版本,则生成所述目标应用对应的第一透明活动栈;当针对所述目标应用的操作事件触发时,获取所述操作事件的事件类型;根据所述操作事件的事件类型以及所述第一透明活动栈,在所述终端设备的顶层窗口展示所述目标应用的悬浮窗。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:若所述系统版本信息指示的版本等于或高于所述目标版本,则生成所述目标应用对应的第二透明活动栈,所述第二透明活动栈中包括原始信息对象;若目标厂商标识集合中包括所述终端设备的厂商标识,则对所述原始信息对象的私有属性进行更改,得到目标信息对象,所述目标信息对象用于所述终端设备的操作系统将所述第二透明活动栈识别为系统组件;当针对所述目标应用的操作事件触发时,调用所述终端设备的系统闹钟服务启动定时器;当所述定时器触发时,根据所述操作事件的事件类型以及所述第二透明活动栈,在所述终端设备的顶层窗口展示所述目标应用的悬浮窗。3.根据权利要求1所述的方法,其特征在于,所述根据所述操作事件的事件类型以及所述第一透明活动栈,在所述终端设备的顶层窗口展示所述目标应用的悬浮窗,包括:根据所述操作事件的事件类型从多个候选配置数据中确定目标配置数据;根据所述目标配置数据配置所述第一透明活动栈,并以悬浮窗的形式在所述终端设备的顶层窗口展示配置后的第一透明活动栈。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:将所述第一透明活动栈退回到后台;当针对所述目标应用的操作事件触发时,利用所述终端设备的活动管理服务将所述第一透明活动栈从后台调取到前台。5.根据权利要求2所述的方法,其特征在于,所述对所述原始信息对象的私有属性进行更改,得到目标信息对象,包括:当所述终端设备的厂商标识为所述目标厂商标识集合中的第一厂商标识时,将所述原始信息对象的私有属性中的第一标志位的值设置为目标数值;当所述终端设备的厂商标识为所述目标厂商标识集合中的第二厂商标识时,将所述原始信息对象的私有属性中的第二标志位的值设置为目标逻辑值;对更改后的原始信息对象进行封装处理,得到目标信息对象。6.根据权利要求2或5所述的方法,其特征在于,所述方法还包括:若所述目标厂商标识集合中不包括所述终端设备的厂商标识,则当针对所述目标应用的操作事件触发时,调用所述终端设备的系统闹钟服务启动定时器;当所述定时器触发时,根据所述操作事件的事件类型以及所述第二透明活动栈,在所述终端设备的顶层窗口展示所述目标应用的悬浮窗。7.根据权利要求1~5中任一项所述的方法,其特征在于,所述方法还包括:获取所述目标应用的悬浮窗配置信息,所述悬浮窗配置信息包括操作事件配置信息、
事件类型配置信息、悬浮窗卡片配置信息、功能控件配置信息、频控配置信息、数据拉取配置信息以及反馈信息配置信息中的一个或多个;根据所述悬浮窗配置信息生成多个候选配置数据,所述多个候选配置数据中的每个候选配置数据用于设置对应悬浮窗的形态、功能和内容中的一种或多种。8.一种悬浮窗管理装置,其特征在于,所述装置包括:处理模块,用于当终端设备的目标应用启动时,若所述终端设备的系统版本信息指示的版本低于目标版本,则生成所述目标应用对应的第一透明活动栈;所述处理模块,还用于当针对所述目标应用的操作事件触发时,获取所述操作事件的事件类型;显示模块,用于根据所述操作事件的事件类型以及所述第一透明活动栈,在所述终端设备的顶层窗口展示所述目标应用的悬浮窗。9.一种计算机设备,其特征在于,包括:处理器、存储装置和通信接口,所述处理器、所述通信接口和所述存储装置相互连接,其中,所述存储装置存储有可执行程序代码,所述处理器用于调用所述可执行程序代码,用以实现如权利要求1~7中任一项所述的悬浮窗管理方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行,用以实现如权利要求1~7中任一项所述的悬浮窗管理方法。

技术总结
本申请实施例提出了一种悬浮窗管理方法、装置、设备及可读存储介质,可应用于云技术、人工智能、智慧平台、应用软件、车载等领域或场景,该方法包括:当终端设备的目标应用启动时,若终端设备的系统版本信息指示的版本低于目标版本,则生成目标应用对应的第一透明活动栈;当针对目标应用的操作事件触发时,获取操作事件的事件类型;根据操作事件的事件类型以及第一透明活动栈,在终端设备的顶层窗口展示目标应用的悬浮窗。通过本申请实施例,可以提高悬浮窗启动的成功率。高悬浮窗启动的成功率。高悬浮窗启动的成功率。


技术研发人员:周楚鹏
受保护的技术使用者:腾讯科技(深圳)有限公司
技术研发日:2022.03.25
技术公布日:2023/10/8
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐