CN110888615A - 用于Android系统双屏异显的多输入设备交互方法、装置及介质 - Google Patents
用于Android系统双屏异显的多输入设备交互方法、装置及介质 Download PDFInfo
- Publication number
- CN110888615A CN110888615A CN201911103654.6A CN201911103654A CN110888615A CN 110888615 A CN110888615 A CN 110888615A CN 201911103654 A CN201911103654 A CN 201911103654A CN 110888615 A CN110888615 A CN 110888615A
- Authority
- CN
- China
- Prior art keywords
- screen
- event
- display
- information
- display screen
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1423—Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
- Digital Computer Display Output (AREA)
Abstract
本发明公开了一种用于Android系统双屏异显的多输入设备交互方法、装置及介质,所述方法包括:通过系统驱动层适配两个显示屏,定制bustype类型进行主显示屏和副显示屏的区分;在通过系统输入层获取输入设备信息后,在第一函数中添加两种定制bustype类型对应的设备类型标识,并在事件结构体中添加事件绑定标识信息;监听底层设备的新增事件信息,在判断为外设输入设备时进行弹窗提示,并同步更新该外设配置至系统输入层中;系统进入异显模式后同时更新当前的同异显模式至系统输入层中;当接收到显示屏的输入设备上报事件时进行事件判断,启动对应的应用并显示至对应的显示屏中。本发明能够在副屏受主屏应用控制的同时,支持在副屏显示上进行自主控制。
Description
技术领域
本发明涉及嵌入式设备技术领域,具体涉及一种用于Android系统双屏异显的多输入设备交互方法、装置及介质。
背景技术
随着科技的不断发展,多屏娱乐和多屏办公越来越普及,多屏的应用场景也越来越多。例如,用户可将办公室或家庭中的多个显示屏幕,例如电脑屏幕、手机屏幕、电视机屏幕或投影仪屏幕等,通过局域网实现多个显示设备之间的相互的无线连接,而双屏异显也是其中一种连接方式,通过一台设备同时接入两个显示设备,使得两个显示设备分别能够显示不同的交互界面。
但是,在对现有技术的研究与实践的过程中,本发明的发明人发现,现有技术中的原生系统并未对双屏多输入设备的异显场景进行完整的支持,缺乏统一的标准;并且现有的双屏异显的场景主要用于在主屏负责显示和操作,副屏负责展示的双屏场景,副屏设备受主屏设备的模式控制,副屏不具备自主性,其内容为主屏设备投屏显示内容的其中一部分,无法做到完全自主控制和操作。
发明内容
本发明实施例所要解决的技术问题在于,一种用于Android系统双屏异显的多输入设备交互方法、装置及介质,,能够在副屏受主屏应用控制的同时,支持在副屏显示上进行自主控制。
为解决上述问题,本发明的一个实施例提供了一种用于Android系统双屏异显的多输入设备交互方法,至少包括如下步骤:
通过系统驱动层适配两个显示屏,并通过定制两种bustype类型进行主显示屏和副显示屏的区分;
在通过系统输入层获取输入设备信息后,在第一函数中添加所述两种定制bustype类型对应的设备类型标识,并在事件结构体中添加事件的绑定标识信息;
监听底层设备的新增事件信息,在判断为外设输入设备时进行弹窗提示,以使将所述外设配置为显示屏的外设输入设备,并同步更新该外设配置至系统输入层中;
在接收到副显示屏的输入设备上报事件并触发副显示屏启动新应用程序后,系统进入异显模式,同时更新当前的异显模式至系统输入层中;
当接收到所述主显示屏的输入设备上报事件信息时,根据所述事件信息进行判断和事件转换处理后,启动对应的应用并显示至所述主显示屏中;
当接收到所述副显示屏的输入设备上报事件信息时,根据所述系统输入层保存的同异显模式状态进行判断,启动对应的应用并显示至所述副显示屏中。
进一步的,所述用于Android系统双屏异显的多输入设备交互方法,还包括:
在异显模式下,当关闭副显示屏显示的应用程序时,主动退出异显模式,系统进入同显模式,并同步同显模式状态信息至系统输入层。
进一步的,所述用于Android系统双屏异显的多输入设备交互方法,还包括:
通过在系统输入层中添加坐标系转化模块,以使在同显场景下将副显示屏上报的事件转化为主显示屏的坐标系。
进一步的,所述用于Android系统双屏异显的多输入设备交互方法,还包括:
定制外设输入设备为第三种bustype类型,用于定义其额外的定义操作。
进一步的,所述通过在系统输入层中添加坐标系转化模块,以使在同显场景下将副显示屏上报的事件转化为主显示屏的坐标系,具体为:
当获取外设输入设备上报事件信息时,判断是否该事件信息是否来自主显示屏;
若是,则直接派发对应的应用程序至主显示屏,以使启动所述应用程序并显示至主显示屏;
若否,则根据坐标系转化公式将副显示屏获取的显示坐标转化为对应的主显示屏的显示坐标。
进一步的,所述在通过系统输入层获取输入设备信息后,在第一函数中添加所述两种定制bustype类型对应的设备类型标识,具体为:
通过系统底层驱动在固定的目录节点上创建对应的驱动设备节点,系统层通过读取该特定目录下的节点,并通过ioctl方式读取对应节点信息获取对应的bustype类型;
通过对系统的原有框架流程梳理获取得到isExternalDeviceLocked函数,根据所述isExternalDeviceLocked函数对输入设备的bustype类型进行判断,并添加对输入设备对应的设备类型标识,以使在系统框架层中区分自定义的bustpye类型。
进一步的,所述事件结构体中添加事件的绑定标识信息,具体为:
在native和Java层的InputEvent结构体以及input层的InputDeviceInfo结构体中添加displayId信息,同时修改InputTransport事件传递类信息,并将产生事件的输入设备displayId信息打包上报。
进一步的,所述当接收到所述主显示屏的输入设备上报事件信息时,根据所述事件信息进行判断和事件转换处理后,启动对应的应用并显示至所述主显示屏中,还包括:
在接收到所述主显示屏的输入设备上报事件信息时,提取所述事件信息中输入设备的displayId信息,且将该displayId信息保存至View类的新建成员数据mDisplayId上;
通过Launcher APP启动应用,在获取displayId信息后发送至系统的服务程序;
根据接收所述Launcher APP发送的displayId信息,检查flag标志,判断是否需要启动相关应用至副显示屏。
本发明的一个实施例提供了一种用于Android系统双屏异显的多输入设备交互装置,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述的用于Android系统双屏异显的多输入设备交互方法。
本发明的一个实施例还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述的用于Android系统双屏异显的多输入设备交互方法。
实施本发明实施例,具有如下有益效果:
本发明实施例提供的一种用于Android系统双屏异显的多输入设备交互方法、装置及介质,所述方法包括:通过系统驱动层适配两个显示屏,并通过定制两种bustype类型进行主显示屏和副显示屏的区分;在通过系统输入层获取输入设备信息后,在第一函数中添加所述两种定制bustype类型对应的设备类型标识,并在事件结构体中添加事件的绑定标识信息;监听底层设备的新增事件信息,在判断为外设输入设备时进行弹窗提示,以使将所述外设配置为显示屏的外设输入设备,并同步更新该外设配置至系统输入层中;在接收到副显示屏的输入设备上报事件并触发副显示屏启动新应用程序后,系统进入异显模式,同时更新当前的异显模式至系统输入层中;当接收到所述主显示屏的输入设备上报事件信息时,根据所述事件信息进行判断和事件转换处理后,启动对应的应用并显示至所述主显示屏中;当接收到所述副显示屏的输入设备上报事件信息时,根据所述系统输入层保存的同异显模式状态进行判断,启动对应的应用并显示至所述副显示屏中。本发明能够支持两个显示触摸屏的嵌入式设备通过操作副屏启动应用进入和退出异显模式,支持在异显模式下,两个显示屏的应用均能正常响应对应显示屏绑定的输入设备的事件信息,同时允许用户对鼠标、键盘等外部设备进行配置、绑定主副屏以及其上显示的应用,既能够满足副屏受主屏应用控制的模式,也同时支持在副屏显示上进行操作,更快速的进入或退出双屏异显模式,提高副屏的操作的自主性。
附图说明
图1为本发明实施例提供的一种用于Android系统双屏异显的多输入设备交互方法的流程示意图;
图2为本发明实施例提供的实施用于Android系统双屏异显的多输入设备交互方法的系统框架图的流程示意图;
图3为本发明实施例提供的坐标系转化模块的工作流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先介绍本发明可以提供的应用场景,如实现双屏异显的多输入设备交互。
本发明第一实施例:
请参阅图1-2。
如图1所示,本实施例提供的一种用于Android系统双屏异显的多输入设备交互方法,至少包括如下步骤:
S101、通过系统驱动层适配两个显示屏,并通过定制两种bustype类型进行主显示屏和副显示屏的区分。
具体的,如图2所示,对于步骤S101,驱动层适配两个触摸显示屏,适配其一为主触摸显示屏,其二为副触摸显示屏,通过定制bustype来区分主、副触摸显示屏,定制鼠标等外设为第三种bustype类型,用来定义其可能需要做额外的定义操作。
需要说明的是,申明为两个触摸显示屏只是为了方便对多输入设备的场景进行说明,实际情况中本方案并不需要两个触摸显示屏,换成其他显示屏也同样适用。
其中bustype是系统描述输入设备的成员数据,属于行业内具备相关知识体系的基础知识,其申明主要在设备的驱动程序上执行,以触摸屏gslX680为例:
A.在include/uapi/linux/input.h文件中添加相应的BUS类型:
#define BUS_MAINDISPLAY 0x3A
#define BUS_EXTERNALDISPLAY 0x3B
#define BUS_DUALSCREENMOUSE 0x3C
…
如上定义BUS_MAINDISPLAY用于申明主屏,BUS_EXTERNALDISPLAY用于申明副屏,BUS_DUALSCREENMOUSE用于申明双屏场景下的鼠标外设。
B.在gslX680的驱动程序中进行申明配置,文件为:drivers/input/touchscreen/rockchip_gslX680.c
input_device->id.bustype=BUS_MAINDISPLAY;
如上定义了gslX680触摸设备为主屏输入设备。
S102、在通过系统输入层获取输入设备信息后,在第一函数中添加所述两种定制bustype类型对应的设备类型标识,并在事件结构体中添加事件的绑定标识信息。
具体的,对于步骤S102,系统输入层EventHub获取输入设备信息,在isExternalDeviceLocked函数中添加定义的私有bustype判断主副设备,同时添加鼠标等外设的类型识别;其中,获取输入设备信息主要依赖于框架的原有支持,系统底层驱动默认会在固定的目录节点(/dev/input/)上创建对应的驱动设备节点,系统层会通过读取该特定目录下的节点,通过ioctl方式(kernel提供的操作驱动设备节点的通用方式)读取对应节点信息获取对应的bustype:
identifier.bus=inputId.bustype;
isExternalDeviceLocked函数是通过对系统的原有框架流程梳理获取到的,该方法原有的实现方式主要是通过判断bustype来决定对应设备是否为外部设备,在本实施例中主要是用来对输入设备的bustype进行判断,为其添加对应设备类型的标识,用于在系统框架层区分这几类自定义类型:
if(device->identifier.bus==BUS_MAINDISPLAY){
device->classes|=INPUT_DEVICE_TYPE_MAINDISPLAY;
}else if(device->identifier.bus==BUS_EXTERNALDISPLAY){
device->classes|=INPUT_DEVICE_TYPE_EXTERNALDISPLAY;
}else if(device->identifier.bus==BUS_DUALSCREENMOUSE{
device->classes|=INPUT_DEVICE_TYPE_DUALSCREENMOUSE;
}
而针对系统input模块的事件结构体,主要包括native和Java层的InputEvent结构体、input层的InputDeviceInfo结构体,添加displayId信息,同时修改InputTransport事件传递类,在事件传输流程上将产生事件的输入设备displayId信息打包上报。
其中,displayId信息是用来标识事件绑定的是主屏显示设备或者副屏显示设备,并且其绑定到原有系统中描述具体输入设备的信息上,其作用就是标识了上报的事件消息是归属于哪个具体的显示设备上。其获取主要是依据几个方面:
A.若上报事件的设备为INPUT_DEVICE_TYPE_MAINDISPLAY,则其值为主屏设备号;
B.若上报事件的设备为INPUT_DEVICE_TYPE_EXTERNALDISPLAY,则其值为副屏设备号;
C.若上报事件的设备为其他类型,则其值根据用户配置,默认为主屏设备号。其中用户配置是根据用户在界面上的操作(选择主屏或副屏),传递一个目标设备号数值到系统框架维护的输入设备信息上。
InputTransport事件传递类,原有系统框架并不支持显示设备ID号即displayId的传递,为了能将底层事件所属的displayId号同样上传至应用层,因此我们需要对原有框架做改动,添加支持displayId的传递,以便能够知道事件的来源,并进行区分操作。修改的关键代码为:
InputTransport.cpp中publishMotionEvent方法新增displayId的传递:
status_t InputPublisher::publishMotionEvent(…int32_t displayId,…){
…
msg.body.motion.displayId=displayId;
…
}
其中motion最终将体现到应用程序端的MotionEvent事件描述数据当中提供给应用处理。
S103、监听底层设备的新增事件信息,在判断为外设输入设备时进行弹窗提示,以使将所述外设配置为显示屏的外设输入设备,并同步更新该外设配置至系统输入层中。
具体的,对于步骤S103,在显示界面上添加外设的配置模块,监听底层设备新增事件,判断为鼠标等外设时进行弹窗提示,允许用户将其配置为主屏或者副屏的外设输入设备,并同步更新该配置到input模块中。
配置方式主要是通过提供用户选择界面,并根据用户的选择情况,调用系统服务接口传递该配置值到系统的input模块当中给对应的input设备(即外设),关键代码为:
InputReader.cpp新增如下方法提供外部程序调用,界面最终通过系统的服务调用到如下方法:
InputReader中新增方法用来遍历系统中已存在的设备,并查找id值为要配置的外设id。
void InputDevice::setDisplayConfig(size_t displayId){
mTargetDisplayId=displayId;
}
将该配置的目标displayId设置到对应的InputDevice对象数据中。
S104、在接收到副显示屏的输入设备上报事件并触发副显示屏启动新应用程序后,系统进入异显模式,同时更新当前的异显模式至系统输入层中。
具体的,对于步骤S104,系统默认初始状态为同显状态,即,两个显示屏显示内容实时保持一致。异显模式的定义为两个显示屏显示内容分别为不同的APP程序。进入异显模式的触发方式为副屏的输入设备上报事件并触发在副屏启动新应用(其效果等同于在单独设备上进行鼠标操作执行某一应用)。
在同显模式情况下,副屏绑定的输入设备上报事件,点击启动应用A。事件经由输入层的转化,携带副屏的displayId上报,由Launcher APP处理根据displayId信息将新应用B启动并显示到副屏当中,系统进入异显模式。同时,更新当前的同异显模式到系统输入层。
S105、当接收到所述主显示屏的输入设备上报事件信息时,根据所述事件信息进行判断和事件转换处理后,启动对应的应用并显示至所述主显示屏中。
具体的,对于步骤S105,进入异显模式后,主屏的输入设备上报事件,也将携带主屏的displayId信息,由Launcher APP处理,若操作为点击应用,则根据displayId信息,将其启动、显示到主屏当中。
其中,Launcher APP主要指Home界面,即用户开机后看到的界面,等同于电脑的桌面。其作用是提供本机安装的所有应用给用户查看和操作。其启动具体应用到相应的屏幕中的方式主要通过如下关键代码:
A.点击应用,事件上报时携带了具体的显示设备信息(步骤4),且该信息将保存到View类的新建成员数据mDisplayId上;
B.Launcher APP启动应用时,执行displayId的获取,该方法为新增的View类方法,用来在Launcher APP端启动应用时进行获取判断:
C.系统的服务程序通过接收Launcher APP传递来的信息,检查flag标志,判断FLAG_ACTIVITY_EXTERNAL_DISPLAY来启动到相应应用到副屏,达到异显效果:
ActivityStarter.java的startActivityMayWait方法:
if(intent.getFlags()&Intent.FLAG_ACTIVITY_EXTERNAL_DISPLAY!=0)
container=(ActivityStackSupervisor.ActivityContainer)mService.getContainerFromExtDisplay();
}
其中getContainerFromExtDisplay方法主要依赖原生系统对异显功能的支持实现,其核心代码为:
final int stackId=mStackSupervisor.getNextStackId();
final ActivityStack stack=mStackSupervisor.createStackOnDisplay(stackId,displayId,true/*onTop*/);
IActivityContainer container=stack.mActivityContainer。
S106、当接收到所述副显示屏的输入设备上报事件信息时,根据所述系统输入层保存的同异显模式状态进行判断,启动对应的应用并显示至所述副显示屏中。
具体的,对于步骤S106,在异显模式下,副屏绑定的输入设备上报事件时,将依据input模块层保存的同异显模式状态进行判断,异显模式事件不需要经过事件转化模块处理,直接上报到相同displayId的前台窗口上给APP进行处理。
在优选的实施例中,所述用于Android系统双屏异显的多输入设备交互方法,还包括:
在异显模式下,当关闭副显示屏显示的应用程序时,主动退出异显模式,系统进入同显模式,并同步同显模式状态信息至系统输入层。
具体的,在异显模式下,关闭副屏显示的应用,将主动退出异显模式,进入同显模式,并同步模式状态到input模块层。
在优选的实施例中,所述用于Android系统双屏异显的多输入设备交互方法,还包括:
通过在系统输入层中添加坐标系转化模块,以使在同显场景下将副显示屏上报的事件转化为主显示屏的坐标系。
在优选的实施例中,所述通过在系统输入层中添加坐标系转化模块,以使在同显场景下将副显示屏上报的事件转化为主显示屏的坐标系,具体为:
当获取外设输入设备上报事件信息时,判断是否该事件信息是否来自主显示屏;
若是,则直接派发对应的应用程序至主显示屏,以使启动所述应用程序并显示至主显示屏;
若否,则根据坐标系转化公式将副显示屏获取的显示坐标转化为对应的主显示屏的显示坐标。
具体的,在系统的input模块中,添加坐标系转化模块,用于在同显场景下将副屏触摸或外设设备上报的事件转化为主屏的坐标系。
坐标系的转化主要目的是为了实现在两屏显示内容一致时,副屏上报的操作位置能够根据相对位置派发给按主屏大小布局的应用程序。因为两屏显示内容一致时,应用程序只按主屏的大小和配置信息来加载图片资源、决定每个上层应用控件的显示区间。如图3所示的坐标系转化模块的工作步骤,事件上报后判断是否来自主屏,若是则直接派发应用程序,若否,则按照坐标系转化公式将副显示屏获取的显示坐标转化为对应的主显示屏的显示坐标。其转化原理为将当前坐标系乘以两个显示屏的宽度比例以及长度比例,具体公式为:dx=cx*mw/ew,dy=cy*mh/eh;其中,dx为要要转化成对应的主屏的x坐标位置;cx为当前副屏获取到的x坐标位置;mw为主屏的宽;ew为副屏的宽;dy为要要转化成对应的主屏的y坐标位置;cy为当前副屏获取到的y坐标位置;mh为主屏的长;eh为副屏的长。
在优选的实施例中,所述用于Android系统双屏异显的多输入设备交互方法,还包括:
定制外设输入设备为第三种bustype类型,用于定义其额外的定义操作。
在优选的实施例中,所述在通过系统输入层获取输入设备信息后,在第一函数中添加所述两种定制bustype类型对应的设备类型标识,具体为:
通过系统底层驱动在固定的目录节点上创建对应的驱动设备节点,系统层通过读取该特定目录下的节点,并通过ioctl方式读取对应节点信息获取对应的bustype类型;
通过对系统的原有框架流程梳理获取得到isExternalDeviceLocked函数,根据所述isExternalDeviceLocked函数对输入设备的bustype类型进行判断,并添加对输入设备对应的设备类型标识,以使在系统框架层中区分自定义的bustpye类型。
在优选的实施例中,所述事件结构体中添加事件的绑定标识信息,具体为:
在native和Java层的InputEvent结构体以及input层的InputDeviceInfo结构体中添加displayId信息,同时修改InputTransport事件传递类信息,并将产生事件的输入设备displayId信息打包上报。
在优选的实施例中,所述当接收到所述主显示屏的输入设备上报事件信息时,根据所述事件信息进行判断和事件转换处理后,启动对应的应用并显示至所述主显示屏中,还包括:
在接收到所述主显示屏的输入设备上报事件信息时,提取所述事件信息中输入设备的displayId信息,且将该displayId信息保存至View类的新建成员数据mDisplayId上;
通过Launcher APP启动应用,在获取displayId信息后发送至系统的服务程序;
根据接收所述Launcher APP发送的displayId信息,检查flag标志,判断是否需要启动相关应用至副显示屏。
本实施例提供的一种用于Android系统双屏异显的多输入设备交互方法,包括:通过系统驱动层适配两个显示屏,并通过定制两种bustype类型进行主显示屏和副显示屏的区分;在通过系统输入层获取输入设备信息后,在第一函数中添加所述两种定制bustype类型对应的设备类型标识,并在事件结构体中添加事件的绑定标识信息;监听底层设备的新增事件信息,在判断为外设输入设备时进行弹窗提示,以使将所述外设配置为显示屏的外设输入设备,并同步更新该外设配置至系统输入层中;在接收到副显示屏的输入设备上报事件并触发副显示屏启动新应用程序后,系统进入异显模式,同时更新当前的异显模式至系统输入层中;当接收到所述主显示屏的输入设备上报事件信息时,根据所述事件信息进行判断和事件转换处理后,启动对应的应用并显示至所述主显示屏中;当接收到所述副显示屏的输入设备上报事件信息时,根据所述系统输入层保存的同异显模式状态进行判断,启动对应的应用并显示至所述副显示屏中。本发明能够支持两个显示触摸屏的嵌入式设备通过操作副屏启动应用进入和退出异显模式,支持在异显模式下,两个显示屏的应用均能正常响应对应显示屏绑定的输入设备的事件信息,同时允许用户对鼠标、键盘等外部设备进行配置、绑定主副屏以及其上显示的应用,既能够满足副屏受主屏应用控制的模式,也同时支持在副屏显示上进行操作,更快速的进入或退出双屏异显模式,提高副屏的操作的自主性。
本发明的一个实施例提供了一种用于Android系统双屏异显的多输入设备交互装置,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述的用于Android系统双屏异显的多输入设备交互方法。
本发明的另一个实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述的用于Android系统双屏异显的多输入设备交互方法
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述模块的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和变形,这些改进和变形也视为本发明的保护范围。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
Claims (10)
1.一种用于Android系统双屏异显的多输入设备交互方法,其特征在于,至少包括如下步骤:
通过系统驱动层适配两个显示屏,并通过定制两种bustype类型进行主显示屏和副显示屏的区分;
在通过系统输入层获取输入设备信息后,在第一函数中添加所述两种定制bustype类型对应的设备类型标识,并在事件结构体中添加事件的绑定标识信息;
监听底层设备的新增事件信息,在判断为外设输入设备时进行弹窗提示,以使将所述外设配置为显示屏的外设输入设备,并同步更新该外设配置至系统输入层中;
在接收到副显示屏的输入设备上报事件并触发副显示屏启动新应用程序后,系统进入异显模式,同时更新当前的异显模式至系统输入层中;
当接收到所述主显示屏的输入设备上报事件信息时,根据所述事件信息进行判断和事件转换处理后,启动对应的应用并显示至所述主显示屏中;
当接收到所述副显示屏的输入设备上报事件信息时,根据所述系统输入层保存的同异显模式状态进行判断,启动对应的应用并显示至所述副显示屏中。
2.根据权利要求1所述的用于Android系统双屏异显的多输入设备交互方法,其特征在于,还包括:
在异显模式下,当关闭副显示屏显示的应用程序时,主动退出异显模式,系统进入同显模式,并同步同显模式状态信息至系统输入层。
3.根据权利要求1所述的用于Android系统双屏异显的多输入设备交互方法,其特征在于,还包括:
通过在系统输入层中添加坐标系转化模块,以使在同显场景下将副显示屏上报的事件转化为主显示屏的坐标系。
4.根据权利要求1所述的用于Android系统双屏异显的多输入设备交互方法,其特征在于,还包括:
定制外设输入设备为第三种bustype类型,用于定义其额外的定义操作。
5.根据权利要求3所述的用于Android系统双屏异显的多输入设备交互方法,其特征在于,所述通过在系统输入层中添加坐标系转化模块,以使在同显场景下将副显示屏上报的事件转化为主显示屏的坐标系,具体为:
当获取外设输入设备上报事件信息时,判断是否该事件信息是否来自主显示屏;
若是,则直接派发对应的应用程序至主显示屏,以使启动所述应用程序并显示至主显示屏;
若否,则根据坐标系转化公式将副显示屏获取的显示坐标转化为对应的主显示屏的显示坐标。
6.根据权利要求1所述的用于Android系统双屏异显的多输入设备交互方法,其特征在于,所述在通过系统输入层获取输入设备信息后,在第一函数中添加所述两种定制bustype类型对应的设备类型标识,具体为:
通过系统底层驱动在固定的目录节点上创建对应的驱动设备节点,系统层通过读取该特定目录下的节点,并通过ioctl方式读取对应节点信息获取对应的bustype类型;
通过对系统的原有框架流程梳理获取得到isExternalDeviceLocked函数,根据所述isExternalDeviceLocked函数对输入设备的bustype类型进行判断,并添加对输入设备对应的设备类型标识,以使在系统框架层中区分自定义的bustpye类型。
7.根据权利要求1所述的用于Android系统双屏异显的多输入设备交互方法,其特征在于,所述事件结构体中添加事件的绑定标识信息,具体为:
在native和Java层的InputEvent结构体以及input层的InputDeviceInfo结构体中添加displayId信息,同时修改InputTransport事件传递类信息,并将产生事件的输入设备displayId信息打包上报。
8.根据权利要求1所述的用于Android系统双屏异显的多输入设备交互方法,其特征在于,所述当接收到所述主显示屏的输入设备上报事件信息时,根据所述事件信息进行判断和事件转换处理后,启动对应的应用并显示至所述主显示屏中,还包括:
在接收到所述主显示屏的输入设备上报事件信息时,提取所述事件信息中输入设备的displayId信息,且将该displayId信息保存至View类的新建成员数据mDisplayId上;
通过Launcher APP启动应用,在获取displayId信息后发送至系统的服务程序;
根据接收所述Launcher APP发送的displayId信息,检查flag标志,判断是否需要启动相关应用至副显示屏。
9.一种用于Android系统双屏异显的多输入设备交互装置,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至8任一项所述的用于Android系统双屏异显的多输入设备交互方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1至8任一项所述的用于Android系统双屏异显的多输入设备交互方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911103654.6A CN110888615B (zh) | 2019-11-12 | 2019-11-12 | 用于Android系统双屏异显的多输入设备交互方法、装置及介质 |
PCT/CN2020/125612 WO2021093619A1 (zh) | 2019-11-12 | 2020-10-31 | 用于Android系统双屏异显的多输入设备交互方法、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911103654.6A CN110888615B (zh) | 2019-11-12 | 2019-11-12 | 用于Android系统双屏异显的多输入设备交互方法、装置及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110888615A true CN110888615A (zh) | 2020-03-17 |
CN110888615B CN110888615B (zh) | 2021-12-21 |
Family
ID=69747316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911103654.6A Active CN110888615B (zh) | 2019-11-12 | 2019-11-12 | 用于Android系统双屏异显的多输入设备交互方法、装置及介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110888615B (zh) |
WO (1) | WO2021093619A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111596856A (zh) * | 2020-05-06 | 2020-08-28 | 深圳市世纪创新显示电子有限公司 | 一种基于副屏触摸的一种笔迹书写方法、系统及存储介质 |
CN112004049A (zh) * | 2020-08-18 | 2020-11-27 | 北京字节跳动网络技术有限公司 | 双屏异显方法、装置和电子设备 |
CN112099751A (zh) * | 2020-09-25 | 2020-12-18 | 深圳市创维群欣安防科技股份有限公司 | 双屏异步显示处理方法、装置、双屏显示智能终端 |
WO2021093619A1 (zh) * | 2019-11-12 | 2021-05-20 | 厦门亿联网络技术股份有限公司 | 用于Android系统双屏异显的多输入设备交互方法、装置及介质 |
CN112965618A (zh) * | 2021-01-15 | 2021-06-15 | 聚融医疗科技(杭州)有限公司 | 一种多屏超声诊断系统多鼠标设备操作方法及系统 |
CN113760122A (zh) * | 2021-07-21 | 2021-12-07 | 深圳市智微智能科技股份有限公司 | 双屏设备副屏触摸控制方法、系统、终端及存储介质 |
CN114095909A (zh) * | 2021-11-15 | 2022-02-25 | 珠海读书郎软件科技有限公司 | 一种双屏电话手表投屏的方法、存储介质及设备 |
CN115016702A (zh) * | 2021-09-10 | 2022-09-06 | 荣耀终端有限公司 | 扩展屏幕模式下选择应用程序显示屏幕的控制方法及系统 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113589730B (zh) * | 2021-07-30 | 2022-08-26 | 展讯半导体(成都)有限公司 | 基于xen的多系统的异显控制系统、方法及相关产品 |
CN114442981B (zh) * | 2022-01-26 | 2024-02-13 | 杭州联吉技术有限公司 | 一种显示管理方法、显示管理装置及管理设备 |
CN114217763B (zh) * | 2022-02-22 | 2022-05-20 | 麒麟软件有限公司 | 在Linux上兼容Android应用的窗口双屏协同显示方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105739758A (zh) * | 2016-01-21 | 2016-07-06 | 广州市莱麦互联网科技有限公司 | 安卓设备的显示控制方法和装置 |
CN106250083A (zh) * | 2016-07-31 | 2016-12-21 | 上海普览智能科技有限公司 | 双屏双控智能终端及实现方法 |
CN107368272A (zh) * | 2017-06-30 | 2017-11-21 | 百富计算机技术(深圳)有限公司 | 一种双屏异触异显的方法、装置及计算机可读存储介质 |
CN107463325A (zh) * | 2017-07-12 | 2017-12-12 | 福州瑞芯微电子股份有限公司 | 一种支持多屏输入的显示方法和装置 |
CN108205430A (zh) * | 2017-11-01 | 2018-06-26 | 中兴通讯股份有限公司 | 双屏移动终端、相应操控方法及存储介质 |
CN108228061A (zh) * | 2017-12-29 | 2018-06-29 | 北京珠穆朗玛移动通信有限公司 | 基于双屏的信息显示方法、移动终端及存储介质 |
WO2019199086A1 (ko) * | 2018-04-11 | 2019-10-17 | 삼성전자 주식회사 | 전자 장치 및 전자 장치의 제어 방법 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10291873B2 (en) * | 2015-11-20 | 2019-05-14 | Hattar Tanin, LLC | Dual-screen electronic devices |
CN110109638A (zh) * | 2019-05-09 | 2019-08-09 | 深圳超多维科技有限公司 | 用于安卓终端的显示方法、装置和安卓终端 |
CN110888615B (zh) * | 2019-11-12 | 2021-12-21 | 厦门亿联网络技术股份有限公司 | 用于Android系统双屏异显的多输入设备交互方法、装置及介质 |
-
2019
- 2019-11-12 CN CN201911103654.6A patent/CN110888615B/zh active Active
-
2020
- 2020-10-31 WO PCT/CN2020/125612 patent/WO2021093619A1/zh active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105739758A (zh) * | 2016-01-21 | 2016-07-06 | 广州市莱麦互联网科技有限公司 | 安卓设备的显示控制方法和装置 |
CN106250083A (zh) * | 2016-07-31 | 2016-12-21 | 上海普览智能科技有限公司 | 双屏双控智能终端及实现方法 |
CN107368272A (zh) * | 2017-06-30 | 2017-11-21 | 百富计算机技术(深圳)有限公司 | 一种双屏异触异显的方法、装置及计算机可读存储介质 |
CN107463325A (zh) * | 2017-07-12 | 2017-12-12 | 福州瑞芯微电子股份有限公司 | 一种支持多屏输入的显示方法和装置 |
CN108205430A (zh) * | 2017-11-01 | 2018-06-26 | 中兴通讯股份有限公司 | 双屏移动终端、相应操控方法及存储介质 |
CN108228061A (zh) * | 2017-12-29 | 2018-06-29 | 北京珠穆朗玛移动通信有限公司 | 基于双屏的信息显示方法、移动终端及存储介质 |
WO2019199086A1 (ko) * | 2018-04-11 | 2019-10-17 | 삼성전자 주식회사 | 전자 장치 및 전자 장치의 제어 방법 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021093619A1 (zh) * | 2019-11-12 | 2021-05-20 | 厦门亿联网络技术股份有限公司 | 用于Android系统双屏异显的多输入设备交互方法、装置及介质 |
CN111596856A (zh) * | 2020-05-06 | 2020-08-28 | 深圳市世纪创新显示电子有限公司 | 一种基于副屏触摸的一种笔迹书写方法、系统及存储介质 |
CN111596856B (zh) * | 2020-05-06 | 2023-08-29 | 深圳市世纪创新显示电子有限公司 | 一种基于副屏触摸的一种笔迹书写方法、系统及存储介质 |
CN112004049A (zh) * | 2020-08-18 | 2020-11-27 | 北京字节跳动网络技术有限公司 | 双屏异显方法、装置和电子设备 |
CN112099751A (zh) * | 2020-09-25 | 2020-12-18 | 深圳市创维群欣安防科技股份有限公司 | 双屏异步显示处理方法、装置、双屏显示智能终端 |
CN112965618A (zh) * | 2021-01-15 | 2021-06-15 | 聚融医疗科技(杭州)有限公司 | 一种多屏超声诊断系统多鼠标设备操作方法及系统 |
CN113760122A (zh) * | 2021-07-21 | 2021-12-07 | 深圳市智微智能科技股份有限公司 | 双屏设备副屏触摸控制方法、系统、终端及存储介质 |
CN115016702A (zh) * | 2021-09-10 | 2022-09-06 | 荣耀终端有限公司 | 扩展屏幕模式下选择应用程序显示屏幕的控制方法及系统 |
CN115016702B (zh) * | 2021-09-10 | 2023-10-27 | 荣耀终端有限公司 | 扩展屏幕模式下选择应用程序显示屏幕的控制方法及系统 |
CN114095909A (zh) * | 2021-11-15 | 2022-02-25 | 珠海读书郎软件科技有限公司 | 一种双屏电话手表投屏的方法、存储介质及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110888615B (zh) | 2021-12-21 |
WO2021093619A1 (zh) | 2021-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110888615B (zh) | 用于Android系统双屏异显的多输入设备交互方法、装置及介质 | |
EP3451641B1 (en) | Mobile communication device with separate display areas and rearrangemet of icons in the edges areas. | |
US9658864B2 (en) | Method and device for creation of integrated user interface | |
CN107291456B (zh) | 一种多屏显示的控制方法及系统 | |
CN109308241B (zh) | 监听应用程序启动流程方法、装置、终端设备和存储介质 | |
CN104618793A (zh) | 一种信息处理方法及电子设备 | |
CN108008992B (zh) | 一种输入操作处理方法、处理装置及计算机可读存储介质 | |
CN102053871A (zh) | 一种应用程序图像的显示方法和装置 | |
CN112332997B (zh) | 终端设备的配网方法、终端设备及计算机可读存储介质 | |
CN113992958B (zh) | 一种多窗口同屏互动方法、终端及存储介质 | |
CN102662618A (zh) | 远程协助过程中的图像处理方法及装置 | |
CN112612436A (zh) | 一种投屏切换方法、装置、设备及存储介质 | |
CN112764563A (zh) | 多屏控制方法、装置、系统、电子设备、及存储介质 | |
CN115390713A (zh) | 屏幕控制方法、屏幕控制装置、电子设备、程序及介质 | |
CN111061448A (zh) | 日志信息的显示方法、装置、电子设备及存储介质 | |
CN112328197B (zh) | 多屏显示的方法、装置以及存储介质 | |
CN107102792B (zh) | 图像处理装置、其控制方法以及计算机可读存储介质 | |
CN104038511A (zh) | 一种资源管理方法及装置 | |
US20240100415A1 (en) | Game control method and apparatus, and storage medium | |
CN110830648A (zh) | 一种云手机边缘滑动操作的控制方法及手机终端 | |
CN112558968B (zh) | 一种资源树视图的生成方法、装置、设备及存储介质 | |
CN112199124B (zh) | 一种项目开启方法及装置、显示设备 | |
CN114115673A (zh) | 车载屏幕的控制方法 | |
CN107491205B (zh) | 一种一体机 | |
CN111552537A (zh) | 主题切换方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |