一种基于android系统的读屏方法及装置与流程

文档序号:11133597阅读:838来源:国知局
一种基于android系统的读屏方法及装置与制造工艺

本发明涉及电子技术领域,尤其涉及一种基于android系统的读屏方法及装置。



背景技术:

随着智能手机、平板电脑等计算机设备的快速普及,各种应用程序也层出不穷,越来越多的用户能够真实感受到功能多样的应用程序带来的生活便利和无线乐趣;但是,社会中还有一部分特殊群体也需要使用智能手机等计算机设备,那就是有一定功能障碍的人群,例如视障人群,尤其是全盲的视障群体,完全是靠耳朵听取声音来操作计算机。

在使用智能手机、平板电脑等终端设备的辅助操作功能(包括但不限于Voiceover、Talkback等读屏软件和其他类似功能的应用)时,用户界面元素及其功能会被提取出来并通过TTS(Text to Speech,文字转语音技术)把所选择的文字用语音播放出来,以帮助用户了解手机屏幕当前显示的内容,给用户带来了更全面更丰富的使用体验,尤其是使得存在一定功能障碍的人群(例如视觉障碍的残障人员、老年人等特殊群体)能够无障碍的使用智能手机等终端设备。

一般的,应用程序的用户界面设计都会使用智能手机系统预先定义的一些控件和视图,这样智能手机中的辅助服务程序就可以读取出用户界面的界面信息。但是,现阶段的很多应用程序为了提供更多元的界面元素和实现更全面的业务需求,都会自定义一些界面元素,而这类自定义的界面元素是无法被智能手机中的辅助服务程序所读取的,这就导致存在一定视觉功能障碍的人群无法完整的获取用户界面展示的界面元素,从而可能造成视觉功能障碍的人群无法正常使用应用程序的部分功能。



技术实现要素:

本发明实施例所要解决的技术问题在于,提供一种基于android系统的读屏方法及装置,解决视觉功能障碍的人群在android系统中无法完整的获取用户界面展示的界面元素的问题。

本发明实施例提供了一种基于android系统的读屏方法,所述方法包括:

检测用户当前正在操作的应用程序的目标进程;

将预存的界面元素展示代码动态注入所述目标进程,以使所述目标进程运行所述界面元素展示代码以向读屏应用程序展示所述目标进程对应的界面元素信息;

获取所述目标进程对应的界面元素信息;

调用终端系统中的文字转语音引擎将所述目标进程对应的界面元素信息转换为语音数据;

输出所述语音数据。

可选的,所述将预存的界面展示代码动态注入所述目标进程包括:

将所述界面元素展示代码动态注入所述目标进程,以使所述目标进程运行所述界面信息展示代码以向所述读屏应用程序展示所述目标进程对应的界面函数信息;

所述获取所述目标进程对应的界面信息包括:

获取所述目标进程对应的界面函数信息;

根据所述目标进程对应的界面函数信息,确定所述目标进程对应的界面元素信息。

可选的,所述检测用户当前正在操作的应用程序的目标进程之前,还包括:

检测终端是否具备动态注入的系统权限;

若所述终端具备所述系统权限,则执行所述检测用户当前正在操作的应用程序的目标进程步骤。

可选的,所述方法还包括:

若所述终端不具备所述系统权限,则通过所述终端系统中的界面展示辅助服务程序获取用户当前正在操作的用户界面对应的界面元素信息。

可选的,所述界面元素信息包括界面控件信息和界面视图信息中的至少一个。

相应的,本发明实施例还提供了一种基于android系统的读屏装置,所述装置包括:

第一检测模块,用于检测用户当前正在操作的应用程序的目标进程;

注入模块,用于将预存的界面元素展示代码动态注入所述目标进程,以使所述目标进程运行所述界面元素展示代码以向读屏应用程序展示所述目标进程对应的界面元素信息;

第一获取模块,用于获取所述目标进程对应的界面元素信息;

转换模块,用于调用终端系统中的文字转语音引擎将所述目标进程对应的界面元素信息转换为语音数据;

输出模块,用于输出所述语音数据。

可选的,所述注入模块用于:

将所述界面元素展示代码动态注入所述目标进程,以使所述目标进程运行所述界面元素展示代码以向所述读屏应用程序展示所述目标进程对应的界面函数信息;

所述第一获取模块包括:

获取单元,用于获取所述目标进程对应的界面函数信息;

确定单元,用于根据所述目标进程对应的界面函数信息,确定所述目标进程对应的界面元素信息。

可选的,所述装置还包括:

第二检测模块,用于检测终端是否具备动态注入的系统权限;

若所述终端具备所述系统权限,则调用第一检测模块执行所述检测用户当前正在操作的应用程序的目标进程步骤。

可选的,所述装置还包括:

第二获取模块,用于若所述终端不具备所述系统权限,则通过所述终端系统中的界面展示辅助服务程序获取用户当前正在操作的用户界面对应的界面元素信息。

可选的,所述界面元素信息包括界面控件信息和界面视图信息中的至少一个。

本发明实施例通过检测用户当前正在操作的应用程序的目标进程,将预存的界面元素展示代码动态注入所述目标进程,以使所述目标进程运行所述界面元素展示代码以向读屏应用程序展示所述目标进程对应的界面元素信息,获取所述目标进程对应的界面元素信息,调用终端系统中的文字转语音引擎将所述目标进程对应的界面元素信息转换为语音数据,输出所述语音数据,可以解决视觉功能障碍的人群在android系统中无法完整的获取用户界面展示的界面元素的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种基于android系统的读屏方法的流程示意图;

图2为本发明实施例提供的另一种基于android系统的读屏方法的流程示意图;

图3为本发明实施例提供的一种目标进程对应的用户界面的示例图;

图4为本发明实施例提供的一种读屏情景示例图;

图5为本发明实施例提供的一种基于android系统的读屏装置的组成结构图;

图6为本发明实施例中图5的第一获取模块的组成结构图;

图7为本发明实施例提供的另一种基于android系统的读屏装置的组成结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明实施例提供的一种基于android系统的读屏方法的流程示意图,本方法流程可以由基于android系统的读屏装置实施,所述基于android系统的读屏装置可以为用户终端或运行在用户终端的软件程序,所述用户终端可以包括手机、笔记本电脑、平板电脑、车载电脑、POS(Point Of Sales,销售点)机等。如图所示所述方法至少包括:

步骤S101,检测用户当前正在操作的应用程序的目标进程。

具体的,当终端开启一个应用程序时,会在内存中新建一个该应用程序的进程,例如,用户打开微信,终端则会建立一个关于微信的进程;用户打开滴滴出行,终端则会建立一个关于滴滴出行的进程。目标进程就是用户当前正在操作的应用程序的进程,该目标进程可以对应一个用户当前正在操作的界面。具体来说,终端可以通过后台的进程管理系统来实时的检测用户正在操作的应用程序的目标进程。

步骤S102,将预存的界面元素展示代码动态注入所述目标进程,以使所述目标进程运行所述界面元素展示代码以向读屏应用程序展示所述目标进程对应的界面元素信息。

具体的,界面元素展示代码是一段可以使目标进程向读屏应用程序展示目标进程对应的界面元素信息的程序。其中,界面元素信息是指当前运行的目标进程对应的用户界面中的所有元素的信息,可选的,所述界面元素信息包括界面控件信息和界面视图信息中的至少一个。读屏应用程序包括但不限于Talkback等读屏软件和其他类似功能的应用。

具体实施中,终端将界面元素展示代码注入目标进程后,目标进程就可以后台运行该界面元素展示代码,运行之后就可以将目标进程对应的界面元素信息展示给读屏应用程序。也可以说,界面元素展示代码的作用是使目标进程向读屏应用程序开放读取目标进程对应的界面元素信息的权限,即之前读屏应用程序是无法获取目标应用程序对应的界面元素信息的,而运行界面元素展示代码后,就获得了阅读目标进程对应的界面元素信息的权限。

举例来说,如图3所示,终端当前的目标进程正在运行的是滴滴出行的选择出行时间界面,当终端的读屏应用程序将界面元素展示代码动态注入该目标进程时,目标进程则运行该界面元素展示代码,从而将图3中选择出行时间界面对应的界面视图信息、界面控件信息等展示给读屏应用程序。

需要说明的是,这里的界面元素展示代码可以有多个,针对不同的应用程序以及不同的应用程序中的目标进程,界面元素展示代码是可以不同的。

步骤S103,获取所述目标进程对应的界面元素信息。

具体的,向读屏应用程序展示所述目标进程对应的界面元素信息后,终端的读屏应用程序就可以获取目标进程对应的界面元素信息。

可选的,步骤S102可以为:

将所述界面元素展示代码动态注入所述目标进程,以使所述目标进程运行所述界面信息展示代码以向所述读屏应用程序展示所述目标进程对应的界面函数信息。

在可选实施例中,界面元素展示代码是一段可以使目标进程向读屏应用程序展示目标进程对应的界面函数信息的程序。其中,界面函数信息是指当前运行的目标进程对应的用户界面中用户界面绘制的内部函数信息。

相应的,步骤S103可以包括:

获取所述目标进程对应的界面函数信息。

具体的,向读屏应用程序展示所述目标进程对应的界面函数信息后,终端的读屏应用程序就可以获取目标进程对应的界面函数信息。

