一种模拟点击终端控件的方法及装置制造方法

文档序号:6621473阅读:275来源:国知局
一种模拟点击终端控件的方法及装置制造方法
【专利摘要】本发明实施例公开了一种终端控件的模拟点击方法,包括:终端向系统注册继承AccessibilityService,并设置待监听的终端操作界面信息;当监听到终端操作界面信息发生变化时,终端向AccessibilityService发送触发信息;终端接收AccessibilityService根据触发信息获取到的终端操作界面的控件视图,并根据控件视图调用第一指定函数遍历终端操作界面中的根视图;终端根据根视图获取目标视图,并通过第二指定函数实现目标视图上的终端控件的模拟点击。本发明实施例还公开了一种终端控件的模拟点击装置。采用本发明,具有操作简单,适配性高,实现成本低,提高了终端的用户体验的优点。
【专利说明】一种模拟点击终端控件的方法及装置

【技术领域】
[0001] 本发明涉及电子【技术领域】,尤其涉及一种模拟点击终端控件的方法及装置。

【背景技术】
[0002] 当前随着手机的日益普及,手机的应用程序也日益多样化,手机用户可根据自己 的需求在手机上安装各类应用程序。然而,手机应用程序的安装或者使用过程中经常需要 手机用户确认一些操作选项,比如,手机安装某个应用程序时,需要用户选择安装或者取消 相应的插件,此时,用户需要手动点击手机操作界面上的指定控件,以确认选择的操作选 项。当手机操作界面上重复出现多个相同的操作选项时,用户需要手动点击多个操作控件 以确认各个操作选项,操作繁琐、效率低。
[0003] 现有技术在Android系统中使用Instrumentation (android封装的一个测试框 架)函数监控系统中正在安装或者使用的应用程序包含的所有交互事件,当上述应用程序 中出现需要用户点击确认的操作选项等信息时,系统则可发送用户界面事件等信息给应用 程序,实现模拟点击。现有技术系统主要通过模拟发送相应控件的触摸屏坐标数据给应用 程序,应用程序根据触摸屏坐标数据响应相应的操作;或者发送相应控件的按键事件给应 用程序,应用程序响应相应的按键事件,以实现控件的模拟点击。由于手机的款式多样,同 一个应用程序的操作选项控件在不同的手机显示界面上的坐标数据不同,故此需要动态获 取和响应操作选项控件在触摸屏上的坐标数据,适配性差,实现难度大,成本高。此外,现有 技术通过发按键事件给应用程序,应用程序需要响应相应的按键事件才能实现模拟点击, 增加了模拟按键点击的实现成本。


【发明内容】

