外设控制方法、电子设备及系统与流程

文档序号:31472489发布日期:2022-09-09 23:36阅读:93来源:国知局
外设控制方法、电子设备及系统与流程

1.本技术实施例涉及终端技术领域,尤其涉及一种外设控制方法、电子设备及系统。


背景技术:

2.随着终端技术的发展,电子设备形态越来越丰富,如包括手机、平板、笔记本电脑等多种形态。用户在日常生活或办公过程中,可能会使用多种形态的电子设备。比如,使用一台笔记本电脑编辑文档的过程中,使用平板查找资料,并需要将手机中的照片插入到正在编辑的文档中。用户操作多台电子设备的外设分别操作多台电子设备的过程十分繁琐,并且多台电子设备的外设(如键盘、鼠标)均摆放在桌面上,占用桌面空间,容易杂乱。
3.对此,开发者提出通过一套外设控制多台电子设备的方法。比如,配置有流动(flow)功能的鼠标,随着光标的移动,可控制多台电子设备,并支持多台电子设备之间数据的传输。但是,flow功能依赖于相应的软件以及外设硬件。又比如,通过安装协同作用软件,多台电子设备之间可共享一套键盘和鼠标。但是该方法同样依赖于专用软件,且纯软件应用层方案,使用过程中时延较高,易产生卡顿异常。再比如,两个电子设备之间通过对拷线连接,也可实现共享一套键盘和鼠标。但是,该方法仅支持两个电子设备之间共享键鼠,且依赖于专用硬件。
4.可以看出,目前外设控制方法使用局限性较大,影响用户使用体验。


技术实现要素:

5.为了解决上述的技术问题,本技术实施例提供了一种外设控制方法、电子设备及系统。本技术实施例提供的技术方案,电子设备能够根据获取到的外设信息创建其他电子设备对应的外设代理,并通过外设代理共享其他电子设备的外设。从而解决外设控制方法使用局限性较大,影响用户使用体验的问题。
6.并且通过外设代理,实现不依赖于专用软件或硬件的任意电子设备共享其他电子设备的外设,提高外设控制效率。
7.为了实现上述的技术目的,本技术实施例提供了如下技术方案:
8.第一方面,提供一种外设控制方法,该方法包括:第一电子设备获取一个或多个第二电子设备的外设信息。第一电子设备根据外设信息创建与一个或多个第二电子设备的外设对应的外设代理。第一电子设备通过第一分布式输入子系统,接收一个或多个第二电子设备中的目标第二电子设备的第二分布式输入子系统发送的输入事件,该输入事件为目标第二电子设备通过外设采集到用户输入操作后确定的事件。第一电子设备经由目标第二电子设备对应的目标外设代理,处理输入事件。第一电子设备执行输入事件对应的目标操作。
9.在一些实施例中,第一分布式输入子系统位于第一电子设备的应用程序框架层,第二分布式输入子系统位于目标第二电子设备的应用程序框架层。
10.如此,通信系统中各个电子设备通过同步外设信息,在内核层创建相应的外设代理,实现电子设备外设的跨设备调用。从而解决外设控制方法使用局限性较大,影响用户使
用体验的问题。
11.根据第一方面,或者以上第一方面的任意一种实现方式,第一电子设备根据外设信息创建与一个或多个第二电子设备的外设对应的外设代理,包括:第一电子设备根据外设信息,在内核层创建与一个或多个第二电子设备的外设对应的外设代理。
12.根据第一方面,第一电子设备经由目标第二电子设备对应的目标外设代理,处理输入事件,包括:第一电子设备中的目标外设代理接收第一分布式输入子系统转发的输入事件。第一电子设备中的目标外设代理将输入事件发送到第一输入子系统。其中,第一输入子系统为与第一分布式输入子系统位于第一电子设备的操作系统的同一层的子系统,或者,第一输入子系统与第一分布式输入子系统为同一个子系统。第一电子设备中的第一输入子系统识别输入焦点所在的第一应用后,向第一应用发送输入事件。或者,第一电子设备中的第一输入子系统根据预设规则确定输入事件对应的第二应用后,启动第二应用,并向第二应用发送输入事件。
13.如此,第一电子设备通过最大程度上的复用现有的输入事件软件处理过程的逻辑框架,即将输入事件由内核层的外设代理上传到应用程序框架层的输入子系统,再由输入子系统完成输入事件的识别和分发,应用程序层中的应用执行相应的操作。实现在满足用户对于跨设备调用外设的需求的同时,降低系统开发难度。
14.根据第一方面,或者以上第一方面的任意一种实现方式,第一电子设备保存有一个或多个第二电子设备的第一组合键配置白名单,第一组合键配置白名单用于指示接收到的组合键输入事件是否在一个或多个第二电子设备中生效。
15.根据第一方面,或者以上第一方面的任意一种实现方式,第一电子设备经由目标第二电子设备对应的目标外设代理,处理输入事件;第一电子设备执行输入事件对应的目标操作,包括:第一电子设备中的目标外设代理将输入事件发送到第一输入子系统。第一电子设备通过第一输入子系统确定输入事件为组合键输入事件。第一电子设备通过第一输入子系统确定组合键输入事件中的组合键输入信息是否在第一组合键配置白名单中。如果组合键输入信息不在第一组合键配置白名单中,第一电子设备执行目标操作。
16.根据第一方面,或者以上第一方面的任意一种实现方式,方法还包括:第一电子设备向一个或多个第二电子设备发送第一电子设备的第二组合键配置白名单,第二组合键配置白名单用于指示组合键输入事件是否在第一电子设备中生效。
17.如此,电子设备之间通过传输各自的组合键白名单,使得组合键更加适配于跨设备外设控制场景,满足用户的使用需求,降低用户操作难度,提升用户使用体验。
18.根据第一方面,或者以上第一方面的任意一种实现方式,第一电子设备获取一个或多个第二电子设备的外设信息,包括:第一电子设备从分布式数据库中获取一个或多个第二电子设备的外设信息。或者,第一电子设备接收一个或多个第二电子设备发送的广播消息,广播消息中携带有外设信息。或者,第一电子设备从云服务器中下载一个或多个第二电子设备的外设信息。或者,第一电子设备接收通信系统的中心节点发送的一个或多个第二电子设备的外设信息,通信系统包括第一电子设备和一个或多个第二电子设备。
19.如此,通过多种方式,灵活的实现电子设备外设信息的同步。从而第一电子设备能够根据最新的外设信息,创建外设代理,或使用外设代理,避免跨设备外设调用失败,提升用户使用体验。
20.根据第一方面,或者以上第一方面的任意一种实现方式,在第一电子设备根据外设信息创建与一个或多个第二电子设备的外设对应的外设代理之后,方法还包括:第一电子设备初始化事件注入线程和事件传输线程,事件注入线程用于将接收到的输入事件注入到对应的外设代理中,事件传输线程用于接收输入事件。
21.如此,第一电子设备和第二电子设备完成相应线程的初始化,后续第一电子设备可根据用户指示,跨设备调用第二电子设备的外设。并且,第二电子设备也可根据外设接收到的输入事件,将相应的输入事件发送到第一电子设备。从而实现通过第二电子设备的外设控制第一电子设备。
22.根据第一方面,或者以上第一方面的任意一种实现方式,方法还包括:第一电子设备断开与目标第二电子设备之间的通信连接。第一电子设备删除目标外设代理。
23.如此,第一电子设备根据设备连接情况,实时更新对应的外设代理。从而避免跨设备外设调用失败,提升用户使用体验。
24.根据第一方面,或者以上第一方面的任意一种实现方式,外设包括键盘、鼠标、触摸板中的一种或多种。
25.第二方面,提供一种外设控制方法,该方法包括:第二电子设备获取第一电子设备的外设信息。第二电子设备根据外设信息,创建第一电子设备对应的外设代理。第二电子设备响应于用户对外设的操作,确定向第一电子设备转发的输入事件,输入事件用于指示第一电子设备执行目标操作。第二电子设备通过第二分布式输入子系统向第一电子设备的第一分布式输入子系统发送输入事件。
26.根据第二方面,第二电子设备保存有第一组合键配置白名单,第一组合键配置白名单用于指示组合键输入事件是否在第二电子设备中生效。
27.根据第二方面,或者以上第二方面的任意一种实现方式,第二电子设备通过第二分布式输入子系统向第一电子设备的第一分布式输入子系统发送输入事件,包括:第二电子设备中的第二输入子系统确定输入事件为组合键输入事件。第二电子设备中的第二输入子系统确定组合键输入事件中的组合键输入信息不在第一组合键配置白名单中,第二电子设备通过第二分布式输入子系统向第一电子设备的第一分布式输入子系统发送输入事件;其中,第二输入子系统为与第二分布式输入子系统位于第二电子设备的操作系统的同一层的子系统,或者,第二输入子系统与第二分布式输入子系统为同一个子系统。
28.根据第二方面,或者以上第二方面的任意一种实现方式,方法还包括:第二电子设备向第一电子设备发送第一组合键配置白名单。
29.根据第二方面,或者以上第二方面的任意一种实现方式,第二电子设备获取第一电子设备的外设信息,包括:第二电子设备从分布式数据库中获取第一电子设备的外设信息。或者,第二电子设备接收第一电子设备发送的广播消息,广播消息中携带有外设信息。或者,第二电子设备从云服务器中下载第一电子设备的外设信息。或者,第二电子设备接收通信系统的中心节点发送的第一电子设备的外设信息。
30.根据第二方面,或者以上第二方面的任意一种实现方式,在第二电子设备根据外设信息,创建第一电子设备对应的外设代理之后,方法还包括:第二电子设备初始化事件采集线程和事件传输线程,事件采集线程用于通过外设采集输入事件,事件传输线程用于发送输入事件。
31.根据第二方面,或者以上第二方面的任意一种实现方式,方法还包括:第二电子设备断开与第一电子设备之间的通信连接。第二电子设备删除第一电子设备对应的外设代理。
32.根据第二方面,或者以上第二方面的任意一种实现方式,第一分布式输入子系统位于第一电子设备的应用程序框架层,第二分布式输入子系统位于目标第二电子设备的应用程序框架层。
33.根据第二方面,或者以上第二方面的任意一种实现方式,外设包括键盘、鼠标、触摸板中的一种或多种。
34.第二方面以及第二方面中任意一种实现方式所对应的技术效果,可参见上述第一方面及第一方面中任意一种实现方式所对应的技术效果,此处不再赘述。
35.第三方面,提供一种电子设备。该电子设备为第一电子设备,包括:处理器和存储器,存储器与处理器耦合,存储器用于存储计算机可读指令,当处理器从存储器中读取计算机可读指令,使得第一电子设备执行:第一电子设备获取一个或多个第二电子设备的外设信息。第一电子设备根据外设信息创建与一个或多个第二电子设备的外设对应的外设代理。之后,第一电子设备通过第一分布式输入子系统,接收一个或多个第二电子设备中的目标第二电子设备的第二分布式输入子系统发送的输入事件,该输入事件为目标第二电子设备通过外设采集到用户输入操作后确定的事件。第一电子设备经由目标第二电子设备对应的目标外设代理,处理输入事件。第一电子设备执行输入事件对应的目标操作。
36.根据第三方面,第一电子设备经由目标第二电子设备对应的目标外设代理,处理输入事件,包括:第一电子设备中的目标外设代理接收第一分布式输入子系统转发的输入事件。第一电子设备中的目标外设代理将输入事件发送到第一输入子系统;其中,第一输入子系统为与第一分布式输入子系统位于第一电子设备的操作系统的同一层的子系统,或者,第一输入子系统与第一分布式输入子系统为同一个子系统。第一电子设备中的第一输入子系统识别输入焦点所在的第一应用后,向第一应用发送输入事件。或者,第一电子设备中的第一输入子系统根据预设规则确定输入事件对应的第二应用后,启动第二应用,并向第二应用发送输入事件。
37.根据第三方面,或者以上第三方面的任意一种实现方式,第一电子设备保存有一个或多个第二电子设备的第一组合键配置白名单,第一组合键配置白名单用于指示接收到的组合键输入事件是否在一个或多个第二电子设备中生效。
38.根据第三方面,或者以上第三方面的任意一种实现方式,第一电子设备经由目标第二电子设备对应的目标外设代理,处理输入事件;第一电子设备执行输入事件对应的目标操作,包括:第一电子设备中的目标外设代理将输入事件发送到第一输入子系统。第一电子设备通过第一输入子系统确定输入事件为组合键输入事件。第一电子设备通过第一输入子系统确定组合键输入事件中的组合键输入信息是否在第一组合键配置白名单中。如果组合键输入信息不在第一组合键配置白名单中,第一电子设备执行目标操作。
39.根据第三方面,或者以上第三方面的任意一种实现方式,当处理器从存储器中读取计算机可读指令,还使得电子设备执行如下操作:向一个或多个第二电子设备发送第一电子设备的第二组合键配置白名单,第二组合键配置白名单用于指示组合键输入事件是否在第一电子设备中生效。
40.根据第三方面,或者以上第三方面的任意一种实现方式,第一电子设备获取一个或多个第二电子设备的外设信息,包括:第一电子设备从分布式数据库中获取一个或多个第二电子设备的外设信息。或者,第一电子设备接收一个或多个第二电子设备发送的广播消息,广播消息中携带有外设信息。或者,第一电子设备从云服务器中下载一个或多个第二电子设备的外设信息。或者,第一电子设备接收通信系统的中心节点发送的一个或多个第二电子设备的外设信息,通信系统包括第一电子设备和一个或多个第二电子设备。
41.根据第三方面,或者以上第三方面的任意一种实现方式,当处理器从存储器中读取计算机可读指令,还使得电子设备执行如下操作:初始化事件注入线程和事件传输线程,事件注入线程用于将接收到的输入事件注入到对应的外设代理中,事件传输线程用于接收输入事件。
42.根据第三方面,或者以上第三方面的任意一种实现方式,当处理器从存储器中读取计算机可读指令,还使得电子设备执行如下操作:第一电子设备断开与目标第二电子设备之间的通信连接。第一电子设备删除目标外设代理。
43.根据第三方面,或者以上第三方面的任意一种实现方式,第一电子设备根据外设信息创建与一个或多个第二电子设备的外设对应的外设代理,包括:第一电子设备根据外设信息,在内核层创建与一个或多个第二电子设备的外设对应的外设代理。
44.根据第三方面,或者以上第三方面的任意一种实现方式,第一分布式输入子系统位于第一电子设备的应用程序框架层,第二分布式输入子系统位于目标第二电子设备的应用程序框架层。
45.根据第三方面,或者以上第三方面的任意一种实现方式,外设包括键盘、鼠标、触摸板中的一种或多种。
46.第三方面以及第三方面中任意一种实现方式所对应的技术效果,可参见上述第一方面及第一方面中任意一种实现方式所对应的技术效果,此处不再赘述。
47.第四方面,提供一种电子设备。该电子设备为第二电子设备,包括:处理器、存储器以及外设,存储器和外设与处理器耦合,存储器用于存储计算机可读指令,当处理器从存储器中读取计算机可读指令,使得第二电子设备执行:第二电子设备获取第一电子设备的外设信息。第二电子设备根据外设信息,创建第一电子设备对应的外设代理。第二电子设备响应于用户对外设的操作,确定向第一电子设备转发的输入事件,输入事件用于指示第一电子设备执行目标操作。第二电子设备通过第二分布式输入子系统向第一电子设备的第一分布式输入子系统发送输入事件。
48.根据第四方面,第二电子设备保存有第一组合键配置白名单,第一组合键配置白名单用于指示组合键输入事件是否在第二电子设备中生效。
49.根据第四方面,或者以上第四方面的任意一种实现方式,第二电子设备通过第二分布式输入子系统向第一电子设备的第一分布式输入子系统发送输入事件,包括:第二电子设备中的第二输入子系统确定输入事件为组合键输入事件。第二电子设备中的第二输入子系统确定组合键输入事件中的组合键输入信息不在第一组合键配置白名单中,第二电子设备通过第二分布式输入子系统向第一电子设备的第一分布式输入子系统发送输入事件;其中,第二输入子系统为与第二分布式输入子系统位于第二电子设备的操作系统的同一层的子系统,或者,第二输入子系统与第二分布式输入子系统为同一个子系统。
50.根据第四方面,或者以上第四方面的任意一种实现方式,当处理器从存储器中读取计算机可读指令,还使得电子设备执行如下操作:第二电子设备向第一电子设备发送第一组合键配置白名单。
51.根据第四方面,或者以上第四方面的任意一种实现方式,第二电子设备获取第一电子设备的外设信息,包括:第二电子设备从分布式数据库中获取第一电子设备的外设信息。或者,第二电子设备接收第一电子设备发送的广播消息,广播消息中携带有外设信息。或者,第二电子设备从云服务器中下载第一电子设备的外设信息。或者,第二电子设备接收通信系统的中心节点发送的第一电子设备的外设信息。
52.根据第四方面,或者以上第四方面的任意一种实现方式,当处理器从存储器中读取计算机可读指令,还使得电子设备执行如下操作:第二电子设备初始化事件采集线程和事件传输线程,事件采集线程用于通过外设采集输入事件,事件传输线程用于发送输入事件。
53.根据第四方面,或者以上第四方面的任意一种实现方式,当处理器从存储器中读取计算机可读指令,还使得电子设备执行如下操作:第二电子设备断开与第一电子设备之间的通信连接。第二电子设备删除第一电子设备对应的外设代理。
54.根据第四方面,或者以上第四方面的任意一种实现方式,第一分布式输入子系统位于第一电子设备的应用程序框架层,第二分布式输入子系统位于目标第二电子设备的应用程序框架层。
55.根据第四方面,或者以上第四方面的任意一种实现方式,外设包括键盘、鼠标、触摸板中的一种或多种。
56.第四方面以及第四方面中任意一种实现方式所对应的技术效果,可参见上述第二方面及第二方面中任意一种实现方式所对应的技术效果,此处不再赘述。
57.第五方面,提供一种外设控制系统,该外设控制系统包括如上述第一方面及第一方面中任意一种实现方式所述的第一电子设备,以及如上述第二方面及第二方面中任意一种实现方式所述的第二电子设备。
58.第五方面以及第五方面中任意一种实现方式所对应的技术效果,可参见上述第一方面及第一方面中任意一种实现方式所对应的技术效果,此处不再赘述。
59.第六方面,本技术实施例提供一种电子设备,该电子设备具有实现如上述第一方面及其中任一种可能的实现方式中所述的外设控制方法的功能;或者,该电子设备具有实现如上述第二方面及其中任一种可能的实现方式中所述的外设控制方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应地软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
60.第六方面以及第六方面中任意一种实现方式所对应的技术效果,可参见上述第一方面及第一方面中任意一种实现方式所对应的技术效果,此处不再赘述。
61.第七方面,提供一种计算机可读存储介质。计算机可读存储介质存储有计算机程序(也可称为指令或代码),当该计算机程序被电子设备执行时,使得电子设备执行第一方面或第一方面中任意一种实施方式的方法;或者,使得电子设备执行第二方面或第二方面中任意一种实施方式的方法。
62.第七方面以及第七方面中任意一种实现方式所对应的技术效果,可参见上述第一
方面及第一方面中任意一种实现方式所对应的技术效果,此处不再赘述。
63.第八方面,本技术实施例提供一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行第一方面或第一方面中任意一种实施方式的方法;或者,使得电子设备执行第二方面或第二方面中任意一种实施方式的方法。
64.第八方面以及第八方面中任意一种实现方式所对应的技术效果,可参见上述第一方面及第一方面中任意一种实现方式所对应的技术效果,此处不再赘述。
65.第九方面,本技术实施例提供一种电路系统,电路系统包括处理电路,处理电路被配置为执行第一方面或第一方面中任意一种实施方式的方法;或者,处理电路被配置为执行第二方面或第二方面中任意一种实施方式的方法。
66.第九方面以及第九方面中任意一种实现方式所对应的技术效果,可参见上述第一方面及第一方面中任意一种实现方式所对应的技术效果,此处不再赘述。
67.第十方面,本技术实施例提供一种芯片系统,包括至少一个处理器和至少一个接口电路,至少一个接口电路用于执行收发功能,并将指令发送给至少一个处理器,当至少一个处理器执行指令时,至少一个处理器执行第一方面或第一方面中任意一种实施方式的方法;或者,至少一个处理器执行第二方面或第二方面中任意一种实施方式的方法。
68.第十方面以及第十方面中任意一种实现方式所对应的技术效果,可参见上述第一方面及第一方面中任意一种实现方式所对应的技术效果,此处不再赘述。
附图说明
69.图1为本技术实施例提供的跨设备外设控制场景示意图;
70.图2为本技术实施例提供的一种外设控制方法应用的通信系统的示意图;
71.图3为本技术实施例提供的第一电子设备或第二电子设备的硬件结构示意图;
72.图4a为本技术实施例提供的第一电子设备或第二电子设备的软件结构框图示意图一;
73.图4b为本技术实施例提供的第一电子设备或第二电子设备的软件结构框图示意图二;
74.图5为本技术实施例提供的外设控制方法流程示意图一;
75.图6为本技术实施例提供的外设控制方法应用场景的模块交互示意图一;
76.图7a为本技术实施例提供的界面示意图一;
77.图7b为本技术实施例提供的界面示意图二;
78.图8为本技术实施例提供的外设控制方法流程示意图二;
79.图9为本技术实施例提供的外设控制方法流程示意图三;
80.图10为本技术实施例提供的外设控制方法流程示意图四;
81.图11为本技术实施例提供的外设控制方法应用场景的模块交互示意图二;
82.图12为本技术实施例提供的外设控制方法流程示意图五;
83.图13为本技术实施例提供的第一电子设备的结构示意图;
84.图14为本技术实施例提供的第二电子设备的结构示意图。
具体实施方式
85.下面结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。其中,在本技术实施例的描述中,以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本技术的限制。如在本技术的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本技术以下各实施例中,“至少一个”、“一个或多个”是指一个或两个以上(包含两个)。
86.在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。术语“连接”包括直接连接和间接连接,除非另外说明。“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。
87.在本技术实施例中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。
88.在一些场景中,用户在日常生活或办公过程中,可能需要操作多台电子设备,如果每台电子设备均配置有各自的外设,用户需要一一操作多个外设,实现控制对应的电子设备。操作繁琐,且多个外设占用空间较大,造成桌面杂乱。
89.对此,开发者提出通过一套外设控制多台电子设备的方法。比如,配置有flow功能的鼠标,随着光标的移动,可控制多台电子设备,并支持多台电子设备之间数据的传输。
90.示例性的,如图1中(a)所示,笔记本电脑101检测到用户移动光标11到显示屏边缘位置的操作,确定该显示屏边缘位置对应的方向存在平板102,可确定用户指示将鼠标移动至平板102。如图1中(b)所示,响应于上述用户移动光标11的操作,平板102显示光标11,用户可通过笔记本电脑101的鼠标和键盘控制平板102。并且,响应于用户在平板102上的复制操作以及在笔记本电脑101上的粘贴操作,平板102可将自身存储的数据(如文本、图像、文件等)发送到笔记本电脑101中。
91.由此,实现通过一套键鼠设备,控制多台电子设备。但是,flow功能依赖于相应的软件以及外设硬件。如仅支持配置有罗技功能的一套键鼠设备控制其他电子设备,而其他未配置罗技功能的键鼠设备不能控制其他电子设备,使用局限性较大。
92.又比如,通过安装软件,多台电子设备之间可共享一套键盘和鼠标。其中,多台电子设备中,一台电子设备作为服务端(server)主机,用户使用其键鼠可控制作为客户端(client)主机的一台或多台电子设备。比如,server主机的键鼠接收到用户操作后,
将相应的输入事件上传到输入子系统,经由输入子系统进行输入事件识别和分发后,应用程序层的软件可获得分发到的输入事件。之后,server主机通过软件将输入事件转发至client主机,完成client主机跨设备的键鼠输入事件采集。
93.可以看出,该方法同样依赖于专用软件(即软件),且由于输入事件需要在server主机侧完成事件的识别和分发,该过程耗时较长,导致client主机获取到输入事件的过程较长,进而导致键鼠设备调用的整体过程时延较高,易产生卡顿异常。并且,仅支持server主机的一套键鼠控制client主机,而不支持client主机的键鼠控制server主或者多台主机的多套键鼠互相控制,使用局限性较大,影响用户使用体验。
94.再比如,两个电子设备之间通过通用串行总线(universal serial bus,usb)接口连接对拷线,共享一套键盘和鼠标,实现互相传输数据。对拷线内部配置有相关硬件和驱动,两端的电子设备均可通过对拷线实现控制对端电子设备。
95.但是,对拷线仅支持两个电子设备之间共享键鼠,同时依赖于对拷线这一专用硬件,使用局限性较大。
96.由此,本技术实施例提供一种外设控制方法,电子设备根据获取到的分布式系统中各个电子设备的外设信息,创建分布式外设代理。从而通过分布式代理,能够实现不依赖于专用软件或硬件的任意电子设备共享其他电子设备的外设,提高外设控制效率,提升用户使用体验。
97.图2为本技术实施例提供的外设控制方法应用的通信系统的示意图。如图2中所示,该通信系统包括第一电子设备100和第二电子设备200。其中,第二电子设备200的数量为一个或多个,如图2所示的第二电子设备1、第二电子设备2等。
98.在一些实施例中,第一电子设备100可接收和响应用户通过一个或多个第二电子设备200的外设输入的内容。此外,一个或多个第二电子设备200也可接收和响应用户通过第一电子设备100的外设输入的内容。进一步的,多个第二电子设备200中的任一第二电子设备200也可接收和响应用户通过其他第二电子设备200的外设输入的内容,如第二电子设备1可接收和响应用户通过第二电子设备2的外设输入的内容。
99.可选的,第一电子设备100或第二电子设备200例如可以为手机、平板电脑、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本、个人数字助理(personal digital assistant,pda)、可穿戴设备、人工智能(artificial intelligence)设备、车机等终端设备。第一电子设备100或第二电子设备200安装的操作系统包括但不限于统包括但不限于或者其它操作系统。本技术对第一电子设备100或第二电子设备200的具体类型、所安装的操作系统均不作限制。
100.在一些实施例中,第一电子设备100和第二电子设备200之间建立有通信连接,该通信连接可以为有线连接(如通过usb连接等),也可以为无线通信连接。其中,建立无线通信连接的无线通信技术包括但不限于以下的至少一种:蓝牙(bluetooth,bt)(例如,传统蓝牙或者低功耗(bluetooth low energy,ble)蓝牙),无线局域网(wireless local area networks,wlan)(如无线保真(wireless fidelity,wi-fi)网络),近距离无线通信(near field communication,nfc),紫蜂(zigbee),调频(frequency modulation,fm),红外
(infrared,ir)等。
101.可选的,第一电子设备100和第二电子设备200也可以通过局域网中的第三方设备建立通信连接,第三方设备例如是路由器、网关、智能设备控制器、服务器、无线访问接入点(access point,ap)设备等。
102.可选的,第一电子设备100和第二电子设备200也可以通过分布式软总线实现通信。需要说明的是,分布式软总线的相关内容可参考现有技术,本技术实施例对此不再赘述。
103.在一些实施例中,第一电子设备100和第二电子设备200建立通信连接后,第一电子设备100可通过与第二电子设备200之间的通信连接,实现接收和响应用户通过第二电子设备200的外设(如键鼠设备)输入的内容。
104.比如,第一电子设备100和第二电子设备200都支持靠近发现功能。示例性地,第一电子设备100靠近第二电子设备200后,第一电子设备100和第二电子设备200能够互相发现对方,之后建立诸如wi-fi端到端(peer to peer,p2p)连接和/或蓝牙连接等无线通信连接。之后,用户能够使用第二电子设备200配置的外设操作第一电子设备100。
105.又比如,第一电子设备100和第二电子设备200通过局域网,建立无线通信连接。比如,第一电子设备100和第二电子设备200都连接至同一路由器。
106.再比如,第一电子设备100和第二电子设备200通过蜂窝网络、因特网等,建立无线通信连接。如第二电子设备200通过路由器接入因特网,第一电子设备100通过蜂窝网络接入因特网;进而,第一电子设备100和第二电子设备200建立无线通信连接。
107.示例性的,图3示出了第一电子设备100或第二电子设备200的一种结构示意图。
108.第一电子设备100或第二电子设备200可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,usb)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,传感器模块180,按键190,马达191,外设模块192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,sim)卡接口195等。
109.可以理解的是,本技术实施例示意的结构并不构成对第一电子设备100或第二电子设备200的具体限定。在本技术另一些实施例中,第一电子设备100或第二电子设备200可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
110.比如,在第一电子设备100为pc的情况下,第一电子设备100可以不包括移动通信模块150和sim卡接口195。
111.处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
112.控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
113.处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
114.在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,i2c)接口,集成电路内置音频(inter-integrated circuit sound,i2s)接口,脉冲编码调制(pulse code modulation,pcm)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,uart)接口,移动产业处理器接口(mobile industry processor interface,mipi),通用输入输出(general-purpose input/output,gpio)接口,用户标识模块(subscriber identity module,sim)接口,和/或通用串行总线(universal serial bus,usb)接口等。
115.i2c接口是一种双向同步串行总线,包括一根串行数据线(serial data line,sda)和一根串行时钟线(derail clock line,scl)。在一些实施例中,处理器110可以包含多组i2c总线。处理器110可以通过不同的i2c总线接口分别耦合触摸传感器,充电器,闪光灯,摄像头193等。例如:处理器110可以通过i2c接口耦合触摸传感器,使处理器110与触摸传感器通过i2c总线接口通信,实现第一电子设备100或第二电子设备200的触摸功能。
116.mipi接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。mipi接口包括摄像头串行接口(camera serial interface,csi),显示屏串行接口(display serial interface,dsi)等。在一些实施例中,处理器110和摄像头193通过csi接口通信,实现第一电子设备100或第二电子设备200的拍摄功能。处理器110和显示屏194通过dsi接口通信,实现第一电子设备100或第二电子设备200的显示功能。
117.usb接口130是符合usb标准规范的接口,具体可以是mini usb接口,micro usb接口,usb type c接口等。usb接口130可以用于连接充电器为第一电子设备100或第二电子设备200充电,也可以用于第一电子设备100或第二电子设备200与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如ar设备等。
118.可以理解的是,本技术实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对第一电子设备100或第二电子设备200的结构限定。在本技术另一些实施例中,第一电子设备100或第二电子设备200也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
119.充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过usb接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过第一电子设备100或第二电子设备200的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
120.电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也
可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
121.第一电子设备100或第二电子设备200的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
122.天线1和天线2用于发射和接收电磁波信号。第一电子设备100或第二电子设备200中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
123.移动通信模块150可以提供应用在第一电子设备100或第二电子设备200上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,lna)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
124.调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
125.无线通信模块160可以提供应用在第一电子设备100或第二电子设备200上的包括无线局域网(wireless local area networks,wlan)(如无线保真(wireless fidelity,wi-fi)网络),蓝牙(bluetooth,bt),全球导航卫星系统(global navigation satellite system,gnss),调频(frequency modulation,fm),近距离无线通信技术(near field communication,nfc),红外技术(infrared,ir)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
126.在一些实施例中,第一电子设备100或第二电子设备200的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得第一电子设备100或第二电子设备200可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,gsm),通用分组无线服务(general packet radio service,gprs),码分多址接入(code division multiple access,cdma),宽带码分多址(wideband code division multiple access,wcdma),时分码分多址(time-division code division multiple access,td-scdma),长期演进(long term evolution,lte),bt,
gnss,wlan,nfc,fm,和/或ir技术等。所述gnss可以包括全球卫星定位系统(global positioning system,gps),全球导航卫星系统(global navigation satellite system,glonass),北斗卫星导航系统(beidou navigation satellite system,bds),准天顶卫星系统(quasi-zenith satellite system,qzss)和/或星基增强系统(satellite based augmentation systems,sbas)。
127.第一电子设备100或第二电子设备200通过gpu,显示屏194,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏194和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
128.显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,lcd),例如采用有机发光二极管(organic light-emitting diode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,amoled),柔性发光二极管(flex light-emitting diode,fled),mini-led,micro-led,micro-oled,量子点发光二极管(quantum dot light emitting diodes,qled)等生产制造。在一些实施例中,第一电子设备100或第二电子设备200可以包括1个或n个显示屏194,n为大于1的正整数。
129.外设模块192可以包括鼠标、键盘、用于实现键盘鼠标功能的触摸板等。在一些实施例中,第一电子设备100中已设置第二电子设备200的外设代理,第一电子设备100可使用第二电子设备200的外设。那么,第二电子设备200在接收到用户通过外设模块192输入的内容后,可以在第二电子设备200的显示屏上进行显示,也可以在与第二电子设备200建立通信连接的第一电子设备100的显示屏上进行显示。可选的,外设模块192为可选模块。比如,第一电子设备100为pad,可以不配置外设模块192,直接通过显示屏194接收用户的输入操作。
130.摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,ccd)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,cmos)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给isp转换成数字图像信号。isp将数字图像信号输出到dsp加工处理。dsp将数字图像信号转换成标准的rgb,yuv等格式的图像信号。在一些实施例中,第一电子设备100或第二电子设备200可以包括1个或n个摄像头193,n为大于1的正整数。
131.外部存储器接口120可以用于连接外部存储卡,例如micro sd卡,实现扩展第一电子设备100或第二电子设备200的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
132.内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储第一电子设备100或第二电子设备200使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的
存储器的指令,执行第一电子设备100或第二电子设备200的各种功能应用以及数据处理。
133.音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。第一电子设备100或第二电子设备200可以通过音频模块170,例如音乐播放,录音等。音频模块170可以包括扬声器,受话器,麦克风,耳机接口,以及应用处理器等实现音频功能。
134.传感器模块180可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,骨传导传感器等。
135.压力传感器用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器可以设置于显示屏194。压力传感器的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器,电极之间的电容改变。第一电子设备100或第二电子设备200根据电容的变化确定压力的强度。当有触摸操作作用于显示屏,第一电子设备100或第二电子设备200根据压力传感器检测所述触摸操作强度。第一电子设备100或第二电子设备200也可以根据压力传感器的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
136.触摸传感器,也称“触控器件”。触摸传感器可以设置于显示屏194,由触摸传感器与显示屏194组成触摸屏,也称“触控屏”。触摸传感器用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器也可以设置于第一电子设备100或第二电子设备200的表面,与显示屏194所处的位置不同。
137.按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。第一电子设备100或第二电子设备200可以接收按键输入,产生与第一电子设备100或第二电子设备200的用户设置以及功能控制有关的键信号输入。
138.马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
139.sim卡接口195用于连接sim卡。sim卡可以通过插入sim卡接口195,或从sim卡接口195拔出,实现和第一电子设备100或第二电子设备200的接触和分离。第一电子设备100或第二电子设备200可以支持1个或n个sim卡接口,n为大于1的正整数。
140.在一些场景中,第一电子设备100和第二电子设备200中可以安装相同或不相同的操作系统。如下以为例,对电子设备的软件结构进行说明。
141.示例性的,假设第一电子设备100或第二电子设备200中安装的操作系统为图4a是本技术实施例的第一电子设备100或第二电子设备200的软件结构框图。
142.第一电子设备100或第二电子设备200的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本技术实施例以分层架构的为例,示例性说明第一电子设备100或第二电子设备200的软件结构。
143.分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将分为三层,从上至下分别为应用程序层,应用程序框架层,以及内核层。
144.应用程序层可以包括一系列应用程序包。
145.如图4a所示,应用程序包可以包括记事本,短信息,相机,日历,音乐,图库,地图,通话,视频等应用程序。
146.应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。
147.如图4a所示,应用程序框架层可以包括输入子系统,分布式输入子系统,内容提供器,通知管理器,视图系统,资源管理器等。
148.示例性的,如图4b所示,输入子系统中包括本地输入设备管理模块和分布式输入设备管理模块。其中,本地输入设备管理模块,用于管理自身配置的输入设备(即外设),如键盘、鼠标。分布式输入设备管理模块,用于管理通信系统中其他电子设备的输入设备。
149.分布式输入子系统,用于同步通信系统中其他电子设备的外设信息,以及创建其他电子设备的外设代理,接收其他电子设备外设的输入事件,实现跨设备外设管理及调用。
150.内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
151.通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
152.视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
153.资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
154.内核层是硬件和软件之间的层。内核层包括外设驱动,显示驱动,摄像头驱动,音频驱动,传感器驱动等。
155.示例性的,如图4b所示,外设驱动包括本地外设驱动和分布式外设驱动。其中,本地外设驱动,用于管理本地外设。分布式外设驱动,用于管理分布式输入子系统创建的通信系统中其他电子设备的外设代理。
156.比如,电子设备(如第一电子设备100和/或第二电子设备200)在内核层中可创建对应于通信系统中其他电子设备的外设代理。应用程序框架层中的分布式输入子系统在接收到其他电子设备外设检测到的输入事件后,将输入事件注入到其他电子设备对应的外设代理,通过相应的外设代理完成输入事件向应用程序层相应的应用程序的上传。这样,电子设备对于外设输入事件的软件处理过程能够最大程度的复用现有逻辑框架(即将输入事件按照内核层、应用程序框架层、应用程序层的顺序,发送到上层处理),在满足用户对于跨设备调用外设的需求的同时,降低系统开发难度。
157.此外,对于电子设备的应用程序层而言,可以不需要区分获取到的外设输入是来自于电子设备的外设还是其他电子设备的外设,而是可直接根据接收到的外设输入指示电子设备执行相应的操作。
158.可选的,电子设备创建外设代理后,应用程序层中的应用程序能够识别到外设代理(即使得已创建外设代理的外设对应用程序层可见),从而实现选择使用相应的外设代理。或者,电子设备可通过控件等多种方式,在显示屏上显示已创建外设代理的外设,供用户选择待使用的外设。
159.以下以第一电子设备100为第一电子设备,第二电子设备200包括第二电子设备1和第二电子设备2为例,对本技术实施例提供的外设控制方法进行详细介绍。
160.示例性的,图5为本技术实施例提供的一种外设控制方法流程示意图。如图5所示,该方法包括如下步骤。
161.s501、第一电子设备确定全局外设。
162.在一些实施例中,第一电子设备接入通信系统后,可通过输入子系统同步通信系统中各个第二电子设备的外设信息,并创建或更新第二电子设备外设的代理节点,以便于后续第一电子设备可以接收和响应用户通过第二电子设备的外设输入的内容。
163.示例性的,如图6所示,第一电子设备、第二电子设备1以及第二电子设备2建立通信连接,第一电子设备配置有键盘1和鼠标1,第二电子设备1配置有键盘2和鼠标2,第二电子设备3配置有键盘3和鼠标3。各个电子设备应用程序框架层中的分布式输入子系统中包括用于同步外设信息的外设信息同步模块。比如,第一电子设备中的分布式输入子系统62中包括外设信息同步模块621,能够获取到第二电子设备1和第二电子设备2的外设信息。
164.可选的,外设信息同步模块将查询到的外设信息写入到分布式数据库中,分布式数据库同步各个电子设备的外设信息,从而实现各个电子设备获取到相同的外设信息。如图6所示场景,分布式数据库中存储有相同的第一电子设备、第二电子设备1以及第二电子设备2的外设信息。
165.或者,电子设备将自身配置的外设的外设信息通过广播等方式,发送到通信系统中的其他电子设备。其他电子设备接收到外设信息后,同步更新存储的外设信息,从而实现通信系统中外设信息的同步。
166.或者,电子设备将自身配置的外设的外设信息上传到云服务器,云服务器同步更新获取到的多个电子设备的外设信息。之后,通信系统中的其他电子设备可通过从云服务器下载外设信息的方式,实现通信系统中外设信息的同步。或者,云服务器按照预设周期,向通信系统中的电子设备下发同步后的外设信息,也可实现通信系统中外设信息的同步。
167.或者,通信系统中的多个电子设备按照预设选举机制,选举中心节点,通过中心节
点同步外设信息。可选的,该中心节点例如为通信系统中能够保持通信的电子设备、或者为运算能力较强的电子设备、或者为非电池设备(即能保证工作时长的设备)等。通信系统中的电子设备交互信息,选举出满足上述条件中的部分或全部条件的一个电子设备作为中心节点。比如,中心节点为路由器。可选的,若中心节点下电,通信系统中的电子设备能够再次选举出用于同步外设信息的中心节点。其中,通信系统中的中心节点的选举方法可以参考现有技术,对此本技术实施例不做具体限定。之后,中心节点获取到通信系统中各个电子设备广播或上报的外设信息后,同步更新各个外设信息。电子设备可从中心节点获取到其他电子设备的外设信息,实现通信系统中外设信息的同步。
168.需要说明的是,图6所示的电子设备中应用程序框架层中各个模块的划分,用于对应用程序框架层可实现的功能进行说明,并不构成对应用程序框架层中各个功能模块划分的限制。在本技术另一些实施例中,应用程序框架层中可以包括比图示更多或更少的模块,或者组合某些模块,或者拆分某些模块,或者不同的模块布置。比如,输入子系统和分布式输入子系统可以组成一个模块,用于实现输入子系统和分布式输入子系统的功能。对此下文不再进行说明。
169.一些实施例中,电子设备获取到外设信息后,根据外设信息同步内核层中的外设代理。比如,确定本地内核层是否已经创建对应的外设代理,如果暂未创建相应的外设代理,可根据外设信息创建相应的外设代理。又比如,外设信息中不包括已有的外设代理,可删除对应的外设代理。
170.示例性的,如图6所示,电子设备应用程序框架层中的输入子系统中包括分布式输入管理模块,分布式输入管理模块中包括用于管理通信系统中的其他电子设备的一个或多个外设代理的全局外设管理模块。全局外设管理模块,还用于在内核层中创建上层应用能够识别到的外设代理。
171.如图6所示,第一电子设备中的全局外设管理模块6111接收到外设信息同步模块621发送的外设信息(如外设规格等)。之后,全局外设管理模块6111根据获取到的外设信息,在内核层创建第二电子设备1对应的键盘2代理和鼠标2代理,以及第二电子设备2对应的键盘3代理和鼠标3代理。
172.可选的,如图6所示,第一电子设备中的分布式输入子系统62中还包括业务管理模块622。业务管理模块622也可获取外设信息同步模块621发送的外设信息,根据外设信息,在本地内核层创建对应的外设代理,作为其他电子设备外设的映射,并将创建的外设代理信息发送到全局外设管理模块6111。
173.可选的,不同操作系统创建外设代理的方式不同。以系统为例,在uinput.h和input-event-codes.h头文件中定义了输入相关的参数和接口定义,实现创建一个键盘代理,具体代码如下:
[0174][0175]
在一些实施例中,电子设备断开与通信系统中其他电子设备之间的连接后,其他电子设备可删除该电子设备对应的外设代理。仍以系统为例,删除外设代理的代码如下:
[0176]
ioctl(fd,ui_dev_destroy);
[0177]
需要说明的是,以上以系统为例,对外设代理创建和删除的代码进行示例说明。其他操作系统外设代理创建和删除的代码可以参考上述代码,对此本技术实施例不做具体限制。
[0178]
在一些实施例中,内核层创建的外设代理与通信系统中电子设备实际配置的外设之间按照预设映射方式,可建立相应的映射关系。其中,预设映射方式的数量为一个或多个。后续,电子设备接收到不同外设发送的输入事件后,根据映射关系将输入事件注入到相应的外设代理,实现通过其他电子设备外设对应的外设代理控制自身设备。
[0179]
比如,电子设备在本端创建的外设代理与其他电子设备的外设一一匹配映射。示例性的,如图6所示,第一电子设备内核层中创建对应于第二电子设备1的键盘2的键盘2代理,对应于第二电子设备1的鼠标2的鼠标2代理,对应于第二电子设备2的键盘3的键盘3代理,对应于第二电子设备2的鼠标3的鼠标3代理。
[0180]
又比如,电子设备在本端创建对应于一个电子设备的全部外设的外设代理,从而根据通信系统中其他电子设备的数量,创建相应数量的外设代理。如第二电子设备1配置有键盘2和鼠标2,第一电子设备获取到第二电子设备1的外设信息后,创建一个对应于第二电子设备1的外设代理,该外设代理对应于键盘2和鼠标2。第二电子设备1的键盘2、鼠标2接收到输入事件后,将输入事件输入到第一电子设备中对应的一个外设代理中。
[0181]
再比如,电子设备在本端创建对应于通信系统中其他全部电子设备的全部外设的外设代理。电子设备通过该外设代理接收其他电子设备外设接收到的输入事件,执行相应的操作。
[0182]
s502、第一电子设备查询可用外设。
[0183]
在一些实施例中,第一电子设备确定全局外设后,上层业务(如控制应用)可按需选择启用或停止指定设备的外设作为本地外设使用。
[0184]
可选的,控制应用为电子设备中应用程序层中需要使用外设或可实现搜索外设功
能的应用。如超级终端应用、电脑管家应用、记事本应用、短消息应用等。比如,第一电子设备响应于用户在超级终端应用中的搜索设备的操作,搜索并显示位于第一电子设备附近的可用外设和/或电子设备。又比如,第一电子设备显示记事本应用界面,并在输入框中显示光标。那么,第一电子设备可查询可用外设,用于接收用户输入的显示内容。
[0185]
示例性的,如图6所示,第一电子设备输入子系统61中的分布式输入管理模块611中的外设控制模块6112用于提供外设供上层应用使用。如在应用程序层的应用可确定本端可使用的外设包括键盘1、鼠标1、键盘2、鼠标2、键盘3、以及鼠标3。
[0186]
示例性的,如图7a中(a)所示,第一电子设备(如平板)检测到用户点击下拉通知栏中显示的超级终端设备搜索控件71的操作,确定接收到用户指示查询可用外设的操作,可搜索附近存在的电子设备外设。如图7a中(b)所示,控件72为用于表示第一电子设备自身的图标,在控件72周围显示搜索到的电子设备外设和/或电子设备的图标(如控件73为用于表示位于第一电子设备附近的电脑键鼠的图标),实现查询第一电子设备的可用外设。
[0187]
可选的,第一电子设备搜索到的外设为在本端已创建相应外设代理的外设。也就是说,第一电子设备先执行上述步骤s501确定全局外设,创建相应的外设代理。之后再执行步骤s502,根据创建的外设代理,确定可用外设。
[0188]
或者,第一电子设备搜索到位于附近的配置有外设的电子设备后,可直接显示该电子设备图标。之后,响应于用户对该电子设备图标的操作(如拖动该电子设备图标至第一电子设备图标的操作),第一电子设备可创建该电子设备对应的外设代理,确定该电子设备的外设为可用外设。也就是说,第一电子设备可先执行上述步骤s502,搜索附近的可用外设(包括可建立连接的配置有外设的电子设备)。之后,第一电子设备再执行上述步骤s501,全局外设信息同步过程包括响应于用户操作,创建用户选择的可用外设对应的外设代理。
[0189]
可选的,电子设备的外设可以作为一个整体,被其他电子设备搜索到,和/或,电子设备不同的外设可以分别被其他电子设备搜索到。
[0190]
示例性的,如图7a所示,第一电子设备搜索到的可用外设包括电脑键鼠(即包括电脑的键盘和鼠标)。或者,如图7b所示,第一电子设备搜索到的可用外设可以包括书房电脑键鼠、卧室电脑鼠标、卧室电脑键盘、pad1触摸板、笔记本键鼠,用户可以根据需求选择可用外设。
[0191]
需要说明的是,图7b示例场景中,电子设备名称可以为用户设置的设备名称(如用户根据电子设备位置设置的设备名称)。或者,第一电子设备在与其他电子设备建立连接的过程中可确定其他电子设备的位置信息,进而生成相应的设备名称,便于用户区分,该过程可参考现有技术,本技术实施例对此不做具体说明。
[0192]
又示例性的,在如图1所示的场景中,笔记本电脑101响应于用户通过其触摸板移动光标11至笔记本电脑101的显示屏边缘的操作,查询位于该显示屏边缘方向的第一电子设备(如为平板102),向第一电子设备发送外设使用指示。第一电子设备接收到外设使用指示后,确定笔记本电脑101的外设为可用外设(如确定本地已创建笔记本电脑101对应的外设代理;或者根据外设使用指示,创建笔记本电脑101外设对应的外设代理后,确定该外设为可用外设)。从而第一电子设备的显示屏显示光标11,后续用户可使用笔记本电脑101的外设控制第一电子设备。
[0193]
如此,通信系统中各个电子设备通过同步外设信息,在内核层创建相应的外设代
理,实现电子设备外设的跨设备调用。
[0194]
以下以第一电子设备调用第二电子设备1的外设为例,对跨设备调用外设过程中的线程初始化过程进行详细介绍。
[0195]
示例性的,图8为本技术实施例提供的另一种外设控制方法流程示意图。如图8所示,该方法包括如下步骤。
[0196]
s801、第一电子设备中的控制应用向第一电子设备中的全局外设管理模块发送查询可用外设指示。
[0197]
在一些实施例中,第一电子设备中的控制应用响应于用户操作,通过全局外设管理模块查询可用外设。可选的,可用外设包括自身的外设以及通信系统中其他电子设备的外设。
[0198]
示例性的,如图1所示场景,控制应用为电脑管家应用。平板102(即第一电子设备)通过电脑管家应用接收到笔记本电脑101发送的外设使用指示后,通过全局外设管理模块查询可用外设,即确定笔记本电脑101外设是否为可用外设。
[0199]
又示例性的,如图7a所示场景,控制应用为超级终端应用。如图7a中(a)所示,第一电子设备(即平板)响应于用户点击超级终端应用中的设备搜索控件71的操作,通过全局外设管理模块查询可用外设。
[0200]
可选的,步骤s801中的其余内容,可参考上述步骤s502中的相关内容,在此不再赘述。
[0201]
s802、第一电子设备中的控制应用确定待使用的外设。
[0202]
在一些实施例中,第一电子设备响应于用户操作,确定待使用的外设;或者,第一电子设备搜索到一个可用外设,将该可用外设确定为待使用的外设。
[0203]
示例性的,对应于上述如图7a所示场景,如图7a中(b)所示,第一电子设备(如平板)检测到用户拖动控件73向控件72移动的操作后,确定用户指示建立与电脑键鼠之间的通信连接,确定待使用的外设为电脑键鼠。如图7a中(c)所示,平板显示的电脑键鼠图标变化为控件74所示内容,提示用户平板与电脑键鼠已建立通信连接。
[0204]
又示例性的,如图1所示场景,第一电子设备检测到用户通过笔记本电脑101的触摸板,移动光标至显示屏边缘的操作,查询位于该边缘对应方向的可用外设,确定用户指示使用该方向的外设,即该方向外设为待使用的外设。可选的,边缘对应方向的可用外设的数量为多个,第一电子设备可通过弹窗显示提示信息的方式,提示用户选择其中待使用的一个外设。
[0205]
s803、第一电子设备中的控制应用向第一电子设备中的外设控制模块发送初始化外设指示。
[0206]
在一些实施例中,第一电子设备确定待使用的外设后,初始化跨设备调用外设的过程中需要使用的模块对应的线程。
[0207]
示例性的,如图6所示,第一电子设备输入子系统61中的分布式输入管理模块611中包括用于控制外设的外设控制模块6112。控制应用确定待使用的外设后,可向外设控制模块6112发送初始化指示,用于指示外设控制模块6112向相应的模块转发初始化指示。
[0208]
s804、第一电子设备中的外设控制模块向第一电子设备中的业务管理模块转发初始化外设指示。
[0209]
在一些实施例中,如图6所示,第一电子设备分布式输入子系统62包括业务管理模块622。业务管理模块622,用于向其他模块提供分布式外设代理的调用能力。外设控制模块6112在接收到控制应用发送的初始化外设指示后,通过业务管理模块622向相关模块转发初始化外设指示。
[0210]
在一些实施例中,如第一电子设备在上述步骤s802中确定的待使用的外设为第二电子设备1的外设。第一电子设备中的外设控制模块向业务管理模块发送的初始化外设指示中包括第二电子设备1的标识,该标识用于指示第二电子设备1或者用于指示第二电子设备1的外设。
[0211]
s805、第一电子设备和第二电子设备1通过业务管理模块建立通信连接。
[0212]
在一些实施例中,第一电子设备中的业务管理模块在接收到初始化外设指示后,可确定待使用的外设为第二电子设备1的外设,进而与第二电子设备1建立通信连接。
[0213]
可选的,业务管理模块根据初始化外设指示中的第二电子设备1的标识,确定待使用的外设为第二电子设备1的外设,确定与第二电子设备1建立通信连接。
[0214]
在一些实施例中,第一电子设备在确定与第二电子设备1建立通信连接后,可通过业务管理模块向跨设备调用外设过程中需要使用的模块发送初始化线程指示,用于指示各个模块初始化相应的线程。
[0215]
s806a、第一电子设备中的业务管理模块向第一电子设备中的事件注入模块发送初始化事件注入线程指示。
[0216]
s807a、第一电子设备中的事件注入模块初始化事件注入线程。
[0217]
s808a、第一电子设备中的事件注入模块向第一电子设备中的业务管理模块发送初始化事件注入线程响应。
[0218]
在一些实施例中,在步骤s806a-步骤s808a中,如图6所示,第一电子设备分布式输入子系统62中还包括事件注入模块625。事件注入模块625,用于将接收到的其他电子设备外设发送的输入事件注入到相应的外设代理(如第二电子设备1对应的外设代理)中,从而第一电子设备可执行输入事件对应的操作。
[0219]
由此,在跨设备外设调用过程中,第一电子设备需要使用到事件注入模块,业务管理模块向事件注入模块发送初始化事件注入线程指示。相应的,事件注入模块根据接收到的初始化事件注入线程指示,初始化事件注入线程。并且,在初始化完成后,向业务管理模块发送初始化事件注入线程响应,用于通知业务管理模块事件注入线程已完成初始化。
[0220]
s806b、第一电子设备中的业务管理模块向第一电子设备中的事件传输模块发送初始化事件传输线程指示。
[0221]
s807b、第一电子设备中的事件传输模块初始化事件传输线程。
[0222]
s808b、第一电子设备中的事件传输模块向第一电子设备中的业务管理模块发送初始化事件传输线程响应。
[0223]
在一些实施例中,在步骤s806b-步骤s808b中,如图6所示,第一电子设备分布式输入子系统62中还包括事件传输模块626。事件传输模块626,用于提供输入事件跨设备传输功能,例如包括输入事件的编码,发送,接收,以及解码等功能。
[0224]
由此,在跨设备外设调用过程中,第一电子设备需要使用到事件传输模块,业务管理模块向事件传输模块发送初始化事件传输线程指示。相应的,事件传输模块根据接收到
的初始化事件传输线程指示,初始化事件传输线程。并且,在初始化完成后,向业务管理模块发送初始化事件传输线程响应,用于通知业务管理模块事件传输线程已完成初始化。
[0225]
s806c、第二电子设备1中的业务管理模块向第二电子设备1中的事件采集模块发送初始化事件采集线程指示。
[0226]
s807c、第二电子设备1中的事件采集模块初始化事件采集线程。
[0227]
s808c、第二电子设备1中的事件采集模块向第二电子设备1中的业务管理模块发送初始化事件采集线程响应。
[0228]
在一些实施例中,在步骤s806c-步骤s808c中,如图6所示,第二电子设备1分布式输入子系统64中还包括事件采集模块643。事件采集模块643,用于从本地设备连接的外设中,获取输入事件。如事件采集模块643获取键盘2和鼠标2发送的输入事件。
[0229]
由此,在跨设备外设调用过程中,第二电子设备1需要使用到事件采集模块,那么第二电子设备1中的业务管理模块向事件采集模块发送初始化事件采集线程指示。相应的,事件采集模块根据接收到的初始化事件采集线程指示初始化事件采集线程。并且,在初始化完成后,向业务管理模块发送初始化事件采集线程响应,用于通知业务管理模块事件采集线程已完成初始化。
[0230]
s806d、第二电子设备1中的业务管理模块向第二电子设备1中的事件传输模块发送初始化事件传输线程指示。
[0231]
s807d、第二电子设备1中的事件传输模块初始化事件传输线程。
[0232]
s808d、第二电子设备1中的事件传输模块向第二电子设备1中的业务管理模块发送初始化事件传输线程响应。
[0233]
在一些实施例中,在步骤s806d-步骤s808d中,如图6所示,第二电子设备1分布式输入子系统64同样包括事件传输模块646。事件采集模块643获取键盘2和鼠标2发送的输入事件后,通过事件传输模块646将输入事件发送到第一电子设备。
[0234]
由此,在跨设备外设调用过程中,第二电子设备1需要使用到事件传输模块,那么第二电子设备1中的业务管理模块向事件传输模块发送初始化事件传输线程指示。相应的,事件传输模块根据接收到的初始化事件传输线程指示初始化事件传输线程。并且,在初始化完成后,向业务管理模块发送初始化事件传输线程响应,用于通知业务管理模块事件传输线程已完成初始化。
[0235]
需要说明的是,本技术实施例不限制各个线程的初始化顺序,即不限制上述步骤s806a-步骤s808a、步骤s806b-步骤s808b、步骤s806c-步骤s808c、以及步骤s806d-步骤s808d的执行顺序。第一电子设备和第二电子设备1中的业务管理模块获取到初始化指示后,按照预设规则初始化相应的线程。
[0236]
此外,线程初始化过程也可以不使用业务管理模块。如通过电子设备中的外设控制模块和相关模块的交互,直接完成相关模块的初始化过程。
[0237]
s809、第二电子设备1通过业务管理模块向第一电子设备发送初始化完毕指示。
[0238]
在一些实施例中,第二电子设备1在确定已完成跨设备外设调用过程中待使用的线程的初始化后,可向通过业务管理模块向第一电子设备发送初始化完毕指示,用于指示第一电子设备当前相关线程已完成初始化,可实现跨设备调用外设。
[0239]
s810、第一电子设备中的业务管理模块向第一电子设备中的外设控制模块发送双
端初始化完毕指示。
[0240]
在一些实施例中,第一电子设备中的业务管理模块根据在上述步骤s808a中接收到的初始化事件注入线程响应,可确定事件注入线程已完成初始化。并且,根据在上述步骤s808b中接收到的初始化事件传输线程响应,可确定事件传输线程已完成初始化。进而确定本端跨设备调用外设过程中需要使用的线程已初始化完成。
[0241]
此外,第一电子设备中的业务管理模块根据在上述步骤s809中接收到的初始化完毕指示,可确定对端(即第二电子设备1)在跨设备调用外设过程中需要使用的线程已初始化完成。
[0242]
那么,业务管理模块可确定在跨设备外设调用过程中,两端需要使用的线程均已初始化完成,可向外设控制模块发送双端初始化完毕指示。
[0243]
s811、第一电子设备中的外设控制模块向第一电子设备中的全局控制管理模块和控制应用转发双端初始化完毕指示。
[0244]
在一些实施例中,第一电子设备中的外设控制模块接收到初始化完毕指示后,可向全局控制管理模块和控制应用转发双端初始化完毕指示。全局外设管理模块可根据双端初始化完毕指示,确定对应的外设代理的使用状态为可使用状态。控制应用可根据双端初始化完毕指示,确定可使用对应的外设。
[0245]
可选的,控制应用可通过弹窗显示提示信息的方式,提示用户可使用相应的外设。
[0246]
需要说明的是,上述图8所示的初始化过程由于需要初始化多个线程,需要耗费一定的时间。因此,第一电子设备在确定跨设备使用其他电子设备外设之前,需要完成上述初始化过程。以便后续响应于用户操作或响应于控制应用指示,其他电子设备可快速响应用户通过外设的输入,将输入事件发送到第一电子设备,保证用户使用体验。
[0247]
如此,第一电子设备和第二电子设备1完成相应线程的初始化,后续第一电子设备可根据用户指示,跨设备调用第二电子设备1的外设。并且,第二电子设备1也可根据外设接收到的输入事件,将相应的输入事件发送到第一电子设备。从而实现通过第二电子设备1的外设控制第一电子设备。
[0248]
以下以仍第一电子设备调用第二电子设备1的外设为例,对跨设备调用外设过程中的外设使用过程进行详细介绍。
[0249]
示例性的,图9为本技术实施例提供的又一种外设控制方法流程示意图。如图9所示,该方法包括如下步骤。
[0250]
s901、第一电子设备中的控制应用向第一电子设备中的外设控制模块发送外设使用指示。
[0251]
在一些实施例中,第一电子设备中的控制应用响应于用户操作,向输入子系统中的外设控制模块发送外设使用指示,用于通过外设控制模块实现调用相应的外设。可选的,外设使用指示中携带有相应的外设标识或电子设备标识,用于指示相应的外设或电子设备。
[0252]
示例性的,如图1所示场景,控制应用为电脑管家应用。第一电子设备(如平板102)通过电脑管家应用接收到笔记本电脑101发送的外设使用指示后,确定本地存在笔记本电脑101对应的外设代理,或者创建笔记本电脑101的外设代理。之后,第一电子设备中的电脑管家应用向外设控制模块转发该外设使用指示,用于指示使用笔记本电脑101对应的外设
及外设代理。
[0253]
又示例性的,如图7a所示场景,控制应用为超级终端应用。第一电子设备(即平板)通过超级终端应用搜索到电脑键鼠。如图7a中(b)所示,第一电子设备通过超级终端应用检测到用户移动电脑键鼠图标与第一电子设备图标(即平板图标)相碰的操作后,确定用户指示使用电脑的外设。之后,超级终端应用向外设控制模块发送外设使用指示,用于指示使用电脑对应的外设及外设代理。
[0254]
s902、第一电子设备中的外设控制模块向第一电子设备中的业务管理模块发送外设使用指示。
[0255]
s903、第一电子设备中的业务管理模块向第二电子设备1发送外设使用指示。
[0256]
在一些实施例中,在步骤s902和步骤s903中,外设控制模块在接收到外设使用指示后,根据外设使用指示中携带的外设标识,确定相应的外设。之后,外设控制模块通过业务管理模块向确定的外设对应的电子设备(如第二电子设备1)发送外设使用指示。
[0257]
s904、第二电子设备1中的业务管理模块向第二电子设备1中的事件采集模块发送事件采集指示。
[0258]
在一些实施例中,第二电子设备1接收到外设使用指示后,通过业务管理模块向事件采集模块发送事件采集指示,用于指示事件采集模块获取本端外设接收到的用户操作。
[0259]
需要说明的是,在一些场景中,外设使用过程也可以直接包括上述图8所示的线程初始化过程。第二电子设备1在事件采集线程和事件传输线程初始化完成后,可确定开始通过事件采集模块获取输入事件。也就是说,上述步骤s901-步骤s903为可选步骤,或者说上述步骤s803中控制应用发送的初始化外设指示可作为外设使用指示。
[0260]
s905、第二电子设备1中的事件采集模块获取输入事件。
[0261]
在一些实施例中,第二电子设备1通过自身的外设采集用户操作,并将外设采集到的用户操作对应的信息发送到事件采集模块。事件采集模块根据获取到的信息,确定输入事件。
[0262]
示例性的,如图6所示,第二电子设备1的外设包括键盘2和鼠标2,用户可通过键盘2和鼠标2操作第一电子设备。第二电子设备1的分布式输入子系统64中的事件采集模块643,可获取到键盘2和鼠标2检测到的用户输入的输入事件。
[0263]
s906、第二电子设备1中的事件采集模块通过第二电子设备1中的事件传输模块向第一电子设备发送输入事件。
[0264]
在一些实施例中,第二电子设备1中的事件采集模块在获取到输入事件后,将输入事件通过事件传输模块发送到第一电子设备。实现输入事件的跨设备传输,进而实现外设的跨设备控制。
[0265]
示例性的,如图6所示,第二电子设备1的分布式输入子系统64中的事件传输模块646获取到事件采集模块643发送的输入事件。事件传输模块646将获取到的输入事件发送到已建立通信连接的第一电子设备的分布式输入子系统62中的事件传输模块626。
[0266]
s907、第一电子设备中的事件注入模块通过第一电子设备中的事件传输模块接收第二电子设备1发送的输入事件。
[0267]
s908、第一电子设备中的事件注入模块将输入事件注入到相应的外设代理。
[0268]
在一些实施例中,在步骤s907和步骤s908中,第一电子设备在通过事件传输模块
获取到输入事件后,通过事件注入模块将输入事件注入到相应的外设代理,用于实现输入事件在本端生效。
[0269]
示例性的,如图6所示,第一电子设备的分布式输入子系统62中的事件传输模块626在获取到输入事件后,将输入事件发送到事件注入模块625。之后,事件注入模块625将接收到的输入事件发送到内核层中该输入事件对应的外设代理,如键盘2代理和鼠标2代理。
[0270]
s909、第一电子设备中的原子事件处理模块获取相应的外设代理发送的输入事件。
[0271]
在一些实施例中,第一电子设备的外设代理在获取到输入事件后,将输入事件发送到输入子系统,通过输入子系统识别原始输入事件,从而实现执行相应的操作。
[0272]
示例性的,如图6所示,第一电子设备内核层中的外设代理将接收到的输入事件,发送到应用程序框架层中的输入子系统61中的原子事件处理模块612。相应的,原子事件处理模块612根据接收到的输入事件,进行原始事件识别处理,确定该输入事件指示的操作。
[0273]
如此,第一电子设备通过最大程度上的复用现有的输入事件软件处理过程的逻辑框架,即将输入事件由内核层的外设代理上传到应用程序框架层的原子事件处理模块,再由原子事件处理模块完成输入事件的识别和分发,应用程序层中的应用执行相应的操作。实现在满足用户对于跨设备调用外设的需求的同时,降低系统开发难度。
[0274]
在另一些实施例中,第一电子设备中的事件传输模块在获取到第二电子设备1发送的输入事件后,也可将输入事件直接发送到原子事件处理模块,完成输入事件的识别和分发。如此,提高输入事件的处理效率。
[0275]
s910、第一电子设备中的原子事件处理模块向输入事件对应的应用发送输入事件处理指示。
[0276]
在一些实施例中,第一电子设备通过输入子系统,确定输入事件的指示操作后,向相应的应用发送事件处理指示,从而实现对于远端输入设备(如第二电子设备1)外设的使用。
[0277]
示例性的,如图6所示,第一电子设备输入子系统61中的原子事件处理模块612,向应用程序层中相应的应用发送事件处理指示。
[0278]
比如,输入事件为用户点击键盘上的“a键”后产生的事件。原子事件处理模块612,确定当前输入焦点所在窗口为文档应用的窗口,可将输入事件发送到文档应用,指示文档应用处理该输入事件。相应的,文档应用接收到输入事件后,识别输入内容(如为“a”),并在输入焦点位置显示该输入内容。
[0279]
又比如,输入事件为用户点击键盘上的“ctrl键+p键”后产生的事件。原子事件处理模块612接收到该输入事件后,按照预设规则进行原始事件识别,确定该输入事件用于启动打印机应用。那么,原子事件处理模块612可指示启动打印机应用,并将该输入事件发送到打印机应用,指示打印机应用处理该输入事件。相应的,打印机应用启动后,根据获取到的原始输入事件,确定打印内容并打印。
[0280]
如此,第一电子设备不再依赖于特定的硬件或软件,可通过第一电子设备的应用程序框架层中的分布式输入子系统,直接获取配置有外设的第二电子设备通过第二电子设备的应用程序框架层中的分布式输入子系统发送的输入事件。
[0281]
而现有技术中,第二电子设备需要在第二电子设备的应用程序框架层完成将第二电子设备的外设采集到的输入事件识别和分发到第二电子设备的应用程序层,再将输入事件由第二电子设备的应用程序层发送到第一电子设备的应用程序层。之后,第一电子设备还需要将从第一电子设备的应用程序层获取到的输入事件发送到第一电子设备的应用程序框架层,再由第一电子设备的应用程序框架层将输入事件识别和分发到第一电子设备的应用程序层的相应的应用。
[0282]
本技术提供的外设控制方法,有效降低第一电子设备获取和处理输入事件的时间,实现系统级低时延的外设跨设备调用。
[0283]
并且,低时延的外设跨设备调用,也可降低其他进程对输入事件传输及处理的影响,从而保证外设跨设备调用的稳定性。
[0284]
进一步的,不依赖于特定的硬件或软件的外设跨设备调用,第一电子设备通过创建全局外设代理,可实现调用一个或多个第二电子设备外设。
[0285]
在一些场景中,电子设备中一般配置有键盘组合键输入功能,用户通过键盘连续操作多个输入键,可实现组合键输入。之后,电子设备可快速执行相应的操作,以降低用户操作难度。比如,“win键+l键”组合后为锁屏键,用于实现快速锁屏功能;“fn键+f2键”组合后为音量键,用于实现电子设备音量调节功能;“ctrl键+c键”组合后可实现复制功能;“ctrl键+v键”组合后可实现粘贴功能。
[0286]
其中,一般在电子设备在跨设备外设控制过程中,不同组合键功能均实现在鼠标的输入焦点所在位置对应的电子设备,即键盘组合键全量透传,不符合用户预期,影响用户使用体验。
[0287]
示例性的,如图1所示场景,用户通过笔记本电脑101办公的过程中,需要使用平板102查询资料,通过笔记本电脑101的键鼠操作平板102。如图1中(b)所示,在平板102显示鼠标光标11的过程中,笔记本电脑101检测到用户在笔记本电脑101的键盘上进行组合键操作后,笔记本电脑101也会将相应的输入事件发送到输入焦点所在的电子设备(即平板102)进行处理。那么,如果笔记本电脑101检测到用户点击笔记本电脑101的“fn键+f2键”的组合键操作,会将组合键事件发送到平板102,平板102响应于该组合键事件调节音量。但是,在当前示例场景中,用户一般是需要指示笔记本电脑101调节音量,而不是指示外设控制的平板102调节音量。
[0288]
因此,在这种情况下,用户无法简单地通过组合键实现控制外设所属设备的音量。用户可能需要先将鼠标的输入焦点切换回到外设所属设备,再使用组合键,才能通过该组合键实现控制外设所属设备,用户操作繁琐。
[0289]
由此,本技术实施例提供一种外设控制方法,通过在电子设备中预置白名单。电子设备检测到组合键操作后,确定是否为白名单内的组合键操作,从而确定该组合键在本端生效,还是在对端生效。从而使得组合键更加适配于跨设备外设控制场景,满足用户的使用需求,降低用户操作难度,提升用户使用体验。
[0290]
以下仍以第一电子设备调用第二电子设备1的外设为例,通过图10和图12所示的方法流程,对跨设备调用外设过程中的组合键使用过程进行详细介绍。
[0291]
示例性的,图10为本技术实施例提供的又一种外设控制方法流程示意图。如图10所示,该方法应用于第二电子设备1,该方法包括如下步骤。
[0292]
s1001、第二电子设备1确定接收到的输入事件包括组合键输入信息。
[0293]
在一些实施例中,第二电子设备1中配置有组合键配置管理模块,用于管理组合键配置白名单。可选的,部分组合键操作更加适合在本端生效,比如(win键+l键)组合后的锁屏键,(fn键+f2键)组合后的音量键等。部分组合键操作更加适合在远端生效,比如(ctrl键+c键)组合后的复制键,(ctrl键+v键)组合后的粘贴键等。由此,可创建适用于不同角色的电子设备对应的组合键配置白名单。
[0294]
示例性的,如图11所示,通过上述图8和图9所示流程,第一电子设备实现跨设备调用第二电子设备1的外设(如键盘2)。第二电子设备1应用程序框架层中的分布式输入子系统64中还包括组合键配置管理模块644,用于管理分布式系统中的组合键配置白名单。比如,组合键配置管理模块644中存储有本端生效的组合键配置白名单以及一个或多个远端设备(如第一电子设备)对应的组合键配置白名单。
[0295]
可选的,电子设备在上述同步外设信息(如通过外设信息同步模块同步外设信息)的过程中,也可同步各自的组合键配置白名单。组合键配置白名单的同步方式,可参考上述外设信息同步过程,在此不再赘述。从而,分布式通信系统中的每一电子设备中均可存储有相同的组合键配置白名单,如包括本端生效的组合键配置白名单以及一个或多个远端设备对应的组合键配置白名单。
[0296]
在一些实施例中,第二电子设备1中保存的组合键配置白名单可以为厂家预置白名单。可选的,电子设备检测到用户设置组合键的操作,可对应更新相应的组合键配置白名单。从而使得组合键白名单更加符合用户使用需求。
[0297]
在一些实施例中,电子设备中还配置有组合键过滤模块,用于过滤包括组合键输入信息的输入事件。以及,组合键过滤模块,还用于根据本端的组合键配置白名单,确定是否该组合键操作在本端生效。
[0298]
示例性的,如图11所示,第二电子设备1应用程序框架层中的输入子系统63中还包括组合键过滤模块6313,用于接收键盘2检测到的输入事件,从而确定输入事件中是否包括组合键输入信息。如果包括组合键输入信息,通过下述步骤s1002,过滤组合键输入信息。
[0299]
s1002、第二电子设备1确定组合键输入信息是否在本端的组合键配置白名单内。若是,执行步骤s1003;若否,执行步骤s1004。
[0300]
s1003、第二电子设备1确定组合键输入信息在本端生效,向对应的接收者发送输入事件。
[0301]
s1004、第二电子设备1确定不在本端处理组合键输入信息,丢弃组合键输入信息。
[0302]
在一些实施例中,在步骤s1002-步骤s1004中,第二电子设备1在检测到本端外设输入的输入事件后,通过输入子系统识别该输入事件为组合键输入事件,可先根据本端的组合键配置白名单,确定当前组合键输入信息是否在本端的组合键配置白名单内。如果在本端的组合键配置白名单内,确定执行检测到的组合键对应指示的操作。如果不在本端的组合键配置白名单内,确定丢弃该组合键输入信息,不再执行检测到的组合键对应指示的操作。
[0303]
示例性的,如图11所示,第二电子设备1的键盘2将检测到的输入事件发送到组合键过滤模块6313。组合键过滤模块6313确定该输入事件为用户连续操作本端键盘后生成的组合键输入事件,包括组合键输入信息,向分布式输入子系统64中的组合键配置管理模块
644请求获取本端的组合键配置白名单。之后,组合键过滤模块6313根据本端的组合键配置白名单,确定当前接收到的组合键输入信息是否在本端的组合键配置白名单内。如果组合键过滤模块6313确定组合键输入信息在本端的组合键白名单内,可确定组合键输入信息在本端生效,向对应的接收者(如向应用程序层)发送输入事件。比如,组合键为(win键+l键),组合键过滤模块6313可向本端用于锁屏的功能模块发送输入事件,从而实现第二电子设备1的锁屏。如果组合键过滤模块6313确定组合键输入信息不在本端的组合键白名单内,可确定不在本端处理组合键输入信息,那么可丢弃该组合键输入信息。
[0304]
示例性的,图12为本技术实施例提供的又一种外设控制方法流程示意图。如图12所示,该方法应用于第一电子设备,该方法包括如下步骤。
[0305]
s1201、第一电子设备确定接收到的输入事件包括组合键输入信息。
[0306]
在一些实施例中,第一电子设备中配置有组合键配置管理模块,用于管理组合键配置白名单。同样的,该组合键配置白名单包括本端组合键配置白名单和远端组合键配置白名单(如第二电子设备的组合键配置白名单)。
[0307]
在一些实施例中,第一电子设备中的输入子系统获取到远端电子设备发送的输入事件后,确定接收到的输入事件中是否包括组合键输入信息。如果包括组合键输入信息,通过下述步骤s1202,过滤组合键输入信息。
[0308]
示例性的,如图11所示,通过上述图8和图9所示流程,第一电子设备实现跨设备调用第二电子设备1的外设(如键盘2)。第一电子设备输入子系统中61中的原子事件处理模块612接收到内核层中的外设代理发送的输入事件后,还可将输入事件发送到分布式输入管理模块611中的组合键过滤模块6113中,通过组合键过滤模块6113确定接收到的输入事件中是否包括组合键输入信息。
[0309]
可选的,步骤s1201的其余内容,可以参考上述步骤s1001中的相关内容,在此不再赘述。
[0310]
s1202、第一电子设备确定组合键输入信息是否在远端的组合键配置白名单内。若是,执行步骤s1203;若否,执行步骤s1204。
[0311]
s1203、第一电子设备确定不在本端处理组合键输入信息,丢弃组合键输入信息。
[0312]
s1204、第一电子设备确定组合键输入信息在本端生效,向对应的接收者发送输入事件。
[0313]
在一些实施例中,在步骤s1202-步骤s1204中,第一电子设备中在获取到远端设备发送的输入事件后,通过输入子系统识别该输入事件为组合键输入事件,可先根据远端的组合键配置白名单,确定当前组合键输入信息是否远端的在组合键配置白名单内。如果在远端的组合键配置白名单内,确定丢弃该组合键输入信息,不再执行接收到的输入事件中的组合键对应的指示操作。如果不在远端的组合键配置白名单内,确定执行获取到的输入事件中的组合键对应的指示操作。可选的,如果不在远端的组合键配置白名单内,还可进一步确定是否在本端的组合键配置白名单内,从而确定用户指示的具体操作。
[0314]
示例性的,如图11所示,第一电子设备的输入子系统中的分布式输入管理模块611中的组合键过滤模块6113,获取到原子事件处理模块612转发的远端设备发送的输入事件,确定该输入事件为用户连续操作远端键盘后生成的组合键输入事件,包括组合键输入信息,向分布式输入子系统62中的组合键配置管理模块624请求获取相应的远端的组合键配
置白名单。之后,组合键过滤模块6113根据远端的组合键配置白名单,确定当前接收到的组合键输入信息是否在远端的组合键配置白名单内。如果组合键过滤模块6113确定组合键输入信息在远端的组合键白名单内,可确定不在本端处理组合键输入信息,那么可丢弃组合键输入信息。如果组合键过滤模块6113确定组合键输入信息不在远端的组合键白名单内,可确定组合键输入信息在本端生效,向对应的接收者(如向应用程序层)发送输入事件。比如,组合键为“ctrl键+c键”,组合键过滤模块6113可向本端用于实现复制功能的功能模块发送输入事件,从而实现复制第一电子设备的显示内容。
[0315]
需要说明的是,上述示例的图10和图12流程中,通过键盘组合键说明跨设备外设调用过程中组合键的应用流程。其中,组合键不仅仅包括键盘组合键,也可以包括其他多个电子设备的多种输入。比如,触摸屏的特殊手势,键盘和鼠标之间的组合配置等。相关的实现方式可参考图10和图12所示流程,对此本技术实施例不再一一说明。
[0316]
如此,使得组合键更加适配于跨设备外设控制场景,满足用户的使用需求,降低用户操作难度,提升用户使用体验。
[0317]
以上结合图5-图12详细说明了本技术实施例提供的外设控制方法。以下结合图13和图14详细说明本技术实施例提供的第一电子设备和第二电子设备。
[0318]
在一种可能的设计中,图13为本技术实施例提供的第一电子设备的结构示意图。如图13所示,第一电子设备1300可以包括:收发单元1301和处理单元1302。第一电子设备1300可用于实现上述方法实施例中涉及的第一电子设备的功能。
[0319]
可选地,收发单元1301,用于支持第一电子设备1300执行图5中的s501;和/或,用于支持第一电子设备1300执行图8中的s801、s805以及s809;和/或,用于支持第一电子设备1300执行图9中的s903和s906。
[0320]
可选地,处理单元1302,用于支持第一电子设备1300执行图5中的s502;和/或,用于支持第一电子设备1300执行图8中的s801-s804,s806a-s808a,s806b-s808b,以及s810-s811;和/或,用于支持第一电子设备1300执行图9中的s901,s902,以及s907-s910;和/或,用于支持第一电子设备1300执行图12中的s1201-s1203。
[0321]
其中,收发单元可以包括接收单元和发送单元,可以由收发器或收发器相关电路组件实现,可以为收发器或收发模块。第一电子设备1300中的各个单元的操作和/或功能分别为了实现上述方法实施例中所述的外设控制方法的相应流程,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能单元的功能描述,为了简洁,在此不再赘述。
[0322]
可选地,图13所示的第一电子设备1300还可以包括存储单元(图13中未示出),该存储单元中存储有程序或指令。当收发单元1301和处理单元1302执行该程序或指令时,使得图13所示的第一电子设备1300可以执行上述方法实施例中所述的外设控制方法。
[0323]
图13所示的第一电子设备1300的技术效果可以参考上述方法实施例中所述的外设控制方法的技术效果,此处不再赘述。
[0324]
除了以第一电子设备1300的形式以外,本技术提供的技术方案也可以为第一电子设备中的功能单元或者芯片,或者与第一电子设备匹配使用的装置。
[0325]
在一种可能的设计中,图14为本技术实施例提供的第二电子设备的结构示意图。如图14所示,第二电子设备1400可以包括:收发单元1401和处理单元1402。第二电子设备1400可用于实现上述方法实施例中涉及的第二电子设备的功能。
[0326]
可选地,收发单元1401,用于支持第二电子设备1400执行图8中的s805和s809;和/或,用于支持第二电子设备1400执行图9中的s903,s905,以及s906。
[0327]
可选地,处理单元1402,用于支持第二电子设备1400执行图8中的s806c-s808c,以及s806d-s808d;和/或,用于支持第二电子设备1400执行图9中的s904;和/或,用于支持第二电子设备1400执行图10中的s1001-s1003。
[0328]
其中,收发单元可以包括接收单元和发送单元,可以由收发器或收发器相关电路组件实现,可以为收发器或收发模块。第二电子设备1400中的各个单元的操作和/或功能分别为了实现上述方法实施例中所述的外设控制方法的相应流程,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能单元的功能描述,为了简洁,在此不再赘述。
[0329]
可选地,图14所示的第二电子设备1400还可以包括存储单元(图14中未示出),该存储单元中存储有程序或指令。当收发单元1401和处理单元1402执行该程序或指令时,使得图14所示的第二电子设备1400可以执行上述方法实施例中所述的外设控制方法。
[0330]
图14所示的第二电子设备1400的技术效果可以参考上述方法实施例中所述的外设控制方法的技术效果,此处不再赘述。
[0331]
除了以第二电子设备1400的形式以外,本技术提供的技术方案也可以为第二电子设备中的功能单元或者芯片,或者与第二电子设备匹配使用的装置。
[0332]
本技术实施例还提供一种芯片系统,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得该芯片系统实现上述任一方法实施例中的方法。
[0333]
可选地,该芯片系统中的处理器可以为一个或多个。该处理器可以通过硬件实现也可以通过软件实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现。
[0334]
可选地,该芯片系统中的存储器也可以为一个或多个。该存储器可以与处理器集成在一起,也可以和处理器分离设置,本技术实施例并不限定。示例性地,存储器可以是非瞬时性处理器,例如只读存储器rom,其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本技术实施例对存储器的类型,以及存储器与处理器的设置方式不作具体限定。
[0335]
示例性地,该芯片系统可以是现场可编程门阵列(field programmable gate array,fpga),可以是专用集成芯片(ap设备plication specific integrated circuit,asic),还可以是系统芯片(system on chip,soc),还可以是中央处理器(central processor unit,cpu),还可以是网络处理器(network processor,np),还可以是数字信号处理电路(digital signal processor,dsp),还可以是微控制器(micro controller unit,mcu),还可以是可编程控制器(programmable logic device,pld)或其他集成芯片。
[0336]
应理解,上述方法实施例中的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本技术实施例所公开的方法步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0337]
本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的外设控制方法。
[0338]
本技术实施例还提供一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的外设控制方法。
[0339]
另外,本技术实施例还提供一种装置。该装置具体可以是组件或模块,该装置可包括相连的一个或多个处理器和存储器。其中,存储器用于存储计算机程序。当该计算机程序被一个或多个处理器执行时,使得装置执行上述各方法实施例中的外设控制方法。
[0340]
其中,本技术实施例提供的装置、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法。因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
[0341]
结合本技术实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应地软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,ram)、闪存、只读存储器(read only memory,rom)、可擦除可编程只读存储器(erasable programmable rom,eprom)、电可擦可编程只读存储器(electrically eprom,eeprom)、寄存器、硬盘、移动硬盘、只读光盘(cd-rom)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(ap设备plication specific integrated circuit,asic)中。
[0342]
通过以上的实施方式的描述,本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明。实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成;即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0343]
在本技术所提供的几个实施例中,应该理解到,所揭露的方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的。例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式;例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0344]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0345]
计算机可读存储介质包括但不限于以下的任意一种:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0346]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何在本技术揭露的技术范围内的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1