一种输入方法及电子设备与流程

文档序号:27753286发布日期:2021-12-03 20:23阅读:100来源:国知局
一种输入方法及电子设备与流程

1.本发明涉及计算机软件领域,尤其涉及一种输入方法及电子设备。


背景技术:

2.目前市面上主流的电脑桌面操作系统有主流的移动操作系统有由于应用程序在不同操作系统上的运行机制各不相同,不同操作系统之间存在沟通和交互的壁垒,在很多方面不能做到简单有效的协调统一以及界面融合。因此在一般情况下,在操作系统a上的应用程序是无法安装和运行在操作系统b上面的,比如,操作系统中的应用程序不能直接安装和运行在操作系统上面。在一些情况下,用户需要在电脑端运行或系统的应用程序,我们可以通过虚拟机(virtualmachine)或者虚拟化(virtualization)技术去实现它,如使用安卓模拟器(simulator)、安卓容器(container)等技术。比如,用户可以先启动操作系统里的安卓模拟器,运行子系统,再从子系统里面启动应用程序。
3.这种情况下,我们可以称电脑为宿主机,运行的底层操作系统为宿主操作系统(host os)。宿主机上模拟器或容器等中运行的操作系统可以称为客户操作系统(guest os)。此时,客户操作系统可以运行在宿主机上,宿主机通过为模拟器或容器等虚拟一套独立于实际硬件的虚拟硬件环境(包括处理器,内存,i/o设备等),使得对于客户操作系统而言,在宿主机上的虚拟硬件环境中运行,与在实际硬件上运行没有差别。
4.由于不同操作系统之间存在沟通和交互的壁垒,位于模拟器或容器等中的客户操作系统与宿主机的宿主操作系统存在隔离,客户操作系统与宿主操作系统各自使用自己系统内的输入法进行文本输入。
5.如果要实现在宿主机中的客户操作系统的输入框中输入文本,一种方法是在客户操作系统中安装单独的输入法程序来实现文本输入,当用户点击文本框时,该输入法程序就会自动被客户操作系统调用该输入法并显示输入界面,用户通过客户操作系统中的输入法向输入框中输入字符。
6.上述方法的缺点有:1.需要在客户操作系统中,如安卓容器中,单独安装输入法,且调用客户操作系统侧的输入法时,可能需要使用鼠标点击虚拟键盘进行文本输入,相比使用物理键盘来说输入效率低下;2.宿主操作系统中的输入法和客户操作系统中的输入法不同,用户可能需要面对两个不同输入法的使用习惯,以及这两个输入法的词库无法共享;3.客户操作系统中输入法的虚拟键盘的弹出会遮挡显示界面,影响用户的使用体验。


技术实现要素:

7.本技术提供一种输入方法及电子设备,用来解决在客户操作系统中进行文本输入时,宿主操作系统侧的输入法与客户操作系统侧的输入法无法同时运行以及可能出现的输
入法服务状态混乱的问题。
8.上述目标和其他目标将通过独立权利要求中的特征来达成。进一步的实现方式在从属权利要求、说明书和附图中体现。
9.第一方面,本发明实施例提供了一种输入方法,应用于电子设备,该电子设备上运行有宿主操作系统和客户操作系统,其中,该方法包括:
10.电子设备显示宿主操作系统的第一用户界面,第一用户界面中显示有第一应用程序的第二用户界面,该第一应用程序加载于客户操作系统中,第二用户界面可以包括有第一输入窗口。电子设备在第一输入窗口检测到第一用户操作,然后电子设备可以在第一输入窗口中显示输入焦点,之后电子设备会去获取第一输入窗口所对应的输入通道。电子设备可以通过宿主操作系统侧的第一输入法获取到第一输入对象。在客户操作系统中的输入守护进程可以获取到宿主操作系统侧的前述第一输入对象,然后该输入守护进程通过前述输入通道将第一输入对象传递给第一输入窗口。电子设备从而可以在第一输入窗口中显示第一输入对象。宿主操作系统可以为主流的pc桌面系统,如操作系统、操作系统(内核),客户操作系统可以为主流的移动系统,如操作系统。在一些实施例中,宿主操作系统的第一用户界面可例如为操作系统的桌面,操作系统中安装有应用程序android版,即客户操作系统的第一应用程序可例如为应用程序android版,第一应用程序的第二用户界面可例如为android版的用户界面,第二用户界面中包括第一输入窗口,第一输入窗口可例如为会话界面中的聊天输入框。输入焦点表示是当前可以进行输入的位置,可以显示为一个闪烁的光标。输入通道是客户操作系统侧用户所使用的输入法和第一应用程序之间的输入接口,可用于将输入法获取的输入对象(如文本)传递给第一应用程序。第一输入对象具体可以为文本、图片、表情等等。
11.实施第一方面的方法,用户在客户操作系统上进行文本输入时,可以使用宿主操作系统侧的输入法进行输入,并且不需要安装客户操作系统侧的输入法;另外,用户还可以同时使用宿主操作系统侧的输入法与客户操作系统侧的输入法进行输入,提高了输入效率和输入法服务状态的稳定性。
12.结合第一方面,在一些实施例中,电子设备的宿主操作系统上运行有第一进程,该第一进程用于加载客户操作系统的镜像并运行客户操作系统。在一些实施例中,第一进程可以为安卓模拟器,第一进程还可以为安卓容器。
13.结合第一方面,在一些实施例中,该方法还可以包括:电子设备可以通过第一应用程序在宿主操作系统侧的窗口实例将第一输入对象传递给输入守护进程。
14.结合第一方面,在一些实施例中,该方法还可以包括:前述输入守护进程可以将第一输入对象传递给输入通道,输入通道可以将第一输入对象传递给第一应用程序,第一应用程序可以将第一输入对象传递给第一输入窗口所对应的视图。
15.结合第一方面,在一些实施例中,该方法还可以包括:如果检测到输入通道对于第一输入法可用,则输入守护进程可以将第一输入对象传递给输入通道。
16.结合第一方面,在一些实施例中,该方法还可以包括:如果输入通道未被客户操作系统侧的第二输入法占用,则电子设备可以确定输入通道对于第一输入法可用。
17.结合第一方面,在一些实施例中,该方法还可以包括:如果输入通道被客户操作系统侧的第二输入法占用,但第一输入法获取第一输入对象的优先级高于第二输入法获取第二输入对象,则电子设备可以确定输入通道对于第一输入法可用。
18.结合第一方面,在一些实施例中,该方法还可以包括:在第一输入法占用输入通道时,如果在第一时间内,如五分钟内,没有检测到第一输入法获取到第一输入对象时,电子设备可以取消第一输入法占用该输入通道。
19.结合第一方面,在一些实施例中,该方法还可以包括:在第一输入法占用输入通道但并没有传递第一输入对象时,一旦检测到第二输入法获取到第二输入对象,电子设备就可以取消第一输入法占用输入通道。
20.结合第一方面,在一些实施例中,该方法还可以包括:当检测到第一输入法占用输入通道时,电子设备可以在第二用户界面中显示第一指示信息,第一指示信息用于表示该电子设备能够使用第一输入法在第二用户界面中实现输入。
21.结合第一方面,在一些实施例中,该方法还可以包括:当在第二用户界面中检测到显示输入焦点时,电子设备可以在第二用户界面中显示第二指示信息,第二指示信息用于表示电子设备能够使用第二输入法在第二用户界面中实现输入。
22.结合第一方面,在一些实施例中,该方法还可以包括:当在第二用户界面中检测到退出输入状态的第二用户操作时,电子设备可以在第二用户界面中取消显示第二指示信息。
23.结合第一方面,在一些实施例中,第二用户操作可以包括以下一项或多项:点击第二用户界面中的输入窗口以外的位置、点击第一用户界面中的第二用户界面以外的位置、退出第二用户界面等。
24.结合第一方面,在一些实施例中,第一用户操作是选中第一输入窗口的操作,第一用户操作可以包括以下一项或多项:选中第一输入窗口的鼠标点击操作、作用于触控面板的触控操作、语音指令操作、隔空手势操作等。
25.结合第一方面,在一些实施例中,该方法还可以包括:在第一输入窗口检测到第一用户操作时,电子设备可以显示第二输入法的虚拟输入键盘。
26.结合第一方面,在一些实施例中,该方法还可以包括:电子设备检测到虚拟输入键盘中的第一按键被点击,电子设备可以通过第二输入法获取第一按键被点击所产生的第二输入对象,电子设备可以使用前述输入通道将第二输入对象传递给第一输入窗口,电子设备可以在第一输入窗口中显示第二输入对象。
27.结合第一方面,在一些实施例中,第一输入法获取到第一输入对象包括以下一项或多项:通过电子设备的物理键盘接收到的输入对象、通过第一输入法的软键盘接收到的输入对象、通过语音指令接受到的输入对象、通过触控板接收到的输入对象、通过触摸屏接收到的输入对象等。
28.第二方面,本发明实施例提供了一种电子设备,该电子设备包括:存储器以及耦合于所述存储器的处理器,存储器中存储有计算机可执行指令,处理器用于调用指令以使得电子设备实现如第一方面中电子设备具有的任一功能,这里不再赘述。
29.第三方面,本发明实施例提供了一种计算机存储介质,该存储介质中存储有计算机程序,该计算机程序包括可执行指令,该可执行指令当被处理器执行时使该处理器执行
如第一方面所提供的方法对应的操作。
30.根据本技术的技术方案,用户在客户操作系统上进行文本输入时,可以使用宿主操作系统侧的输入法进行输入,并且不需要安装客户操作系统侧的输入法;另外,用户还可以同时使用宿主操作系统侧的输入法与客户操作系统侧的输入法进行输入,提高了输入效率和输入法服务状态的稳定性,给用户提供了一个友好的输入操作环境,提升了用户的使用体验。
附图说明
31.为了更清楚地说明本技术实施例或背景技术中的技术方案,下面将对本技术实施例或背景技术中所需要使用的附图进行说明。
32.图1是本发明实施例提供的一种电子设备的硬件结构示意性图;
33.图2是本发明实施例提供的一种软件结构框图;
34.图3是现有技术中的一种输入法的框架图;
35.图4是本发明实施例提供的一种用户界面的示意性图;
36.图5是本发明实施例提供的一种用户界面的示意性图;
37.图6a是本发明实施例提供的一种用户界面的示意性图;
38.图6b是本发明实施例提供的一种用户界面的示意性图;
39.图7是本发明实施例提供的一种用户界面的示意性图;
40.图8是本发明实施例提供的一种输入实现流程的示意图;
41.图9a是本发明实施例提供的一种输入方法的流程图;
42.图9b是本发明实施例提供的一种输入方法的流程图。
具体实施方式
43.下面结合附图对本技术实施例进行具体说明。本技术以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本技术的限制。如在本技术的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。还应当理解,本技术中使用的术语“和/或”是指并包含一个或多个所列出项目的任何或所有可能组合。
44.本技术提供一种输入方法及电子设备,用来解决不能使用宿主操作系统侧输入法向客户操作系统中输入文本的问题,以及用来解决在客户操作系统中进行输入时,宿主操作系统侧的输入法与客户操作系统侧的输入法无法同时运行以及可能出现的输入法服务状态混乱的问题。输入法即输入法应用程序,又称输入法编辑器(英文:input methodeditor),是实现显示屏上信息输入的软件。输入的信息包括但不限于汉字、字符、数字、图片等。本技术旨在客户操作系统中创建输入守护进程,该输入守护进程可以通过socket或binder等高性能通信通道接受来自宿主操作系统侧输入法的文本输入,然后当该输入守护进程获取到当前焦点的输入窗口的输入通道时,可以通过该输入窗口的输入通道向当前焦点的输入窗口发送来自宿主操作系统侧输入法的输入信息,该输入窗口可以接受并显示来自宿主操作系统侧输入法的输入信息。其中,焦点指的是可以进行输入的位置,可以表现为一个闪烁的光标,输入窗口是指能够获取到输入焦点,可接受、容纳、编辑输入内
容的窗口,具体可以为输入框、文本框、图片框、地址栏、搜索框、可编辑页面(如记事本、word页面)、可容纳输入内容的表格(如excel表格)等等。另外,在其他一些实施例中,用于向宿主操作系统侧获取输入文本的输入守护进程还可以是其他类型的进程或程序,比如可以是后台进程,也可以是其他应用程序,本技术对此不作任何限制。
45.根据本技术的技术方案,用户在客户操作系统上进行文本输入时,可以使用宿主操作系统侧的输入法进行输入,并且不需要安装客户操作系统侧的输入法;另外,用户还可以同时使用宿主操作系统侧的输入法与客户操作系统侧的输入法进行输入,提高了输入效率和输入法服务状态的稳定性,给用户提供了一个友好的输入操作环境,提升了用户的使用体验。
46.本技术实施例中,当宿主机上的模拟器或容器等中运行有客户操作系统(guest os)时,宿主操作系统(host os)可以通过为客户操作系统(guest os)虚拟一套独立于实际硬件的虚拟硬件环境(包括处理器,内存,i/o设备等),使得对于客户操作系统而言,在宿主操作系统(host os)上的虚拟硬件环境中运行,与在实际硬件上运行没有差别。
47.本技术实施例中的术语“用户界面(user interface,ui)”,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。应用程序的用户界面是通过java、可扩展标记语言(extensible markup language,xml)等特定计算机语言编写的源代码,界面源代码在终端设备上经过解析,渲染,最终呈现为用户可以识别的内容,比如图片、文字、按钮等控件。控件(control)也称为部件(widget),是用户界面的基本元素,典型的控件有工具栏(toolbar)、菜单栏(menu bar)、文本框(text box)、按钮(button)、滚动条(scrollbar)、图片和文本。界面中的控件的属性和内容是通过标签或者节点来定义的,比如xml通过<textview>、<imgview>、<videoview>等节点来规定界面所包含的控件。一个节点对应界面中一个控件或属性,节点经过解析和渲染之后呈现为用户可视的内容。此外,很多应用程序,比如混合应用(hybrid application)的界面中通常还包含有网页。
48.用户界面常用的表现形式是图形用户界面(graphic user interface,gui),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的一个图标、窗口、控件等界面元素,其中控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、widget等可视的界面元素。
49.本技术实施例中,对宿主操作系统和客户操作系统的操作系统类型并不作任何限制。本技术实施例提供的一种输入方法,应用于电子设备100上,电子设备100可以称为宿主机,安装有宿主操作系统,在宿主操作系统之上可以加载有客户操作系统。示例性地,本技术实施例以宿主操作系统为操作系统、操作系统,客户操作系统为操作系统为例,阐述本技术实施例内容。本领域技术人员可以理解,本技术实施例也可以以其他操作系统来实现,本技术对此不作任何限制。
50.下面介绍本实施例中提供的示例性电子设备100。电子设备100可以搭载有某种操作系统,搭载的操作系统可以但不限于常见的操作系统、操作系统、操作系统、操作系统等,电子设备100可以是台式电脑、笔记本电脑、平板电脑等等。
51.图1示出了电子设备100的硬件结构示意图。
52.电子设备100可以包括处理器110,内部存储器120,外部存储器接口121,通用串行总线(universal serial bus,usb)接口130,充电管理模块140,电源管理模块141,电池142,显示屏151,按键152,摄像头153,指示器154,音频模块160,扬声器161,受话器162,麦克风163,耳机接口164,有线通信模块171,无线通信模块172,天线1,传感器模块180等。传感器模块180可以包括压力传感器180a,指纹传感器180b,温度传感器180c,触摸传感器180d,环境光传感器180e等。
53.可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本技术另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。例如,在一些实施例中,在以上所述的硬件之外,电子设备100可能还具有马达,移动通信模块(2g/3g/4g/5g),sim卡接口,esim芯片等等。因此,关于电子设备100的具体硬件结构,可以根据具体情况,包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。
54.处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
55.其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
56.处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
57.在一些实施例中,处理器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)接口等。
58.usb接口130是符合usb标准规范的接口,具体可以是mini usb接口,micro usb接口,usb type c接口等。usb接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。该接口还可以用于连接其他电子设备,例如ar设备等。
59.可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本技术另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
60.内部存储器120可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器120的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器120可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据等。此外,内部存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。
61.外部存储器接口121可以用于连接外部存储卡,例如移动硬盘,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口121与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储硬盘中。
62.充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过usb接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
63.电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器120,外部存储器121,显示屏151,摄像头153,和无线通信模块172等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
64.电子设备100通过gpu,显示屏151,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏151和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
65.显示屏151用于显示图像,视频等。显示屏151包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,lcd),有机发光二极管(organic light-emitting diode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode,amoled),柔性发光二极管(flex light-emitting diode,fled),miniled,microled,micro-oled,量子点发光二极管(quantum dot light emitting diodes,qled)等。在一些实施例中,电子设备100可以包括1个或n个显示屏151,n为大于1的正整数。
66.键盘152可以包括物理键盘、触摸式键盘等。电子设备100可以接收键盘的输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。需要说明的是,在本技术实施例中,键盘上的按键可以分为字符按键和非字符按键;其中,当用户敲击或按压字符按键时,产生字符按键对应的操作命令,设备可以根据字符按键对应的操作命令生成文本内容。字符按键具体可以包括数字按键9(0-9)、字母按键(a-z)、标点符号按键(例如,,、。、!、?等等)、特殊字符按键(例如#、¥、%、*、\等等)。而非字符按键是指键盘上字符按键之外的按键。具体为键盘的控制(ctrl)、上档(shift)、换档(alt)、大写锁定(caps lock)、插入(insert)、起始(home)、结束(end)、删除(del)、上页(pgup)、下页(pgdn)、回车(enter)、回
格(backspace)以及方向键等非字符按键。用户通过敲击或按压键盘的非字符按键的操作,可生成相应的操作命令。操作命令可以在获得输入焦点的输入框内进行光标移位、大小写切换、插入、删除、换行、发送等动作。
67.电子设备100可以通过isp,摄像头153,视频编解码器,gpu,显示屏151以及应用处理器等实现拍摄功能。
68.摄像头153用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,ccd)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,cmos)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给isp转换成数字图像信号。isp将数字图像信号输出到dsp加工处理。dsp将数字图像信号转换成标准的rgb,yuv等格式的图像信号。在一些实施例中,电子设备100可以包括1个或n个摄像头153,n为大于1的正整数。
69.数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
70.视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,mpeg)1,mpeg2,mpeg3,mpeg4等。
71.npu为神经网络(neural-network,nn)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过npu可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
72.电子设备100的网络通信功能可以通过有线通信模块171,无线通信模块172,天线1,调制解调处理器以及基带处理器等实现。
73.天线1用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
74.调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器161,受话器162等)输出声音信号,或通过显示屏151显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。
75.有线通信模块171可以提供应用在电子设备100上的包括以太网、局域网、互联网等有线通信的解决方案。有线通信模块171可以是集成至少一个通信处理模块的一个或多个器件。
76.无线通信模块172可以提供应用在电子设备100上的包括无线局域网(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)等无线通信的解决方案。无线通信模块172可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块172经由天线1接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块172还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线1转为电磁波辐射出去。
77.电子设备100可以通过音频模块160,扬声器161,受话器162,麦克风163,耳机接口164,以及应用处理器等实现音频功能。例如音乐播放,录音等。
78.音频模块160用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块160还可以用于对音频信号编码和解码。在一些实施例中,音频模块160可以设置于处理器110中,或将音频模块160的部分功能模块设置于处理器110中。
79.扬声器161,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器161收听音乐,或收听免提通话。
80.受话器162,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器162靠近人耳接听语音。
81.麦克风163,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风163发声,将声音信号输入到麦克风163。电子设备100可以设置至少一个麦克风163。在另一些实施例中,电子设备100可以设置两个麦克风163,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风163,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
82.耳机接口164用于连接有线耳机。耳机接口164可以是usb接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,omtp)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the usa,ctia)标准接口。
83.传感器模块180可以包括压力传感器180a,指纹传感器180b,温度传感器180c,触摸传感器180d,环境光传感器180e等。
84.压力传感器180a用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180a可以设置于显示屏151。压力传感器180a的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180a,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏151,电子设备100根据压力传感器180a检测所述触摸操作强度。电子设备100也可以根据压力传感器180a的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。
85.指纹传感器180b用于采集指纹。电子设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
86.温度传感器180c用于检测温度。在一些实施例中,电子设备100利用温度传感器180c检测的温度,执行温度处理策略。例如,当温度传感器180c上报的温度超过阈值,电子设备100执行降低位于温度传感器180c附近的处理器的性能,以便降低功耗实施热保护。在
另一些实施例中,当温度低于另一阈值时,电子设备100对电池142加热,以避免低温导致电子设备100异常关机。在其他一些实施例中,当温度低于又一阈值时,电子设备100对电池142的输出电压执行升压,以避免低温导致的异常关机。
87.触摸传感器180d,也称“触控面板”。触摸传感器180d用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏151提供与触摸操作相关的视觉输出。
88.环境光传感器180e用于感知环境光亮度。电子设备100可以根据感知的环境光亮度自适应调节显示屏151亮度。环境光传感器180e也可用于摄像头153拍摄时自动调节白平衡。
89.电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以客户操作系统为操作系统为例,示例性说明其分层架构。需要说明的是,本技术实施例仅以操作系统为示例说明本实施例技术方案所需的软件环境,本领域技术人员可以理解,本技术实施例也可以以其他操作系统来实现。
90.图2是本技术实施例的操作系统的软件结构框图。
91.分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将操作系统分为四层,从上至下分别为应用程序层,应用程序框架层,函数库层,以及内核层。
92.1、应用程序(applications)层
93.应用程序层是操作系统的最上一层,应用程序层可以包括一系列应用程序包。如图2所示,应用程序包可以包括输入法,wlan,日历,蓝牙,图库,浏览器,音乐等应用程序。当然,对于开发者来说,开发者可以编写应用程序并安装到该层。
94.在本技术实施例中,应用程序层内安装有一个或多个输入法应用,例如输入法、法、输入法等,本技术实施例对此不做任何限制。
95.一般而言,应用程序是使用java语言开发,通过调用应用程序框架层所提供的应用程序编程接口(application programming interface,api)来完成。
96.2、应用程序框架(application framework)层
97.应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。开发者可以通过应用程序框架来与操作系统的底层(例如函数库、内核等)进行交互,开发自己的应用程序。该应用程序框架主要是操作系统的一系列的服务和管理系统。
98.如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,输入法管理器,内容感知服务,视图系统,通知管理器,资源管理器等。
99.窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
100.内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,浏览历史和书签,电话簿等。
101.视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用
于构建应用程序。它具体包括列表(list)、网格(grid)、文本(text)、按钮(button),以及图片(image)等多种类型。显示界面可以由一个或多个视图组成的。
102.通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音等。
103.资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
104.如图2所示,应用程序框架层内还包括输入法管理器(input method manager,imm),输入法的实现需要操作系统各个层的参与。对于用户的输入,需要linux内核层的各种驱动的支持才能识别;需要调用输入法的应用程序运行在应用程序层;应用程序框架层用于显示应用程序的内容、用户界面(user interface,ui)、通知等;函数库层为输入法的运行提供函数支持,例如对于代码的解析、字体及图形的支持、输入动画效果的显示等等。
105.具体地,输入法框架(input method framework,imf)是操作系统的一个系统组件,开发者可以在基于imf来开发一种输入法应用程序。参见图3,imf主要包含三个部分:输入法管理器,输入法编辑器,客户端应用程序。
106.(1)、输入法管理器(inputmethodmanager,imm)是管理imf其他部分之间交互的一个中心点。它可以看成是一个客户端api,存在于各个应用程序的上下文中,用来与管理所有进程间交互的全局系统服务进行通信。
107.(2)、输入法编辑器(input method editor,ime):用来实现一个具体的交互模型,该交互模型允许用户生成文本,处理用户的输入。系统绑定一个当前正在用的输入法,使其创建和运行,系统决定该输入法何时隐藏或者显示它的ui。同一时间只能有一个ime运行。
108.(3)、客户端应用程序(client applications,ca)指当前调用输入法的应用程序,例如,例如,等,通过imm控制输入焦点和ime的状态。一次只能有一个客户端应用程序使用ime。
109.这三个部分需用共同合作才能完成输入法的工作。例如打开一个需要调用输入法的应用程序,当输入框获得输入焦点时,ca会通知imm打开输入法,然后imm查看当前选中的ime,并调用该ime。当用户提交了输入时,ime会将输入信息传递给ca完成输入。
110.下面结合图3对imf三部分的交互过程进行阐述。
111.imm:完成ime和ca的绑定,同时对输入法模块进行一些参数设置和安全控制,起到中间协调的角色。其中,imm中的inputmethodmanagerservice是整个系统中,一切与输入法有关的总控制中心,ca请求调用输入法即是通过这个进程;windowmanagerservice负责显示输入法,接收用户事件,获得焦点认证。imm中的inputmethodmanagerservice进程会通过ca的inputmethodclient进程获取当前绑定的ca的信息,比如输入框类型;imm中的inputmethodmanagerservice进程会通过ime的inputview进程启动、修改、隐藏ime。
112.ime:接收用户的按键输入信息,并调用客户端接口把输入信息传递给ca。其中,inputview进程可以从键盘获取用户的输入信息,也可以通过ca的inputcontext
(inputconnection)进程对ca的文本信息进行处理,比如删除字符、替换字符、控制光标位置等操作。
113.ca:用于显示用户的输入信息,同时为ime提供当前文本框的内容。其中,ca的inputmethodmanager进程通过imm的inputmethodmanagerservice进程间接控制ime的显示或者隐藏;ca的inputmethodmanager进程通过ime的inputmethodsession(inputmethodsession wrapper)进程为ime提供当前文本框的状态,比如光标改变等信息,从而让ime调整输入状态;ui控件可以处理一些未经ime处理的按键信息,比如home键信息,使其直接到达ca;inputcontext(inputconnection)进程可以在ca与ime的交互完成后,把输入信息显示在用户界面上;inputmethodclient作为输入法管理服务的客户端实现,用于标识当前的客户端应用程序并接收来自管理服务端的状态变化。
114.一般,应用程序层中的输入法应用可支持多种类型的虚拟键盘(或称为软键盘)。例如,输入法应用中设置有九宫格类型的拼音键盘、全键盘类型的拼音键盘、英文键盘、数字键盘、表情键盘或者语音键盘等,本技术实施例对此不做任何限制。
115.示例性的,表情键盘中可以包括表情、符号、图片或动图等元素。例如,显示界面中可以显示的表情键盘为emoji键盘,emoji键盘中包括多种表情元素;显示界面中可以显示的表情键盘为颜文字(kaomoji)键盘,颜文字键盘中包括由符号元素组成的表情;显示界面中可以显示的表情键盘为表情包键盘,表情包键盘中可以包括图片或动图。
116.在本技术一些实施例中,电子设备可以检测输入窗口中所需要输入内容的类型,根据其类型来提供合适的虚拟键盘,例如,当电子设备检测到显示的输入窗口中所需要的输入内容是文本类型时,则输入法应用可以显示全键盘类型的拼音键盘,当电子设备检测到显示的输入窗口中所需要的输入内容是数字类型时,则输入法应用可以显示数字键盘。
117.输入法应用提供的虚拟键盘中还可以包括用于切换上述键盘类型的切换按钮。该切换按钮可用于不同类型键盘之间的切换,用户通过多次点击切换按钮可按照一定的顺序依次切换当前显示的虚拟键盘,本技术对此不做任何限制。
118.另外,仍如图2所示,在本技术实施例中,应用程序框架层中还设置有向输入法应用开放的内容感知服务(content sensor service)。该内容感知服务用于获取聊天类应用(例如)中聊天界面内的聊天消息或者聊天消息的类型。例如,文本类型的聊天消息、语音类型的聊天消息或者图片类型的聊天消息等。
119.输入法应用可预先在内容感知服务中进行注册。例如,输入法应用可向内容感知服务注册自身的包名,并请求内容感知服务对的聊天界面中新产生的聊天消息进行监听。这样,当该聊天界面中产生新的聊天消息时,内容感知服务可提取该聊天消息并确定出该聊天消息的具体类型。进而,内容感知服务可将聊天消息的具体类型发送给输入法应用,使得输入法应用可以按照该具体类型在聊天界面中显示对应类型的虚拟键盘。例如,当最近一条的聊天消息为语音类型时,输入法应用可对应显示语音键盘;当最近的聊天消息为表情类型时,输入法应用可对应显示表情键盘等。
120.也就是说,电子设备可以基于最近一条的聊天消息自动显示与该聊天消息的类型匹配的虚拟键盘,从而减少用户在使用输入法应用输入信息的过程中频繁切换虚拟键盘的操作,提高了终端的输入效率以及用户的输入体验。
121.在本技术的一些实施例中,输入法应用也可以调用上述内容感知服务主动获取最
近的聊天消息或聊天消息的类型。例如,输入法应用可以在用户点击的输入框时调用上述内容感知服务获取最近的聊天消息。或者,内容感知服务也可以在输入法的虚拟键盘未被收起时,主动将最近的聊天消息发送给输入法应用,这样,在虚拟键盘显示的过程中,输入法应用也可以根据最近的聊天消息的类型及时切换虚拟键盘的类型。其中,上述输入法虚拟键盘的具体显示方法可参见下述实施例中的相关描述,故此处不予赘述。
122.3、函数库(libraries)层
123.函数库层是应用程序框架的支撑,是连接应用程序框架层与内核层的重要纽带。函数库层包括一些由计算机程序c语言或c++语言编译的函数库,这些函数库能被操作系统中的不同的组件使用,它们通过应用程序框架层为开发者提供服务。
124.具体地,函数库层可以包括多个功能模块。例如:界面管理库(surface manager),多媒体库(media libraries),三维图形处理库(例如:opengl es),二维图形引擎(例如:sgl)等。
125.界面管理库用于对显示子系统进行管理,主要负责管理针对显示系统的访问,具体用于在执行多个应用程序时候,负责管理显示与存取操作间的互动,另外也用于2d绘图与3d绘图进行显示合成,为多个应用程序提供了2d和3d图层的融合。
126.多媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:mpeg4,h.264,mp3,aac,amr,jpg,png等。
127.三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
128.二维图形引擎是2d绘图的绘图引擎。
129.函数库层中还可以包括其他的用于实现手机各个功能的函数库,例如:sgl(scalable graphics library):基于xml(extensible markup language)文件的2d图形图像处理引擎;ssl(secure sockets layer):位于tvp/ip协议与各种应用层协议之间,为数据通讯提供支持;等等。
130.android runtime是一种在操作系统上的运行环境,是操作系统所使用的一种新的虚拟机。android runtime可以包括核心函数库和虚拟机。核心函数库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。android runtime负责安卓系统的调度和管理。在android runtime中,采用aot(ahead-of-time)技术,应用程序在第一次安装的时候,该应用程序的字节码就会被预先编译成机器码,让应用程序成为真正的本地应用,之后再次运行,就省去了编译这一步骤,启动和执行都会变得更加快速。
131.在本技术一些实施例中,android runtime可以由核心函数库(core libraries)和dalvik虚拟机(dalvik virtual machine)代替。核心函数库提供了java语言api中的大多数功能,主要通过java原生界面(java native interface,jni)的方式向应用程序框架层提供调用底层程序库的接口。同时也包含了该操作系统的一些核心api,如android.os、android.net、android.media等等。dalvik虚拟机使用一种jit(just-in-time)的运行时编译的机制,每次启动一个进程都需要虚拟机在后台重新编译字节码,会对启动速度有一定的影响。每一个应用程序都运行在是一个dalvik虚拟机中的实例中,每一个dalvik虚拟机实例都是一个独立的进程空间。dalvik虚拟机设计成在一个设备可以高效地运行多个虚拟机。dalvik虚拟机可执行文件格式是.dex,dex格式是专为dalvik设计的一种压缩格式,适
合内存和处理器速度有限的系统。需要提出的是dalvik虚拟机依赖于linux内核提供基本功能(线程、底层内存管理)。可以理解的是,android runtime、dalvik属于不同类型的虚拟机,本领域技术人员可以在不同情况下选用不同形式的虚拟机。
132.应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机可用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
133.4、内核(kernel)层
134.内核层提供操作系统的核心系统服务,如安全性、内存管理、进程管理、网络协议栈和驱动模型等都基于内核。内核同时也作为硬件和软件栈之间的抽象层。该层有许多与移动设备相关的驱动程序,主要的驱动有:显示驱动;作为输入设备的键盘驱动;基于内存技术设备的flash驱动;wi-fi驱动;音频驱动;蓝牙驱动;摄像头驱动;基于的帧缓冲驱动等。
135.下面结合附图介绍一下本技术实施例涉及的人机交互场景。
136.本实施例中,如图4所示,电子设备100为台式计算机,电子设备100可以包括有输入输出设备:显示屏401,物理键盘402和鼠标403等,用户可以通过敲击键盘的操作404实现文本输入。
137.电子设备100上安装的操作系统为操作系统,即宿主操作系统,电子设备100上还安装有安卓模拟器(simulator),安卓模拟器中加载有操作系统,即客户操作系统。用户可以点击显示屏401上显示的安卓模拟器的应用图标405,打开该应用程序,此时显示屏401上会显示安卓模拟器的用户界面406,安卓模拟器中运行的是操作系统。
138.在一个示例中,如图4所示,安卓模拟器安装并运行有应用程序,是一款聊天应用。在安卓模拟器的用户界面406中显示有应用的会话界面407,同时,在安卓模拟器的顶部状态栏(可以显示网络状态、电量、时间等信息)中,可以显示有小图标408,表示此时前台正在运行应用。用户可以通过操控鼠标指针410在安卓模拟器的用户界面实现交互。在应用的会话界面407中还有输入栏411,输入栏411中可以包括输入框412,可以用于文本输入,输入栏411中还可以有用于输入语音、表情、图片等内容的控件。
139.本实施例中,操作系统中安装的中文输入法可以是拼音输入法,该输入法界面可以包括输入窗口413和状态条414。其中输入窗口413用于显示用户的输入字符和候选文本,在输入法处于输入字符的状态时显示,可以包括上面一排的所输入的拼音字符,以及下一排的候选字,输入所需的候选字对应的数字,即可输入该词到输入框412,也可以在选定之后按下空格键输入该词到输入框412。状态条414用于显示当前的输入法状态,例如所示的状态条414中的小图标从左到右依次表示:拼音输入法的标识、中/英文输入状态、中文/英文标点、表情、语音输入、软键盘、皮肤、设置菜单,状态条414可以被隐藏。另外,当启用输入法作为当前操作系统使用的输入法时,在桌面的右下角的任务栏中还可以显示输入法的标识415。图4所示的拼音输入法的输入窗口413和状态条414仅为一个示例,其他实施例中可以显示不一样的输入法界面,
本技术对此不作限制。
140.另外,不限于拼音输入法,本技术实施例对操作系统所安装的输入法的类型不作任何限制,例如还可以是英文输入法,五笔输入法,注音输入法,语音输入法,手写输入法或以上多种输入法混合的输入法等。
141.本实施例中,用户可以使用外接的物理键盘402实现在安卓模拟器中的输入框412中输入文本,使用的输入法是操作系统中安装的拼音输入法。在一些实施例中,安卓模拟器中可能没有安装操作系统侧的输入法,此时安卓模拟器可以将宿主操作系统的输入法作为默认的输入法,方便用户使用物理键盘进行输入。另外,用户也可以自行安装并设置默认输入法为宿主操作系统侧的输入法,在设置界面中的输入法设置选项中会显示安卓操作系统侧已安装的输入法选项。
142.在安卓模拟器默认输入法为操作系统中的拼音输入法时,用户可以使用外接的物理键盘402在安卓模拟器中实现文本输入,如图4所示,在安卓模拟器顶部状态栏中可以显示有键盘的标识409,又称为第一指示信息,表示在安卓模拟器中可以使用宿主操作系统侧的输入法进行文本输入。用户操控鼠标点击输入框412,输入框412中会出现光标416,表示此时该输入框412为可输入状态。然后用户可以通过敲击键盘的操作404输入字符,响应于用户操作,操作系统侧的拼音输入法被调用,显示出该拼音输入法的输入窗口413,在用户选择好候选词后,该候选词就会输入到输入框412中。不限于用户敲击键盘的操作404,使用宿主操作系统侧的输入法的方式还可以包括鼠标点击软键盘的输入、语音输入等等,本技术不作任何限制。
143.在本实施例中,安卓模拟器中也可以安装有自己的输入法,在图5的示例中,安卓模拟器中安装有手机输入法,操作系统中安装的是拼音输入法。在显示屏501显示的桌面中可以显示有拼音输入法的状态条512以及桌面的右下角的任务栏中显示输入法的标识513。操作系统侧提供的虚拟键盘可以包括文本键盘、数字键盘、符号键盘、表情键盘、语音键盘、手写键盘等多种类型,文本键盘又可以包括中文键盘、英文键盘等多种类型的键盘,表情键盘又可以包括emoji键盘、颜文字键盘或者表情包键盘等多种类型的键盘,本技术对此不作任何限制,在虚拟键盘中可以有按键用来触发不同类型之间键盘的切换。
144.在安卓模拟器默认输入法为操作系统中的手机输入法时,用户既可以通过使用外接的物理键盘502在安卓模拟器中实现文本输入,也可以通过操控鼠标503的操作504实现文本输入。在一个示例中,如图5所示,在安卓模拟器中运行有应用,在应用的会话界面505的底部有输入框508,可以用于文本输入。用户操控鼠标指针点击输入框508,输入框508中会出现光标509,以及手机输入法的虚拟键盘510,表示此时该输入框508为可输入状态。此时在安卓模拟器的顶部状态栏中可以显示有键盘的标识506(又称为第一指示信息)和手机输入法的标识507(又称为第二指示信息),表示安卓模拟器在当前输入状态下,既可以使用宿主操作系统侧的输入法进行文本输入,又可以使用自身安装的手机输入法进行文本输入。
145.在一些实施例中,当在第二用户界面中检测到退出输入状态的第二用户操作时,
电子设备在第二用户界面中会取消显示第二指示信息。第二用户操作可以包括以下一项或多项:点击第二用户界面中的输入窗口以外的位置、点击第一用户界面中的第二用户界面以外的位置、退出第二用户界面。
146.在图5的示例中,用户操控鼠标指针点击输入框508,输入框508中会出现光标509,以及手机输入法的虚拟键盘510,表示客户操作系统中的手机输入法被调用。然后用户可以通过点击虚拟键盘510中指示的虚拟按键来输入字符,此时在虚拟键盘510中会显示该手机输入法的输入窗口511,该输入窗口511用于显示用户的输入字符和候选文本,比如上面一排显示所输入的字符,以及下一排显示候选文本,鼠标点击所需的候选文本所在的位置,或者使用键盘选择所需的候选文本并敲击空格键,即可输入该词到输入框508。
147.在本技术实施例中,当用户使用客户操作系统侧的输入法,如手机输入法进行输入的时候,客户操作系统侧还存在一个后台进程处于驻留状态,随时可以接受用户在宿主操作系统侧的输入信息,如获取拼音输入法的文本,即输入框508可以同时获取来自于宿主操作系统侧输入法的输入信息和来自于客户操作系统侧输入法的输入信息,并且不需要设置切换两侧的输入法,提高了输入效率和输入法服务状态的稳定性,给用户提供了一个友好的输入操作环境,提升了用户的使用体验。
148.在本实施例中,如图6a所示,在安卓模拟器安装并设置默认输入法为手机输入法时,用户仍然可以通过使用外接的物理键盘604在输入框609中进行文本输入,并不需要将默认输入法改为宿主操作系统侧的输入法的选项。在一个示例中,如图6a,在显示屏601显示的桌面中可以显示有拼音输入法的状态条614以及桌面的右下角的任务栏中显示输入法的标识615。在安卓模拟器中运行有应用,在应用的会话界面605的底部有输入框608,可以用于文本输入。用户操控鼠标603点击输入框608,输入框608中会出现光标609,以及手机输入法的虚拟键盘610,表示此时该输入框608为可输入状态。此时在安卓模拟器的顶部状态栏中可以显示有键盘的标识606(又称为第一指示信息)和手机输入法的标识607(又称为第二指示信息),表示安卓模拟器在当前输入状态下,既可以使用宿主操作系统侧的输入法进行文本输入,又可以使用自身安装的自身安装的手机输入法进行文本输入。
149.虚拟键盘610的上部可以显示有手机输入法的状态条611,示例图6a中的状态条611中的小图标从左到右依次表示:手机输入法的标识、表情、语音输入、键盘类型选择、工具箱、搜索、收起虚拟键盘。
150.如图6a所示,在检测到用户敲击键盘的操作604时,安卓模拟器会调用操作系统侧的拼音输入法,此时会显示拼音输入法的输入窗口612,输入窗口612用于显示用户通过物理键盘输入的字符和候选文本,比如可以包括上面一排的所输入的拼音字符,以及下一排的候选字,输入所需的候选字对应的数字,即可输入该词到输入框612,也可以在选定之后按下空格键输入该词到输入框612。可以注意的是,当用户使用宿主操作系统侧的输入法进行输入的时候,客户操作系统侧的输入法的后台进程可以处于驻留状态,随时可以接受用户的输入操作。
151.安卓模拟器在检测到用户点击收起虚拟键盘图标613时,虚拟键盘610会被收起,用户界面参考图6b。在另一种实施例中,安卓模拟器可以在检测到用户使用物理键盘进行输入操作时,自动将虚拟键盘610收起,增大可视用户界面,避免不必要的键盘遮挡会话界面的情况。或者开发人员设置虚拟键盘610并不会自动显示,需要用户主动选择显示才会显示。对于虚拟键盘610被收起的触发事件,本技术不作限制。
152.在图6b中,手机输入法的虚拟键盘610被隐藏,用户通过敲击键盘的操作604进行输入操作,安卓模拟器会通过一个守护进程获取来自于操作系统侧的拼音输入法的文本,此时操作系统侧的拼音输入法是输入窗口612的输入来源。在用户敲击键盘时,显示屏601中会显示拼音输入法的输入窗口612,输入窗口612用于显示用户通过键盘输入的字符和候选文本,比如可以包括上面一排的所输入的拼音字符,以及下一排的候选字,输入所需的候选字对应的数字,即可输入该词到输入框612,也可以在选定之后按下空格键输入该词到输入框612。
153.如图6b,在安卓模拟器的顶部状态栏中可以显示有键盘的标识606(又称为第一指示信息)和手机输入法的标识607(又称为第二指示信息),表示安卓模拟器在当前输入状态下,既可以使用宿主操作系统侧的输入法进行文本输入,又可以使用自身安装的手机输入法进行文本输入,手机输入法和用于获取宿主操作系统侧输入信息的守护进程当前都处于活动状态。
154.另外,考虑到可能出现宿主侧输入法与客户侧输入法同时输入的情况下,可能出现的情况有,显示宿主侧输入法输入的文本,或显示客户侧输入法输入的文本,或者两侧都不显示,或者先后均显示,开发人员可以设置输入法或输入进程等占用输入通道的优先级,以防输入混乱,本技术对此不作任何限制。
155.本技术还提供了另外一个实施例,如图7所示,电子设备100为台式计算机,电子设备100可以包括有输入输出设备:显示屏701,物理键盘702和鼠标703等,用户可以通过敲击键盘的操作704实现文本输入。
156.在本实施例中,电子设备100上安装的宿主操作系统为操作系统,操作系统是以为内核的操作系统,显示屏701显示的桌面的左下角可以显示有菜单控件705。电子设备100上还可以安装有安卓容器,安卓容器中可以运行有操作系统,即客户操作系统,在操作系统中可以安装有应用程序。本实施例中,以应用程序为android版为例,说明本实施例内容。用户可以点击显示屏701上显示的android版的应用图标706,打开该应用程序,此时显示屏701上会显示701上会显示android版的用户界面708。
157.是一款聊天应用程序,如图7所示,在android版的用户界面708中显示有该android版的标题栏707和应用的会话界面709,用户可以通过操控鼠标指针710在的用户界面实现交互。在应用的会话界面709中还有输入栏711,输入栏711中可以包括输入框712,可以用于文本输入,输入栏711中还可以有用于输入语音、表情、图片等内容的控件。
158.本实施例中,操作系统中安装的中文输入法可以是拼音输入法,该
输入法界面可以包括输入窗口714和状态条715。其中输入窗口714用于显示用户的输入字符和候选文本,在输入法处于输入字符的状态时显示,可以包括上面一排的所输入的拼音字符,以及下一排的候选字,输入所需的候选字对应的数字,即可输入该词到输入框712,也可以在选定之后按下空格键输入该词到输入框712。状态条715用于显示当前的输入法状态,例如所示的状态条715中的小图标从左到右依次表示:拼音输入法的标识、中/英文输入状态、中文/英文标点、表情、语音输入、软键盘、皮肤、设置菜单,状态条715可以被隐藏。另外,当启用输入法作为当前操作系统使用的输入法时,在桌面的右下角的任务栏中还可以显示输入法的标识716。图7所示的拼音输入法的输入窗口714和状态条715仅为一个示例,其他实施例中可以显示不一样的输入法界面,本技术对此不作限制。
159.另外,不限于拼音输入法,本技术实施例对操作系统所安装的输入法的类型不作任何限制,例如还可以是英文输入法,五笔输入法,注音输入法,语音输入法,手写输入法或以上多种输入法混合的输入法等。
160.本实施例中,用户可以使用外接的物理键盘702实现在安卓模拟器中的输入框712中输入文本,使用的输入法是操作系统中安装的拼音输入法。在一些实施例中,中,android版中可能没有安装操作系统侧的输入法,此时android版可以将宿主操作系统的输入法作为默认的输入法,方便用户使用物理键盘进行输入。另外,用户也可以自行安装并设置默认输入法为宿主操作系统侧的输入法,在设置界面中的输入法设置选项中会显示安卓操作系统侧已安装的输入法选项。
161.在android版的默认输入法为操作系统中的拼音输入法时,用户可以使用外接的物理键盘702在android版中实现文本输入,用户操控鼠标点击输入框712,输入框712中会出现闪烁的光标713,表示此时该输入框712为可输入状态。然后用户可以通过敲击键盘的操作704输入字符,响应于用户操作,操作系统侧的拼音输入法被调用,显示出该拼音输入法的输入窗口714,在用户选择好候选词后,该候选词就会输入到输入框712中。不限于用户敲击键盘的操作704,使用宿主操作系统侧的输入法的方式还可以包括鼠标点击软键盘的输入、语音输入等等,本技术不作任何限制。
162.在操作系统的android版中使用android输入法进行输入的情形,可以参考前述图5所阐述的实施例,以及在操作系统的android版中,宿主操作系统侧与客户操作系统侧的两侧输入法同时进行输入的场景,可以参考前述图6a、图6b所阐述的实施例,此处不再赘述。
163.本实施例中,在电子设备100上可以部署一个或多个安卓模拟器或安卓容器,用来运行操作系统,本实施例对此不进行任何限定。
164.基于前述实施例,结合图8介绍本技术一个实施例的输入实现过程。
165.参见图8,在使用宿主操作系统的输入法向客户操作系统的输入窗口中输入内容时,可能涉及以下9个步骤,本实施例中以客户操作系统为时,可能涉及以下9个步骤,本实施例中以客户操作系统为的第一应用程序为为例进行说明。可以理解的是,该实施例仅为一个示例,在其他实施例中可以根据具体情况,包括更多或更少的步骤,本技术不作任何限制。
166.步骤