[0004] 本发明实施例提供一种终端控件的模拟点击方法及装置。可向系统注册继承 AccessibilityService,通过AccessibilityService监听终端操作界面信息,在终端操作 界面信息发生变化时,通过AccessibilityService获取终端操作界面的控件视图,根据控 制视图获取目标视图,进而调用指定函数实现目标视图上的终端控件的模拟点击,操作简 单,适配性高,实现成本低,提高了终端的用户体验。
[0005] 本发明实施例到第一方面提供了一种终端控件的模拟点击方法,其可包括:
[0006] 终端向系统注册继承辅助功能服务AccessibilityService,在所述 AccessibilityService的注册信息中设置待监听的终端操作界面信息;
[0007] 当所述终端监听到所述终端操作界面信息发生变化时,所述终端向所述 AccessibilityService 发送触发信息;
[0008] 所述终端接收所述AccessibilityService根据所述触发信息获取到的所述终端 操作界面的控件视图,并根据所述控件视图调用第一指定函数遍历所述终端操作界面中的 根视图;
[0009] 所述终端根据所述根视图获取目标视图,并通过第二指定函数实现所述目标视图 上的终端控件的模拟点击。
[0010] 其中,所述待监听的终端操作界面信息包括:信息显示窗口所在的包名,以及所述 信息显示窗口的滑动状态、所述信息显示窗口的显示内容、所述信息显示窗口的显示状态、 所述信息显示窗口的控件状态中的至少一种;
[0011] 其中,所述信息显示窗口的显示内容包括所述信息显示窗口中显示的文本信息;
[0012] 所述信息显示窗口的显示状态包括所述信息显示窗口被打开、或者被隐藏。
[0013] 其中,当所述终端监听到所述终端操作界面信息发生变化时,所述终端向所述 AccessibilityService发送触发信息,包括:
[0014] 当所述终端监听到所述信息显示窗口滑动时,所述终端向所述 AccessibilityService发送触发信息;或者
[0015] 当所述终端监听到所述信息显示窗口中显示的文本信息发生变化时,所述终端向 所述AccessibilityService发送触发信息;或者
[0016] 当所述终端监听到所述信息显示窗口被打开时,所述终端向所述 AccessibilityService发送触发信息;或者
[0017] 当所述终端监听到所述信息显示窗口的控件被点击时,所述终端向所述 AccessibilityService 发送触发信息。
[0018] 其中,所述触发信息中包括:发生变化的所述终端操作界面信息;
[0019] 其中,所述触发信息用于触发所述AccessibilityService获取发生变化的所述 终端操作界面信息的控件视图,并将所述控件视图发送给所述终端。
[0020] 其中,所述根据所述控件视图调用第一指定函数遍历所述终端操作界面中的根视 图,包括:
[0021] 所述终端调用所述第一指定函数,通过所述第一指定函数遍历所述终端操作界面 中所述控件视图对应的根视图,以从所述根视图及所述根视图下的子视图中获取目标视 图。
[0022] 其中,所述目标视图为用于实现终端控件的模拟点击的视图,所述视图中包括的 终端控件为实现模拟点击、确认的控件。
[0023] 其中,所述终端根据所述根视图获取目标视图,包括:
[0024] 所述终端根据所述根视图遍历所述根视图下的所有子视图,根据预置的目标视图 的特征信息从所有所述子视图中获取目标视图;
[0025] 其中,所述目标视图的特征信息包括:所述目标视图的类名、所述目标视图的控件 信息、所述目标视图的显示文本信息中的至少一种。
[0026] 其中,所述目标视图的控件信息包括:所述目标视图的控件名称、所述目标视图的 控件在所述目标视图中的坐标位置;
[0027] 所述根据预置的目标视图的特征信息从所有所述子视图中获取所述目标视图,包 括:
[0028] 将所有所述子视图的特征信息与所述目标视图的特征信息进行匹配,从所述子视 图中获取特征信息与所述目标视图的特征信息相匹配的子视图,作为所述目标视图。
[0029] 其中,所述目标视图的特征信息还包括:所述目标视图的控件标识ID ;
[0030] 所述根据预置的目标视图的特征信息从所有所述子视图中获取所述目标视图,包 括:
[0031] 将所有所述子视图包含的控件ID与所述目标视图的所述控件ID进行匹配,从所 有所述子视图中获取控件ID与所述目标视图的所述控件ID相匹配的子视图,作为目标视 图。
[0032] 其中,所述终端包括:手机、平板电脑、笔记本电脑、随身听中的至少一种。
[0033] 本发明实施例第二方面还提供了一种终端控件的模拟点击装置,其可包括:
[0034] 注册模块,用于向系统注册继承辅助功能服务AccessibilityService,在所述 AccessibilityService的注册信息中设置待监听的终端操作界面信息;
[0035] 发送模块,用于在监听到所述终端操作界面信息发生变化时,向所述注册模块注 册的所述AccessibilityService发送触发信息;
[0036] 接收模块,用于接收所述AccessibilityService根据所述发送模块发送的所述 触发信息获取到的所述终端操作界面的控件视图;
[0037] 调用模块,用于根据所述接收模块接收到的所述控件视图调用第一指定函数遍历 所述终端操作界面中的根视图;
[0038] 处理模块,用于根据所述调用模块遍历的所述根视图获取目标视图,并通过第二 指定函数实现所述目标视图上的终端控件的模拟点击。
[0039] 其中,所述待监听的终端操作界面信息包括:信息显示窗口所在的包名,以及所述 信息显示窗口的滑动状态、所述信息显示窗口的显示内容、所述信息显示窗口的显示状态、 所述信息显示窗口的控件状态中的至少一种;
[0040] 其中,所述信息显示窗口的显示内容包括所述信息显示窗口中显示的文本信息;
[0041] 所述信息显示窗口的显示状态包括所述信息显示窗口被打开、或者被隐藏。
[0042] 其中,所述发送模块,具体用于:
[0043] 当所述终端监听到所述信息显示窗口滑动时,向所述注册模块注册的所述 AccessibilityService发送触发信息;或者
[0044] 当所述终端监听到所述信息显示窗口中显示的文本信息发生变化时,向所述注册 模块注册的所述AccessibilityService发送触发信息;或者
[0045] 当所述终端监听到所述信息显示窗口被打开时,向所述注册模块注册的所述 AccessibilityService发送触发信息;或者
[0046] 当所述终端监听到所述信息显示窗口的控件被点击时,向所述注册模块注册的所 述AccessibilityService发送触发信息。
[0047] 其中,所述触发信息中包括:发生变化的所述终端操作界面信息;
[0048] 其中,所述触发信息用于触发所述AccessibilityService获取发生变化的所述 终端操作界面信息的控件视图,并将所述控件视图发送给所述终端。
[0049] 其中,所述调用模块,具体用于:
[0050] 所述终端调用所述第一指定函数,通过所述第一指定函数遍历所述终端操作界面 中所述控件视图对应的根视图,以从所述根视图及所述根视图下的子视图中获取目标视 图。
[0051] 其中,所述目标视图为用于实现终端控件的模拟点击的视图,所述视图中包括的 终端控件为实现模拟点击、确认的控件。
[0052] 其中,所述处理模块,具体用于:
[0053] 所述终端根据所述根视图遍历所述根视图下的所有子视图,根据预置的目标视图 的特征信息从所有所述子视图中获取目标视图;
[0054] 其中,所述目标视图的特征信息包括:所述目标视图的类名、所述目标视图的控件 信息、所述目标视图的显示文本信息中的至少一种。
[0055] 其中,所述目标视图的控件信息包括:所述目标视图的控件名称、所述目标视图的 控件在所述目标视图中的坐标位置;
[0056] 所述处理模块,具体用于:
[0057] 将所有所述子视图的特征信息与所述目标视图的特征信息进行匹配,从所述子视 图中获取特征信息与所述目标视图的特征信息相匹配的子视图,作为所述目标视图。
[0058] 其中,所述目标视图的特征信息还包括:所述目标视图的控件标识ID ;
[0059] 所述处理模块,具体用于:
[0060] 将所有所述子视图包含的控件ID与所述目标视图的所述控件ID进行匹配,从所 有所述子视图中获取控件ID与所述目标视图的所述控件ID相匹配的子视图,作为目标视 图。
[0061] 其中,所述装置具体为:手机、平板电脑、笔记本电脑、随身听中的至少一种。
[0062] 本发明实施例第三方面提供了一种终端,其可包括:本发明实施例第二方面提供 的装置中的任意一项。
[0063] 实施本发明实施例可向系统注册继承AccessibilityService,通过 AccessibilityService监听终端操作界面信息,在终端操作界面信息发生变化时,通过 AccessibilityService获取终端操作界面的控件视图,根据控制视图获取目标视图,进而 调用指定函数实现目标视图上的终端控件的模拟点击。操作简单,适配性高,实现成本低, 提闻了终端的用户体验。

【专利附图】

【附图说明】
[0064] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于 本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他 的附图。
[0065] 图1是本发明实施例提供的终端控件的模拟点击方法的实施例流程示意图;
[0066]图2是本发明实施例提供的终端控件的模拟点击装置的实施例结构示意图;
[0067] 图3是本发明实施例提供的终端的实施例结构示意图。

【具体实施方式】
[0068] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0069] 具体实现中,本发明实施例中所描述的终端,可包括:手机、平板电脑、笔记本电 脑、随身听等,上述终端仅是举例,而非穷举,包含但不限于上述终端。下面将以手机为例, 对本发明实施例提供的终端控件的模拟点击方法及装置进行具体描述。
[0070] 参见图1,是本发明实施例提供的终端控件的模拟点击方法的实施例流程示意图。 本实施例所描述的终端控件的模拟点击方法,包括步骤:
[0071] S101,终端向系统注册继承辅助功能服务AccessibilityService,在所述 AccessibilityService的注册信息中设置待监听的终端操作界面信息。
[0072] 在一些可行的实施方式中,手机要实现控件的模拟点击(即,无需用户进行手 动点击,手机可在控件需要点击时,通过模拟用户点击的方式点击控件,确认控件对应的 操作事件),首先可向系统注册一个继承辅助功能服务(AccessibilityService),并通 过上述AccessibilityService实现相关抽象接口的初始化,以通过相关接口实现手机 控件的模拟点击。具体实现中,手机向系统注册AccessibilityService时,还可在上述 AccessibilityService的注册信息中设置待监听的手机操作界面信息。即,手机可在 AccessibilityService的注册中声明实现控件模拟点击的操作中需要监听的手机操作界 面的选项信息等,当手机操作界面上的上述选项信息发生变化时,则可触发相应的操作,进 而实现控件的模拟点击,无线手机用户进行手动点击。具体实现中,本发明实施例中所描述 的终端操作界面信息可包括:信息显示窗口所在的包名、信息显示窗口的滑动状态、信息显 示窗口的显示内容、信息显示窗口的显示状态,以及信息显示窗口的控件状态等。具体的, 上述信息显示窗口的显示内容可包括信息显示窗口中显示的文本信息,例如,上述信息显 示窗口中正安装的应用程序A的名称、功能描述等信息、应用程序A安装需要用户确认的控 件的功能信息等。上述信息显示窗口的显示状态包括上述信息显示窗口被打开、被隐藏或 者被覆盖等显示状态,例如,应用程序A的安装信息显示窗口被应用程序B的安装信息显示 窗口覆盖等。上述信息显示窗口的显示内容或者显示状态等信息仅是举例,而非穷举,包含 但不现有上述信息,在此不再赘述。
[0073] S102,当所述终端监听到所述终端操作界面信息发生变化时,所述终端向所述 AccessibilityService 发送触发信息。
[0074] 在一些可行的实施方式中,手机向系统注册了上述AccessibilityService服 务之后,则可对在上述AccessibilityService服务的注册过程中设置的待监听的操作 界面信息进行监听。当手机监听到上述操作界面信息中任意一项发生变化,或者当上 述操作界面信息中任意一项发生变化并且变化幅度超过预设阈值时,手机则可向上述 AccessibilityService发送触发信息,以通过上述AccessibilityService获取发生变 化的终端操作界面的控件视图。具体的,当手机监听到上述信息显示窗口滑动时,则可向 AccessibilityService发送触发信息;或者,当手机监听到上述信息显示窗口中显示的文 本信息发生变化时,则可向AccessibilityService发送触发信息;或者,当手机监听到上 述信息显示窗口被打开时,可向上述AccessibilityService发送触发信息;或者,当手机 监听到上述信息显示窗口的控件被点击时,可向上述AccessibilityService发送触发信 息。其中,上述触发信息具体可为上述AccessibilityService中的AccessibilityEvent 参数,上述AccessibilityEvent参数中包含发生变化的操作界面信息,具体的,上述发生 变化操作界面信息可称为发生变化的事件源(包括上述多项操作界面信息中的任意项), 具体的,上述事件源可相当于手机操作界面中的控件视图View。在本发明实施例中,上述触 发信息可用于触发上述AccessibilityService获取发生变化的手机操作界面信息的控件 视图,并将上述控件视图发送给手机。
[0075] S103,所述终端接收所述AccessibilityService根据所述触发信息获取到的所 述终端操作界面的控件视图,并根据所述控件视图调用第一指定函数遍历所述终端操作界 面中的根视图。
[0076] 在一些可行的实施方式中,手机向上述AccessibilityService发送触发 信息之后,则可接收上述AccessibilityService根据上述触发信息获取到的控件 视图,并根据上述控件视图调用第一指定函数遍历上述操作界面中的根视图。具体 实现中,上述AccessibilityService接收到手机发送的触发信息之后,则可触发上 述 AccessibilityService 中的回调接口 AccessibilitEvent,通过上述回调接 口 AccessibilitEvent获取手机操作界面的控件视图,并将上述控件视图发送给手机。手 机获取到上述控件视图之后,则可调用GetParent函数(即第一指定函数),通过上述 GetParent函数去遍历手机操作界面中的根视图,进而可遍历上述根视图中的子视图,从上 述根视图或者上述根视图下的子视图中获取目标视图。具体的,上述目标视图具体可为用 于实现手机控件的模拟点击的视图,上述视图中包括手机控件,上述手机控件即为实现模 拟点击、确认的控件。即本发明实施例所要实现的最终效果既是在上述目标视图中,实现对 上述目标视图上的控件的模拟点击,用户无需手动点击上述目标视图中的控件,即可完成 上述控件上的功能的确认,例如:"确认"、"取消"等。
[0077] S104,所述终端根据所述根视图获取目标视图,并通过第二指定函数实现所述目 标视图上的终端控件的模拟点击。
[0078] 在一些可行的实施方式中,手机根据上述根视图获取目标视图时,可根据上述根 视图遍历上述根视图下的所有子视图,根据预置的目标视图的特征信息从所有子视图中 获取目标视图。其中,上述目标视图的特征信息可包括:目标视图的类名、目标视图的控 件信息、目标视图的显示文本信息等。上述目标视图的控件信息可包括:目标视图的控 件名称、目标视图的控件在你上述目标视图中的坐标位置等。具体的,手机根据预置的目 标视图的特征信息从所有子视图中获取目标视图时,可将所有子视图的特征信息与目标 视图的特征信息进行匹配,从所有子视图中获取特征信息与目标视图的特征信息相匹配 的子视图,将上述子视图作为目标视图。例如,手机可调用GetclassName函数,通过上述 GetclassName函数获取上述根视图或者上述根视图下的子视图的类名,将上述根视图或 者根视图下的子视图的类名与目标视图的类名进行匹配,判断上述根视图或者根视图的子 视图的类名是否为目标视图,或者根据上述根视图或者根视图下的子视图上的控件信息, 显示文本信息等信息内容判断上述视图是否为目标视图。若获取得到目标视图,则可调用 Performaction (action_click)函数(即第二指定函数),通过上述函数实现对上述目标视 图上的控件的模拟点击。
[0079] 在一些可行的实施方式中,手机根据预置的目标视图的特征信息从所有子视 图中获取目标视图时,还可将所有子视图包含的控件标识ID与目标视图的控件ID进 行匹配,从上述所有子视图中获取控件ID与目标视图的控件ID相匹配的子视图,将 上述子视图作为目标视图。例如,手机可在上述AccessibilityService服务中调用 AccessibilityNodeinfo 中的 FindAccessibilityNodelnfosByViewId 函数,通过上述 Fin dAccessibilityNodelnfosByViewId函数对需要各个子视图包含的控件ID进行匹配,获取 目标视图。由于同一个应用中的控件ID是唯一的,因此通过控件ID进行匹配,获取目标视 图更加准确,效率更高。获取得到目标视图之后,贝1J可调用Performaction(action_click) 函数,通过上述函数实现对上述目标视图上的控件的模拟点击。
[0080] 在本发明实施例中,由于手机Android系统中自带的AccessibilityService 本身就具有获取监听手机操作界面内容变化的功能,本发明实施例通过向系统注册继承 AccessibilityService的服务,在上述AccessibilityService的注册中设置待监听的手 机操作界面信息,通过上述AccessibilityService监听手机操作界面信息的变化。手机可 在获知手机操作界面信息发生变化时,向AccessibilityService发送触发信息,通过上述 AccessibilityService获取操作界面的控件视图,进而根据上述控件视图,调用相应的函 数获取目标视图。手机获取到目标视图之后,贝1J可通过调用Performaction (action_click) 函数等函数实现手机控件的模拟点击,手机用户无需手机点击手机操作界面上的目标视图 上的控件即可实现对上述控件所对应的功能的确认,以使手机应用程序的安装等程序顺利 往下进行,实现应用程序的安装等。本发明实施例对手机控件的模拟点击的实现方式利用 了手机系统中的AccessibilityService的特性,使得控件的模拟点击的实现操作简单,适 配性高,实现成本低,提高了终端的用户体验。
[0081] 参见图2,是本发明实施例提供的终端控件的模拟点击装置的实施例结构示意图。 本实施例中所描述的终端控件的模拟点击装置包括:
[0082] 注册模块10,用于向系统注册继承辅助功能服务AccessibilityService,在所述 AccessibilityService的注册信息中设置待监听的终端操作界面信息。
[0083] 发送模块20,用于在监听到所述终端操作界面信息发生变化时,向所述注册模块 注册的所述AccessibilityService发送触发信息。
[0084] 接收模块30,用于接收所述AccessibilityService根据所述发送模块发送的所 述触发信息获取到的所述终端操作界面的控件视图。
[0085] 调用模块40,用于根据所述接收模块接收到的所述控件视图调用第一指定函数遍 历所述终端操作界面中的根视图。
[0086] 处理模块50,用于根据所述调用模块遍历的所述根视图获取目标视图,并通过第 二指定函数实现所述目标视图上的终端控件的模拟点击。
[0087] 在一些可行的实施方式中,上述发送模块20,具体用于:
[0088] 当所述终端监听到所述信息显示窗口滑动时,向所述注册模块注册的所述 AccessibilityService发送触发信息;或者
[0089] 当所述终端监听到所述信息显示窗口中显示的文本信息发生变化时,向所述注册 模块注册的所述AccessibilityService发送触发信息;或者
[0090] 当所述终端监听到所述信息显示窗口被打开时,向所述注册模块注册的所述 AccessibilityService发送触发信息;或者
[0091] 当所述终端监听到所述信息显示窗口的控件被点击时,向所述注册模块注册的所 述AccessibilityService发送触发信息。
[0092] 在一些可行的实施方式中,上述调用模块40,具体用于:
[0093] 所述终端调用所述第一指定函数,通过所述第一指定函数遍历所述终端操作界面 中所述控件视图对应的根视图,以从所述根视图及所述根视图下的子视图中获取目标视 图。
[0094] 在一些可行的实施方式中,上述处理模块50,具体用于:
[0095] 所述终端根据所述根视图遍历所述根视图下的所有子视图,根据预置的目标视图 的特征信息从所有所述子视图中获取目标视图。
[0096] 在一些可行的实施方式中,上述处理模块50,具体用于:
[0097] 将所有所述子视图的特征信息与所述目标视图的特征信息进行匹配,从所述子视 图中获取特征信息与所述目标视图的特征信息相匹配的子视图,作为所述目标视图。
[0098] 在一些可行的实施方式中,上述处理模块50,具体用于:
[0099] 将所有所述子视图包含的控件ID与所述目标视图的所述控件ID进行匹配,从所 有所述子视图中获取控件ID与所述目标视图的所述控件ID相匹配的子视图,作为目标视 图。
[0100] 在一些可行的实施方式中,手机要实现控件的模拟点击(即,无需用户进 行手动点击,手机可在控件需要点击时,通过模拟用户点击的方式点击控件,确认控 件对应的操作事件),首先可通过注册模块10向系统注册一个继承辅助功能服务 (AccessibilityService),并通过上述 AccessibilityService 实现相关抽象接 口 的初 始化,以通过相关接口实现手机控件的模拟点击。具体实现中,注册模块10向系统注册 AccessibilityService时,还可在上述AccessibilityService的注册信息中设置待监听 的手机操作界面信息。S卩,注册模块10可在AccessibilityService的注册中声明实现控 件模拟点击的操作中需要监听的手机操作界面的选项信息等,当手机操作界面上的上述选 项信息发生变化时,则可触发相应的操作,进而实现控件的模拟点击,无线手机用户进行手 动点击。具体实现中,本发明实施例中所描述的终端操作界面信息可包括:信息显示窗口 所在的包名、信息显示窗口的滑动状态、信息显示窗口的显示内容、信息显示窗口的显示状 态,以及信息显示窗口的控件状态等。具体的,上述信息显示窗口的显示内容可包括信息显 示窗口中显示的文本信息,例如,上述信息显示窗口中正安装的应用程序A的名称、功能描 述等信息、应用程序A安装需要用户确认的控件的功能信息等。上述信息显示窗口的显示 状态包括上述信息显示窗口被打开、被隐藏或者被覆盖等显示状态,例如,应用程序A的安 装信息显示窗口被应用程序B的安装信息显示窗口覆盖等。上述信息显示窗口的显示内容 或者显示状态等信息仅是举例,而非穷举,包含但不现有上述信息,在此不再赘述。具体实 现中,上述注册模块的具体实现过程可参见本发明实施例提供的终端控件的模拟点击方法 的实施例中的步骤S101,在此不再赘述。
[0101] 在一些可行的实施方式中,手机通过注册模块10向系统注册了上述 AccessibilityService服务之后,则可对在上述AccessibilityService服务的注册 过程中设置的待监听的操作界面信息进行监听。当手机监听到上述操作界面信息中任 意一项发生变化,或者当上述操作界面信息中任意一项发生变化并且变化幅度超过预 设阈值时,发送模块20则可向上述AccessibilityService发送触发信息,以通过上述 AccessibilityService获取发生变化的终端操作界面的控件视图。具体的,当手机监听 到上述信息显示窗口滑动时,发送模块20则可向AccessibilityService发送触发信息; 或者,当手机监听到上述信息显示窗口中显示的文本信息发生变化时,发送模块20可向 AccessibilityService发送触发信息;或者,当手机监听到上述信息显示窗口被打开时, 发送模块20可向上述AccessibilityService发送触发信息;或者,当手机监听到上述信 息显示窗口的控件被点击时,发送模块20可向上述AccessibilityService发送触发信息。 其中,上述触发信息具体可为上述AccessibilityService中的AccessibilityEvent参数, 上述AccessibilityEvent参数中包含发生变化的操作界面信息,具体的,上述发生变化操 作界面信息可称为发生变化的事件源(包括上述多项操作界面信息中的任意项),具体的, 上述事件源可相当于手机操作界面中的控件视图View。在本发明实施例中,上述触发信息 可用于触发上述AccessibilityService获取发生变化的手机操作界面信息的控件视图, 并将上述控件视图发送给手机。具体实现中,上述发送模块的具体实现过程可参见本发明 实施例提供的终端控件的模拟点击方法的实施例中的步骤S102,在此不再赘述。
[0102] 在一些可行的实施方式中,发送模块20向上述AccessibilityService发送触发 信息之后,接收模块30则可接收上述AccessibilityService根据上述触发信息获取到的 控件视图,并通过调用模块根据上述控件视图调用第一指定函数遍历上述操作界面中的根 视图。具体实现中,上述AccessibilityService接收到发送模块20发送的触发信息之后, 则可触发上述AccessibilityService中的回调接口 AccessibilitEvent,通过上述回调接 口 AccessibilitEvent获取手机操作界面的控件视图,并将上述控件视图发送给手机。手 机通过接收模块30获取到上述控件视图之后,则可通过调用模块40调用GetParent函数 (即第一指定函数),通过上述GetParent函数去遍历手机操作界面中的根视图,进而可通 过处理模块50遍历上述根视图中的子视图,从上述根视图或者上述根视图下的子视图中 获取目标视图。具体的,上述目标视图具体可为用于实现手机控件的模拟点击的视图,上述 视图中包括手机控件,上述手机控件即为实现模拟点击、确认的控件。即本发明实施例所要 实现的最终效果既是在上述目标视图中,实现对上述目标视图上的控件的模拟点击,用户 无需手动点击上述目标视图中的控件,即可完成上述控件上的功能的确认,例如:"确认"、 "取消"等。具体实现中,上述接收模块、调用模块的具体实现过程可参见本发明实施例提供 的终端控件的模拟点击方法的实施例中的步骤S103,在此不再赘述。
[0103] 在一些可行的实施方式中,处理模块50根据上述根视图获取目标视图时,可根据 上述根视图遍历上述根视图下的所有子视图,根据预置的目标视图的特征信息从所有子视 图中获取目标视图。其中,上述目标视图的特征信息可包括:目标视图的类名、目标视图的 控件信息、目标视图的显示文本信息等。上述目标视图的控件信息可包括:目标视图的控件 名称、目标视图的控件在你上述目标视图中的坐标位置等。具体的,处理模块50根据预置 的目标视图的特征信息从所有子视图中获取目标视图时,可将所有子视图的特征信息与目 标视图的特征信息进行匹配,从所有子视图中获取特征信息与目标视图的特征信息相匹配 的子视图,将上述子视图作为目标视图。例如,处理模块50可调用GetclassName函数,通 过上述GetclassName函数获取上述根视图或者上述根视图下的子视图的类名,将上述根 视图或者根视图下的子视图的类名与目标视图的类名进行匹配,判断上述根视图或者根视 图的子视图的类名是否为目标视图,或者根据上述根视图或者根视图下的子视图上的控件 信息,显示文本信息等信息内容判断上述视图是否为目标视图。处理模块50若获取得到目 标视图,贝1J可调用Performaction(action_click)函数(即第二指定函数),通过上述函数 实现对上述目标视图上的控件的模拟点击。
[0104] 在一些可行的实施方式中,处理模块50根据预置的目标视图的特征信息从所 有子视图中获取目标视图时,还可将所有子视图包含的控件标识ID与目标视图的控 件ID进行匹配,从上述所有子视图中获取控件ID与目标视图的控件ID相匹配的子视 图,将上述子视图作为目标视图。例如,手机可在上述AccessibilityService服务中调 用 AccessibilityNodeinfo 中的 FindAccessibilityNodelnfosByViewId 函数,通过上 述FindAccessibilityNodelnfosByViewId函数对需要各个子视图包含的控件ID进行 匹配,获取目标视图。由于同一个应用中的控件ID是唯一的,因此通过控件ID进行匹 配,获取目标视图更加准确,效率更高。处理模块50获取得到目标视图之后,则可调用 Performaction (action_click)函数,通过上述函数实现对上述目标视图上的控件的模拟 点击。具体实现中,上述处理模块的具体实现过程可参见本发明实施例提供的终端控件的 模拟点击方法的实施例中的步骤S104,在此不再赘述。
[0105] 在本发明实施例中,由于手机Android系统中自带的AccessibilityService本 身就具有获取监听手机操作界面内容变化的功能,本发明实施例中所描述的装置(手机) 通过向系统注册继承AccessibilityService的服务,在上述AccessibilityService的注 册中设置待监听的手机操作界面信息,通过上述AccessibilityService监听手机操作界 面信息的变化。手机可在获知手机操作界面信息发生变化时,向AccessibilityService 发送触发信息,通过上述AccessibilityService获取操作界面的控件视图,进而根据上 述控件视图,调用相应的函数获取目标视图。手机获取到目标视图之后,则可通过调用 Performaction (action_click)函数等函数实现手机控件的模拟点击,手机用户无需手机 点击手机操作界面上的目标视图上的控件即可实现对上述控件所对应的功能的确认,以使 手机应用程序的安装等程序顺利往下进行,实现应用程序的安装等。本发明实施例对手机 控件的模拟点击的实现方式利用了手机系统中的AccessibilityService的特性,使得控 件的模拟点击的实现操作简单,适配性高,实现成本低,提高了终端的用户体验。
[0106] 参见图3,是本发明实施例提供的终端的实施例结构示意图。本发明实施例中所描 述的终端可包括上述本发明实施例提供的终端控件的模拟点击装置1000。本发明实施例中 所描述的终端的具体实现过程可参见本发明实施例提供的终端控件的模拟装置的实施例 中所描述的内容。
[0107] 在本说明书的描述中,参考术语"一个实施例"、"一些实施例"、"示例"、"具体示 例"、或"一些示例"等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特 点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不 必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任 一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技 术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结 合和组合。
[0108] 此外,术语"第一"、"第二"仅用于描述目的,而不能理解为指示或暗示相对重要性 或者隐含指明所指示的技术特征的数量。由此,限定有"第一"、"第二"的特征可以明示或 者隐含地包括至少一个该特征。在本发明的描述中,"多个"的含义是至少两个,例如两个, 三个等,除非另有明确具体的限定。
[0109] 流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括 一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部 分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺 序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明 的实施例所属【技术领域】的技术人员所理解。
[0110] 在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是 用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以 供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指 令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置 或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传 播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使 用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个 布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读 存储器(R0M),可擦除可编辑只读存储器(EPR0M或闪速存储器),光纤装置,以及便携式光 盘只读存储器(⑶ROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其 他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必 要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器 中。
[0111] 应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述 实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件 或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下 列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路 的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场 可编程门阵列(FPGA)等。
[0112] 本【技术领域】的普通技术人员可以理解实现上述实施例方法携带的全部或部分步 骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介 质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0113] 此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以 是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模 块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如 果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机 可读取存储介质中。
[0114] 上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描 述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限 制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变 型。
[0115] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以 通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质 中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁 碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random Access Memory, RAM)等。
[0116] 以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范 围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
【权利要求】
1. 一种终端控件的模拟点击方法,其特征在于,包括: 终端向系统注册继承辅助功能服务AccessibilityService,在所述 AccessibilityService的注册信息中设置待监听的终端操作界面信息; 当所述终端监听到所述终端操作界面信息发生变化时,所述终端向所述 AccessibilityService 发送触发信息; 所述终端接收所述AccessibilityService根据所述触发信息获取到的所述终端操作 界面的控件视图,并根据所述控件视图调用第一指定函数遍历所述终端操作界面中的根视 图; 所述终端根据所述根视图获取目标视图,并通过第二指定函数实现所述目标视图上的 终端控件的模拟点击。
2.如权利要求1所述的方法,其特征在于,所述待监听的终端操作界面信息包括:信息 显示窗口所在的包名,以及所述信息显示窗口的滑动状态、所述信息显示窗口的显示内容、 所述信息显示窗口的显示状态、所述信息显示窗口的控件状态中的至少一种; 其中,所述信息显示窗口的显示内容包括所述信息显示窗口中显示的文本信息; 所述信息显示窗口的显示状态包括所述信息显示窗口被打开、或者被隐藏。
3.如权利要求2所述的方法,其特征在于,当所述终端监听到所述终端操作界面信息 发生变化时,所述终端向所述AccessibilityService发送触发信息,包括: 当所述终端监听到所述信息显示窗口滑动时,所述终端向所述AccessibilityService 发送触发信息;或者 当所述终端监听到所述信息显示窗口中显示的文本信息发生变化时,所述终端向所述 AccessibilityService发送触发信息;或者 当所述终端监听到所述信息显示窗口被打开时,所述终端向所述 AccessibilityService发送触发信息;或者 当所述终端监听到所述信息显示窗口的控件被点击时,所述终端向所述 AccessibilityService 发送触发信息。
4.如权利要求3所述的方法,其特征在于,所述触发信息中包括:发生变化的所述终端 操作界面信息; 其中,所述触发信息用于触发所述AccessibilityService获取发生变化的所述终端 操作界面信息的控件视图,并将所述控件视图发送给所述终端。
5.如权利要求4所述的方法,其特征在于,所述根据所述控件视图调用第一指定函数 遍历所述终端操作界面中的根视图,包括: 所述终端调用所述第一指定函数,通过所述第一指定函数遍历所述终端操作界面中所 述控件视图对应的根视图,以从所述根视图及所述根视图下的子视图中获取目标视图。
6.如权利要求5所述的方法,其特征在于,所述目标视图为用于实现终端控件的模拟 点击的视图,所述视图中包括的终端控件为实现模拟点击、确认的控件。
7.如权利要求6所述的方法,其特征在于,所述终端根据所述根视图获取目标视图,包 括: 所述终端根据所述根视图遍历所述根视图下的所有子视图,根据预置的目标视图的特 征信息从所有所述子视图中获取目标视图; 其中,所述目标视图的特征信息包括:所述目标视图的类名、所述目标视图的控件信 息、所述目标视图的显示文本信息中的至少一种。
8.如权利要求7所述的方法,其特征在于,所述目标视图的控件信息包括:所述目标视 图的控件名称、所述目标视图的控件在所述目标视图中的坐标位置; 所述根据预置的目标视图的特征信息从所有所述子视图中获取所述目标视图,包括: 将所有所述子视图的特征信息与所述目标视图的特征信息进行匹配,从所述子视图中 获取特征信息与所述目标视图的特征信息相匹配的子视图,作为所述目标视图。
9.如权利要求8所述的方法,其特征在于,所述目标视图的特征信息还包括:所述目标 视图的控件标识ID ; 所述根据预置的目标视图的特征信息从所有所述子视图中获取所述目标视图,包括: 将所有所述子视图包含的控件ID与所述目标视图的所述控件ID进行匹配,从所有所 述子视图中获取控件ID与所述目标视图的所述控件ID相匹配的子视图,作为目标视图。
10.如权利要求1-9任意一项所述的方法,其特征在于,所述终端包括:手机、平板电 脑、笔记本电脑、随身听中的至少一种。
11. 一种终端控件的模拟点击装置,其特征在于,包括: 注册模块,用于向系统注册继承辅助功能服务AccessibilityService,在所述 AccessibilityService的注册信息中设置待监听的终端操作界面信息; 发送模块,用于在监听到所述终端操作界面信息发生变化时,向所述注册模块注册的 所述AccessibilityService发送触发信息; 接收模块,用于接收所述AccessibilityService根据所述发送模块发送的所述触发 信息获取到的所述终端操作界面的控件视图; 调用模块,用于根据所述接收模块接收到的所述控件视图调用第一指定函数遍历所述 终端操作界面中的根视图; 处理模块,用于根据所述调用模块遍历的所述根视图获取目标视图,并通过第二指定 函数实现所述目标视图上的终端控件的模拟点击。
12.如权利要求11所述的装置,其特征在于,所述待监听的终端操作界面信息包括:信 息显示窗口所在的包名,以及所述信息显示窗口的滑动状态、所述信息显示窗口的显示内 容、所述信息显示窗口的显示状态、所述信息显示窗口的控件状态中的至少一种; 其中,所述信息显示窗口的显示内容包括所述信息显示窗口中显示的文本信息; 所述信息显示窗口的显示状态包括所述信息显示窗口被打开、或者被隐藏。
13.如权利要求12所述的装置,其特征在于,所述发送模块,具体用于: 当所述终端监听到所述信息显示窗口滑动时,向所述注册模块注册的所述 AccessibilityService发送触发信息;或者 当所述终端监听到所述信息显示窗口中显示的文本信息发生变化时,向所述注册模块 注册的所述AccessibilityService发送触发信息;或者 当所述终端监听到所述信息显示窗口被打开时,向所述注册模块注册的所述 AccessibilityService发送触发信息;或者 当所述终端监听到所述信息显示窗口的控件被点击时,向所述注册模块注册的所述 AccessibilityService 发送触发信息。
14.如权利要求13所述的装置,其特征在于,所述触发信息中包括:发生变化的所述终 端操作界面信息; 其中,所述触发信息用于触发所述AccessibilityService获取发生变化的所述终端 操作界面信息的控件视图,并将所述控件视图发送给所述终端。
15.如权利要求14所述的装置,其特征在于,所述调用模块,具体用于: 所述终端调用所述第一指定函数,通过所述第一指定函数遍历所述终端操作界面中所 述控件视图对应的根视图,以从所述根视图及所述根视图下的子视图中获取目标视图。
16.如权利要求15所述的装置,其特征在于,所述目标视图为用于实现终端控件的模 拟点击的视图,所述视图中包括的终端控件为实现模拟点击、确认的控件。
17.如权利要求16所述的装置,其特征在于,所述处理模块,具体用于: 所述终端根据所述根视图遍历所述根视图下的所有子视图,根据预置的目标视图的特 征信息从所有所述子视图中获取目标视图; 其中,所述目标视图的特征信息包括:所述目标视图的类名、所述目标视图的控件信 息、所述目标视图的显示文本信息中的至少一种。
18.如权利要求17所述的装置,其特征在于,所述目标视图的控件信息包括:所述目标 视图的控件名称、所述目标视图的控件在所述目标视图中的坐标位置; 所述处理模块,具体用于: 将所有所述子视图的特征信息与所述目标视图的特征信息进行匹配,从所述子视图中 获取特征信息与所述目标视图的特征信息相匹配的子视图,作为所述目标视图。
19.如权利要求18所述的装置,其特征在于,所述目标视图的特征信息还包括:所述目 标视图的控件标识ID ; 所述处理模块,具体用于: 将所有所述子视图包含的控件ID与所述目标视图的所述控件ID进行匹配,从所有所 述子视图中获取控件ID与所述目标视图的所述控件ID相匹配的子视图,作为目标视图。
20.如权利要求11-19任意一项所述的装置,其特征在于,所述装置具体为:手机、平板 电脑、笔记本电脑、随身听中的至少一种。
21. -种终端,其特征在于,所述终端包括:如权利要求11-20任意一项所述的装置。
【文档编号】G06F9/44GK104142793SQ201410362371
【公开日】2014年11月12日 申请日期:2014年7月26日 优先权日:2014年7月26日
【发明者】黄伦华, 刘桂峰, 姚辉 申请人:珠海市君天电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1