根据所述目标进程对应的界面函数信息,确定所述目标进程对应的界面元素信息。

具体的,目标进程对应的界面函数信息中包括多种类型的用户界面绘制函数,终端的读屏应用程序可以根据不同的函数类型预设对应的算法,通过这些算法,可以根据界面函数信息确定出目标进程对应的界面元素信息,也就是说,可以通过预设的一定算法,从界面函数信息推导或者转化出界面元素信息。

步骤S104,调用终端系统中的文字转语音引擎将所述目标进程对应的界面元素信息转换为语音数据。

具体的,在确定了界面元素信息之后,终端的读屏应用程序通过调用终端系统中的文字转语音引擎,即TTS(Text To Speech,文本转语音技术)将界面元素信息转换成语音数据。例如,如图3所示的目标进程对应的用户界面,该用户界面的界面元素信息中可以包含上下滑动数字改变预约时间数值的界面控件信息,也可以包括取消按钮和确定按钮的界面控件信息,还可以包括“选择出行时间”的界面视图信息。那么终端的读屏软件可以获取这些界面元素信息,并通过TTS将界面元素信息转换成语音数据。

步骤S105,输出所述语音数据。

具体的,通过扬声器或者耳机等设备将界面元素信息转换出的语音数据播放出来。例如,如图4所示,若用户经过点击或滑动等操作确定选中确定按钮,则读屏应用程序则可以输出“确定按钮”的语音数据。

本发明实施例通过检测用户当前正在操作的应用程序的目标进程,将预存的界面元素展示代码动态注入所述目标进程,以使所述目标进程运行所述界面元素展示代码以向读屏应用程序展示所述目标进程对应的界面元素信息,获取所述目标进程对应的界面元素信息,调用终端系统中的文字转语音引擎将所述目标进程对应的界面元素信息转换为语音数据,输出所述语音数据,可以解决视觉功能障碍的人群在android系统中无法完整的获取用户界面展示的界面元素的问题。

图2为本发明实施例提供的另一种基于android系统的读屏方法的流程示意图,所述方法包括:

步骤S201,检测终端是否具备动态注入的系统权限。

具体的,并不是任何终端的读屏应用程序都可以实现动态注入,在进行动态注入操作之前,需要检测该终端是否具备动态注入的系统权限。具体来说,终端如果具备动态注入的系统权限可能有两种情况,一种是终端对包括动态注入在内的一些功能开放了权限,另一种则是终端对所有针对终端的系统操作都开放了权限,例如android系统中的root超级用户权限。

步骤S202,若所述终端具备所述系统权限,则检测用户当前正在操作的应用程序的目标进程,并执行步骤S204。

具体方法可以参考步骤S101。

步骤S203,若所述终端不具备所述系统权限,则通过所述终端系统中的界面展示辅助服务程序获取用户当前正在操作的用户界面对应的界面元素信息,并执行步骤S206。

具体的,如果检测出终端不具备动态注入的系统权限,那么终端的读屏应用程序就不能够通过动态注入的方式获取到目标进程对应的界面元素信息,此时,终端可以通过终端系统内自带的界面展示辅助服务程序来获取用户当前正在操作的用户界面对应的界面元素信息。例如,界面展示辅助服务程序可以是android系统中自带的accessibility service,accessibility service可以识别出目标应用程序对应的用户界面中继承了预设的无障碍属性的界面控件信息、界面视图信息等用户界面信息,也就是说,终端的读屏软件可以通过accessibility service获取到用户界面中未经过自定义的所有元素的界面元素信息。

步骤S204,将预存的界面元素展示代码动态注入所述目标进程,以使所述目标进程运行所述界面元素展示代码以向读屏应用程序展示所述目标进程对应的界面元素信息。

具体方法可以参考步骤S102。

步骤S205,获取所述目标进程对应的界面元素信息。

具体方法可以参考步骤S103。

步骤S206,调用终端系统中的文字转语音引擎将所述目标进程对应的界面元素信息转换为语音数据。

具体方法可以参考步骤S104。

步骤S207,输出所述语音数据。

具体方法可以参考步骤S105。

本发明实施例通过检测用户当前正在操作的应用程序的目标进程,将预存的界面元素展示代码动态注入所述目标进程,以使所述目标进程运行所述界面元素展示代码以向读屏应用程序展示所述目标进程对应的界面元素信息,获取所述目标进程对应的界面元素信息,调用终端系统中的文字转语音引擎将所述目标进程对应的界面元素信息转换为语音数据,输出所述语音数据,可以解决视觉功能障碍的人群在android系统中无法完整的获取用户界面展示的界面元素的问题。

图5为本发明实施例提供的一种基于android系统的读屏装置的组成结构图,所述装置包括:

第一检测模块510,用于检测用户当前正在操作的应用程序的目标进程;

注入模块520,用于将预存的界面元素展示代码动态注入所述目标进程,以使所述目标进程运行所述界面元素展示代码以向读屏应用程序展示所述目标进程对应的界面元素信息;

第一获取模块530,用于获取所述目标进程对应的界面元素信息;

转换模块540,用于调用终端系统中的文字转语音引擎将所述目标进程对应的界面元素信息转换为语音数据;

输出模块550,用于输出所述语音数据。

可选的,所述注入模块520用于:

将所述界面元素展示代码动态注入所述目标进程,以使所述目标进程运行所述界面元素展示代码以向所述读屏应用程序展示所述目标进程对应的界面函数信息;

所述第一获取模块530包括获取单元531和确定单元532,如图6所示,其中:

获取单元531,用于获取所述目标进程对应的界面函数信息;

确定单元532,用于根据所述目标进程对应的界面函数信息,确定所述目标进程对应的界面元素信息。

可选的,所述装置还包括:

第二检测模块560,用于检测终端是否具备动态注入的系统权限;

若所述终端具备所述系统权限,则调用第一检测模块510执行所述检测用户当前正在操作的应用程序的目标进程步骤。

可选的,所述装置还包括:

第二获取模块570,用于若所述终端不具备所述系统权限,则通过所述终端系统中的界面展示辅助服务程序获取用户当前正在操作的用户界面对应的界面元素信息。

可选的,所述界面元素信息包括界面控件信息和界面视图信息中的至少一个。

本发明实施例通过检测用户当前正在操作的应用程序的目标进程,将预存的界面元素展示代码动态注入所述目标进程,以使所述目标进程运行所述界面元素展示代码以向读屏应用程序展示所述目标进程对应的界面元素信息,获取所述目标进程对应的界面元素信息,调用终端系统中的文字转语音引擎将所述目标进程对应的界面元素信息转换为语音数据,输出所述语音数据,可以解决视觉功能障碍的人群在android系统中无法完整的获取用户界面展示的界面元素的问题。

图7为本发明实施例提供的另一种基于android系统的读屏装置的组成结构图。本实施例中所描述的装置包括:至少一个输入设备1000;至少一个输出设备2000;至少一个处理器3000,例如CPU;和存储器4000,上述输入设备1000、输出设备2000、处理器3000以及存储器4000通过总线5000连接。

其中,上述输入设备1000具体可为终端的触控面板、物理按键、鼠标、麦克风或者摄像头,用于获取终端用户输入的操作指令。

上述输出设备2000具体可为终端的显示屏、扬声器、有线或无线耳机,用于输出、显示图像数据和音频数据(语音数据)。可选的,输出设备中可以包括标准耳机接口或者无线接口,以使装置的处理器3000可以将语音数据通过标准耳机接口或者无线接口向耳机输出。

上述存储器4000可以是高速RAM存储器,也可为非不稳定的存储器(non-volatile memory),例如磁盘存储器。上述存储器4000用于存储一组程序代码,上述输入设备1000、输出设备2000和处理器3000用于调用存储器4000中存储的程序代码,执行如下操作:

上述处理器3000用于:

检测用户当前正在操作的应用程序的目标进程;

将预存的界面元素展示代码动态注入所述目标进程,以使所述目标进程运行所述界面元素展示代码以向读屏应用程序展示所述目标进程对应的界面元素信息;

获取所述目标进程对应的界面元素信息;

调用终端系统中的文字转语音引擎将所述目标进程对应的界面元素信息转换为语音数据;

输出所述语音数据。

可选的,上述存储器4000将预存的界面展示代码动态注入所述目标进程时,具体用于:

将所述界面元素展示代码动态注入所述目标进程,以使所述目标进程运行所述界面信息展示代码以向所述读屏应用程序展示所述目标进程对应的界面函数信息;

则上述存储器4000获取所述目标进程对应的界面信息时,具体用于:

获取所述目标进程对应的界面函数信息;

根据所述目标进程对应的界面函数信息,确定所述目标进程对应的界面元素信息。

可选的,上述存储器4000检测用户当前正在操作的应用程序的目标进程之前,还用于:

检测终端是否具备动态注入的系统权限;

若所述终端具备所述系统权限,则执行所述检测用户当前正在操作的应用程序的目标进程步骤。

可选的,上述存储器4000还用于:

若所述终端不具备所述系统权限,则通过所述终端系统中的界面展示辅助服务程序获取用户当前正在操作的用户界面对应的界面元素信息。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如若干个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

另外,在本发明各个实施例中的各功能模块可以集成在一个第一处理模块中,也可以是各个模块单独物理存在,也可以是两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1