:用户点击侧应用程序中的聊天输入框。
167.步骤

:宿主操作系统向侧发送触发点击该聊天输入框相关的消息,侧的window manager服务会根据该消息更新当前焦点所在的视图(view)为的聊天输入框。
168.步骤

:windowmanager服务向input method manager发送消息,该消息触发在input method manager中记录当前获得焦点的view的输入通道(input channel)。
169.步骤

:用户通过宿主系统输入法向侧微信应用程序的输入框中输入文本。
170.步骤

:侧微信应用界面所对应的在宿主系统侧的窗口实例首先接收到来自于宿主系统输入法的输入文本。实例可以包括一个或多个进程。
171.步骤

:前述步骤

中的窗口实例通过高性能通信机制(如socket、binder等)将宿主侧的输入文本发送给侧的输入守护进程(input daemon)。该守护进程为非android输入法服务,因此android侧可以安装其他输入法程序,并可以将android侧其他输入法程序设置为默认输入法。在其他一些实施例中,用于向宿主操作系统获取输入文本的输入守护进程还可以是其他类型的进程或程序,比如可以是后台进程,也可以是其他应用程序,本技术对此不作任何限制。
172.步骤

:当input daemon接受到宿主侧传递的输入文本后,input daemon向inputmethodmanager服务请求获取当前焦点的view的inputchannel。
173.步骤

:input daemon获取到当前焦点的view的inputchannel。
174.步骤

:input daemon通过inputchannel向当前焦点的view传递来自于宿主系统输入法的输入文本。
175.可以注意到,在以上整个使用宿主系统输入法向侧应用程序的view输入的过程中,无需修改侧的默认输入法,也无需向系统注册相关输入法服务。
176.结合上述实施例及相应附图,下面介绍本技术提供的一种输入方法。
177.参见图9a和图9b,图9a和图9b是本技术实施例提供的一种输入方法的流程示意图。在本实施例中,电子设备100中运行有宿主操作系统和客户操作系统,在一些实施例中,宿主操作系统可以为操作系统,客户操作系统可以为操作系统,参考前述图4、图5、图6a、图6b描述的实施例。在另一些实施例中,宿主操作系统还可以为操作系统(内核),客户操作系统可以为操作系统,参考前述图7描述的实施例。在电子设备的宿主操作系统上运行有第一进程,第一进程用于加载客户操作系统的镜像并运行客户操作系统,在一些实施例中,第一进程例如可以为安卓模拟器、安卓容器等。在其他实施例中,宿主操作系统和客户操作系统也可以是其他类型的操作系统,本技术不作限制。
178.宿主操作系统与客户操作系统之间可以建立连接,该连接使得宿主操作系统和客户操作系统之间能够互相通信。连接的本质就是通信各方用一种共同认可的机制进行数据传输。对于宿主操作系统与客户操作系统建立连接的方式,本技术不作任何限制。可选地,在本实施例的一个实现方式中,宿主操作系统与客户操作系统之间可以通过socket(套接
字)机制通信,socket是一种应用进程之间常用的通信方式,是在应用层和传输层之间的一个抽象层,它把tcp/ip层复杂的操作抽象为几个简单的接口供应用层调用,方便应用进程之间的通信。不限于socket机制,宿主操作系统与客户操作系统之间还可以通过pipe(管道)机制或binder机制等高性能通信机制进行通信,本技术对此不作任何限制。
179.本实施例中,在客户操作系统的第一输入窗口中进行输入可以存在两种情况,情况1:用户使用宿主操作系统侧的第一输入法进行输入;情况2:用户使用客户操作系统侧的第二输入法进行输入。
180.下面分别说明情况1、情况2的实现过程。
181.情况1(s101-s113):用户使用宿主操作系统侧的第一输入法进行输入。
182.如图9a所示,该方法的情况1具体可包括:
183.s101,宿主操作系统显示宿主操作系统的第一用户界面,第一用户界面中显示有客户操作系统的第一应用程序的第二用户界面,第二用户界面中包括第一输入窗口。
184.在客户操作系统中,可能存在多个应用程序的用户界面并列显示的情况,本实施例不作限制。
185.其中,第一输入窗口是指能够获取到输入焦点,可接受、容纳、编辑输入内容的窗口,具体可以为输入框、文本框、图片框、地址栏、搜索框、可编辑页面(如记事本、word页面)、可容纳输入内容的表格(如excel表格)等等。需要说明的是,上文仅对第一输入窗口进行举例说明,并非穷举。
186.结合图7所示的实施例,电子设备100中运行有宿主操作系统,即操作系统,宿主操作系统的第一用户界面可例如为操作系统的桌面,操作系统中安装有应用程序android版,即客户操作系统的第一应用程序可例如为应用程序android版,第一应用程序的第二用户界面可例如为android版的用户界面708,第二用户界面中包括第一输入窗口,第一输入窗口可例如为会话界面中的聊天输入框712。
187.s102,宿主操作系统检测到第二用户界面中发生鼠标点击事件。
188.在一个示例中,用户可以使用鼠标将鼠标指针定位到客户操作系统中的第二用户界面中的第一输入窗口的位置并点击,这时宿主操作系统可以检测到客户操作系统中的第二用户界面中发生了鼠标点击事件。不限于使用鼠标控制,用户还可以选择使用触控板控制、物理键盘控制、语音控制等用户操作来实现点击或选中某个位置。
189.s103,宿主操作系统向客户操作系统发送鼠标点击事件及鼠标指针的第一位置。
190.在一个示例中,当电子设备100检测到第二用户界面中的第一位置被点击后,宿主操作系统可以向客户操作系统发送鼠标点击事件及鼠标指针的第一位置的消息。该消息可以用于通知操作系统的窗口管理服务(windowmanagerservice)来更新其当前输入焦点所在的输入窗口。
191.s104,客户操作系统根据第一位置确定第二用户界面中的第一输入窗口被点击。
192.结合图7所示的实施例,应用程序android版可以根据第一位置的坐标确定会话界面中的聊天输入框712被点击。该点击操作又称为第一用户操作,第一用户操作可以是用户使用鼠标点击第一输入窗口所在的位置,也可以是用户通过手指点击触摸屏
或触控板来点击第一输入窗口所在的位置,还可以是语音指令操作或隔空手势操作,本技术对第一用户操作的操作方式不作任何限制。
193.s105,客户操作系统在第一输入窗口中显示输入焦点。
194.在第一输入窗口被点击后,第一输入窗口可以获取到输入焦点并显示该输入焦点,例如输入焦点可以显示为一个闪烁的光标,当第一输入窗口中显示输入焦点时,可以表示第一输入窗口当前处于可输入状态。
195.结合图7所示的实施例,例如用户操控鼠标点击输入框712,输入框712中会出现闪烁的光标713,表示此时该输入框712为可输入状态。
196.s106,客户操作系统获取第一输入窗口所对应的输入通道。
197.输入通道为客户操作系统侧用户所使用的输入法和第一应用程序之间的输入接口,可用于将输入法获取的输入对象(如文本)传递给第一应用程序。
198.在一个示例中,在检测到第一输入窗口被点击后,安卓操作系统的窗口管理服务可以向输入法管理服务(inputmethodmanagerservice,imms)发送消息,该消息用于向输入法管理服务中注册当前获得输入焦点的第一输入窗口的输入通道,即第一输入窗口被注册为输入通道的目标窗口。该输入通道是客户操作系统侧输入法和第一应用程序之间的通信信道,可以将输入法获取的输入对象(如文本)传递给第一应用程序。
199.s107,宿主操作系统检测到宿主操作系统侧的物理键盘中的按键(如按键“q”)被敲击。
200.在本实施例中,用户可以通过敲击电子设备100的物理键盘其中的按键来进行输入操作。
201.结合图7所示的实施例,例如用户可以通过敲击物理键盘702的操作704来进行输入操作。
202.具体地,用户可以操控电子设备100的输入设备,向客户操作系统侧的第一输入窗口输入文本等内容。容易理解,电子设备100具有输入设备,例如个人电脑,其常规输入设备为键盘。再例如手机,其输入设备为其触摸屏。另外,麦克风、扫描仪、摄像头等也可以作为电子设备100的输入设备。
203.对于电子设备100而言,其输入设备可以为自带的,也可以为外接的。例如电子设备100为笔记本电脑时,其输入设备可以为其自带的键盘、摄像头、麦克风等,也可以为外接的键盘、摄像头、麦克风等。
204.在一些实施例中,输入设备可以为物理键盘。用户可以通过敲击或按压键盘上的字符按键,生成相应的操作命令,使得电子设备100可根据操作命令生成文本内容,以得到待显示内容。
205.在一些实施例中,输入设备可以为触摸屏或触控板。用户可以通过点击触摸屏中的虚拟键盘上代表的字符按键,生成相应的操作命令,从而得到待显示文本内容。
206.在一些实施例中,输入设备可以为麦克风。用户可以通过麦克风向电子设备100输入语音。电子设备100将用户输入语音转换成文本,得到输入内容。
207.在一些实施例中,输入设备可以为摄像头。用户可以通过摄像头拍摄图片向第一电子设备输入内容。电子设备100可以从摄像头拍摄的图片提取文本,得到输入内容。具体可以采用光学字符识别(optical character recognition,ocr)技术进行文本提取。电子
设备100也可以从摄像头拍摄的图片中提取图像,并作为输入内容。
208.在一些实施例中,输入设备可以为扫描仪。用户可以通过扫描仪向电子设备100输入内容。电子设备100可以从通过扫描仪输入的扫描图片中提取文本,得到待显示内容。具体可以采用ocr技术进行文本提取。电子设备100也可以从扫描图片中提取图像,得到待显示内容。
209.在一些实施例中,输入设备可以为手写板或手写笔,用于向电子设备100发送的文本内容或图像为通过手写板或手写笔输入的文本或图像。
210.s108,宿主操作系统显示宿主操作系统侧的第一输入法的界面(可选的)。
211.当宿主操作系统检测到物理键盘被用户敲击的时候,宿主操作系统的输入法应用管理器会提供输入法管理服务,该输入法管理服务可以调用宿主操作系统侧用户选定或系统选定(即默认)的第一输入法。
212.可选的,在宿主操作系统检测到物理键盘中的按键被敲击时,输入法应用在前台运行,此时可以在第一用户界面中显示第一输入法的界面。例如,结合图7所示的实施例,操作系统中安装的第一输入法可以是拼音输入法,拼音输入法的界面可以包括输入窗口714和状态条715。其中输入窗口714用于显示用户的输入字符和候选文本,在输入法处于输入字符的状态时显示,可以包括上面一排的所输入的拼音字符,以及下一排的候选字,输入所需的候选字对应的数字,即可输入该词到输入框712,也可以在选定之后按下空格键输入该词到输入框712。状态条715用于显示当前的输入法状态,例如所示的状态条715中的小图标从左到右依次表示:拼音输入法的标识、中/英文输入状态、中文/英文标点、表情、语音输入、软键盘、皮肤、设置菜单,状态条715可以被隐藏。另外,当启用输入法作为当前操作系统使用的输入法时,在桌面的右下角的任务栏中还可以显示输入法的标识716。
213.可以注意的是,当用户使用宿主操作系统侧的第一输入法进行输入的时候,客户操作系统侧的第二输入法的后台进程处于驻留状态,随时可以接受用户的输入操作。
214.可选的,在宿主操作系统检测到物理键盘中的按键被敲击时,在第一用户界面中也可以不显示第一输入法的界面,例如,使用物理键盘进行英文字符的输入时,可能并没有显示第一输入法的界面,第一输入法可以直接将物理键盘中的按键所表示的“q”直接转换为英文字符“q”,不需要额外显示第一输入法的界面。
215.s109,宿主操作系统通过宿主操作系统侧的第一输入法获取按键(例如按键“q”)被敲击所产生的第一输入对象(如英文字符“q”)。
216.第一输入法可以将物理键盘中被敲击的按键转换成对应的第一输入对象,例如,点击物理键盘中显示“q”的按键,第一输入法可以将其转换为英文字符“q”。
217.其中,第一输入对象具体可以为文本、图片、表情等等,本实施例不作任何限制。
218.s110,客户操作系统通过输入守护进程向宿主操作系统获取第一输入对象(如英文字符“q”)。
219.客户操作系统侧的输入守护进程(inputdaemon)可以一直处于驻留状态,随时获取来自于宿主操作系统的第一输入对象。
220.在其他一些实施例中,用于向宿主操作系统获取第一输入对象的输入守护进程还可以是其他类型的进程或程序,比如可以是后台进程,也可以是其他应用程序,本技术对此
不作任何限制。
221.s111,客户操作系统确认输入通道是否处于可用状态(可选的)。
222.可选的,客户操作系统的输入守护进程在获取到来自于宿主操作系统的第一输入对象后,可以查询前述输入通道当前是否处于可用状态。如果查询的结果是输入通道当前处于可用状态,则执行步骤s112。
223.在一些实施例中,如果输入通道未被客户操作系统侧的第二输入法占用,则可以确定输入通道对于第一输入法可用。
224.在一些实施例中,如果输入通道被客户操作系统侧的第二输入法占用,但第一输入法获取第一输入对象的优先级高于第二输入法获取第二输入对象,则可以确定输入通道对于第一输入法可用。
225.在一些实施例中,输入通道也可能当前处于不可用状态,输入通道处于不可用的状态的情况可能有多种,例如可能是该输入通道被设置为当前不接受来自于宿主操作系统侧的输入法的文本,比如设置了当前禁用宿主侧的键盘输入,也可能是当前该输入通道处于被占用状态,比如客户操作系统侧的输入法正在进行输入,占用了该输入通道等等,在此不做限制。
226.如果查询的结果是输入通道当前处于不可用状态,则处理结果可能有多种,例如,可以取消当前的输入操作,也可以将第一输入对象暂存,等检测到输入通道再次处于可用状态时再重新尝试输入等等,本实施例不作任何限制。
227.在一些实施例中,在第一输入法占用输入通道时,如果在第一时间内没有检测到第一输入法获取到第一输入对象时,电子设备可以取消第一输入法占用输入通道。第一时间例如可以为5分钟。
228.在一些实施例中,在第一输入法占用输入通道但并没有传递第一输入对象时,一旦检测到第二输入法获取到第二输入对象,电子设备就可以取消第一输入法占用输入通道。
229.上述几种情况仅为对输入通道“占用策略”的举例,并不对本技术实施例构成限制。
230.s112,客户操作系统使用输入通道将输入守护进程获取到的第一输入对象(如英文字符“q”)传递给第一输入窗口。
231.客户操作系统的输入守护进程获得该输入通道的使用权,并将第一输入对象发送给该输入通道,第一输入对象经过输入通道被传递给第一应用程序,第一应用程序再将第一输入对象传递给当前获取到输入焦点的第一输入窗口。
232.s113,客户操作系统在第一应用程序的第一输入窗口中显示第一输入对象(如英文字符“q”)。
233.情况2(s201-s213):用户使用客户操作系统侧的第二输入法进行输入。
234.如图9b所示,该方法的情况2具体可包括:
235.s201,宿主操作系统显示宿主操作系统的第一用户界面,第一用户界面中显示有客户操作系统的第一应用程序的第二用户界面,第二用户界面中包括第一输入窗口。
236.参考前述步骤s101。
237.s202,宿主操作系统检测到第二用户界面中发生鼠标点击事件。
238.参考前述步骤s102。
239.s203,宿主操作系统向客户操作系统发送鼠标点击事件及鼠标指针的第一位置。
240.参考前述步骤s103。
241.s204,客户操作系统根据第一位置确定第二用户界面中的第一输入窗口被点击。
242.参考前述步骤s104。
243.s205,客户操作系统在第一输入窗口中显示输入焦点。
244.参考前述步骤s105。
245.s206,客户操作系统获取第一输入窗口所对应的输入通道。
246.参考前述步骤s106。
247.s207,客户操作系统显示客户操作系统侧的第二输入法的虚拟输入键盘(可选的)。
248.可选的,在用户点击第一输入窗口后,安卓操作系统的输入法应用管理器会提供输入法管理服务(inputmethodmanagerservice,imms),该输入法管理服务可以调用安卓操作系统侧用户选定或系统选定(即默认)的第二输入法。在安卓操作系统的输入法管理服务调起第二输入法后,第二输入法的虚拟输入键盘被拉起显示在第二用户界面中。
249.结合图5所示的实施例,例如用户操控鼠标指针点击输入框508,输入框508中会出现光标509,以及客户操作系统侧的手机输入法的虚拟键盘510,表示客户操作系统中的手机输入法被调用。然后用户可以通过点击虚拟键盘510中指示的虚拟按键来输入字符,此时在虚拟键盘510中会显示该手机输入法的输入窗口511,该输入窗口511用于显示用户的输入字符和候选文本,比如上面一排显示所输入的字符,以及下一排显示候选文本,鼠标点击所需的候选文本所在的位置,或者使用键盘选择所需的候选文本并敲击空格键,即可输入该词到输入框508。
250.可选的,第二输入法的虚拟输入键盘也可以不显示,例如,用户可以选择隐藏起第二输入法的虚拟输入键盘,或者可以在检测到用户使用宿主侧的物理键盘进行输入时,虚拟输入键盘自动收起。
251.操作系统侧提供的虚拟键盘可以包括文本键盘、数字键盘、符号键盘、表情键盘、语音键盘、手写键盘等多种类型,文本键盘又可以包括中文键盘、英文键盘等多种类型的键盘,中文键盘又可以包括拼音键盘、五笔键盘、注音键盘等,中文拼音键盘又可以包括九宫格类型的拼音键盘、全键盘类型的拼音键盘等,表情键盘又可以包括emoji键盘、颜文字键盘或者表情包键盘等多种类型的键盘,本技术对此不作任何限制,在虚拟键盘中可以有按键用来触发不同类型之间键盘的切换。
252.s208,宿主操作系统检测到第二用户界面中发生鼠标点击事件。
253.在一个示例中,用户可以使用鼠标将鼠标指针定位到客户操作系统中的第二用户界面中的虚拟输入键盘的位置并点击,这时宿主操作系统可以检测到客户操作系统中的第二用户界面中发生了鼠标点击事件。不限于使用鼠标控制,用户还可以选择使用触控板控制、物理键盘控制、语音控制等用户操作来实现点击某个位置。
254.s209,宿主操作系统向客户操作系统发送鼠标点击事件及鼠标指针的第二位置。
255.在一个示例中,当电子设备100检测到第二用户界面中的第二位置被点击后,宿主操作系统可以向客户操作系统发送鼠标点击事件及鼠标指针的第二位置。
256.s210,客户操作系统根据第二位置确定虚拟输入键盘中的按键(例如按键“s”)被点击。
257.在一个示例中,客户操作系统中的第二输入法可以根据第二位置的坐标确定第二输入法的虚拟输入键盘中的第一按键(例如按键“s”)被点击。
258.s211,客户操作系统通过客户操作系统侧的第二输入法获取按键(例如按键“s”)被点击所产生的第二输入对象(如英文字符“s”)。
259.第二输入法可以将虚拟输入键盘中被点击的按键转换成对应的第二输入对象,例如,点击虚拟输入键盘中显示“s”的按键,第二输入法可以将其转换为英文字符“s”。
260.其中,第二输入对象具体可以为文本、图片、表情等等,本实施例不作任何限制。
261.s212,客户操作系统使用输入通道将第二输入法获取的第二输入对象(如英文字符“s”)传递给第一输入窗口。
262.客户操作系统的第二输入法将获取到的第二输入对象发送给前述输入通道,第二输入对象经过输入通道被传递给第一应用程序,第一应用程序再将第二输入对象传递给当前获取到输入焦点的第一输入窗口。
263.s213,客户操作系统在第一应用程序的第一输入窗口中显示第二输入对象(如英文字符“s”)。
264.实施本技术发明方法的实施例,用户可以使用宿主操作系统侧输入法向客户操作系统中输入文本,以及客户操作系统中获得输入焦点的输入窗口可以同时获取来自于宿主操作系统侧输入法的输入信息和来自于客户操作系统侧输入法的输入信息,并且不需要设置切换两侧的输入法,提高了输入效率和输入法服务状态的稳定性,给用户提供了一个友好的输入操作环境,提升了用户的使用体验。
265.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
266.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
267.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
268.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或
多个方框中指定的功能。
269.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
270.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1