CN108139862B - 多窗口键盘 - Google Patents

多窗口键盘 Download PDF

Info

Publication number
CN108139862B
CN108139862B CN201680059684.XA CN201680059684A CN108139862B CN 108139862 B CN108139862 B CN 108139862B CN 201680059684 A CN201680059684 A CN 201680059684A CN 108139862 B CN108139862 B CN 108139862B
Authority
CN
China
Prior art keywords
application
input keyboard
soft input
window
user interface
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.)
Active
Application number
CN201680059684.XA
Other languages
English (en)
Other versions
CN108139862A (zh
Inventor
S·J·元
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN108139862A publication Critical patent/CN108139862A/zh
Application granted granted Critical
Publication of CN108139862B publication Critical patent/CN108139862B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04803Split screen, i.e. subdividing the display area or the window area into separate subareas

Abstract

本公开的实施例描述了与多窗口软输入键盘应用相关联的系统和方法。显示多窗口软输入键盘应用。所述软输入键盘应用被用于提供针对一个或多个应用的应用命令控制。所述软输入键盘应用可以包括第一应用窗口,所述第一应用窗口显示针对所述软输入键盘应用的服务的两个或更多个用户界面元素。在示例中,所述第一应用窗口基于所检测到的前台应用进行显示/更新。所述用户界面元素能够用于所检测到的前台应用的应用命令控制。一种示例性软输入键盘应用还可以包括第二应用窗口,所述第二应用窗口显示软输入键盘。所述第二应用窗口的显示可以更新,包括基于对第一应用窗口的用户界面元素的选择而替换软输入键盘的显示。还描述了其他示例。

Description

多窗口键盘
背景技术
处理设备的使用常常迫使用户在应用之间进行切换以将信息/内容从一个应用传输至另一个应用。例如,需要诸如选择、复制、和粘贴之类的多个操作来完成信息从一个应用到另一个应用的传输。这可能会为用户造成乏味的体验。此外,应用通常缺乏与其他应用通信的能力,因此进一步限制了用户体验。由此,本申请所涉及的是经改善的应用命令控制的一般技术环境。
发明内容
本公开的非限制性示例描述了针对多窗口软输入键盘应用的系统和方法。在一个示例中,显示多窗口软输入键盘应用。所述软输入键盘应用被用于提供针对一个或多个应用的应用命令控制。软输入键盘应用可以包括第一应用窗口,所述第一应用窗口显示用于所述软输入键盘应用的服务的两个或更多个用户界面元素(element)。在示例中,所述第一应用窗口基于所检测到的前台应用进行显示/更新。所述用户界面元素能够用于所检测到的前台应用的应用命令控制。一种示例性软输入键盘应用还可以包括第二应用窗口,所述第二应用窗口显示软输入键盘。所述第二应用窗口的显示可以更新,包括基于对第一应用窗口的用户界面元素的选择而替换软输入键盘的显示。
本公开的额外的非限制性示例描述了与多窗口软输入键盘应用相关联的系统和方法,所述多窗口软输入键盘应用与其他执行应用进行交互。在示例中,显示作为前台应用的第一应用操作。还显示软输入键盘应用。所述软输入键盘应用可以检测接收到对所述第一应用的输入。所述软输入键盘应用将与在所述第一应用中接收到的输入相关联的数据中继到至少一个服务。从所述服务接收的结果在所述软输入键盘应用内被显示。
另外,本公开的非限制性示例描述了可以将软输入键盘应用作为服务来提供的示例性系统。在示例中,显示软输入键盘应用。示例性软输入键盘应用可以包括第一应用窗口,所述第一应用窗口显示针对所述软输入键盘应用的服务的两个或更多个用户界面元素。在示例中,所述第一应用窗口基于所检测到的前台应用进行更新。所述用户界面元素能够用于所检测到的前台应用的应用命令控制。一种示例性软输入键盘应用还可以包括第二应用窗口,所述第二应用窗口显示软输入键盘。在示例中,所述第二应用窗口的显示是通过以下方式而被更新的:基于对第一应用窗口的用户界面元素的选择来替换软输入键盘的显示。可以在所检测的前台数据和所述软输入键盘应用中的至少一个中接收输入。从所述系统收集的用户上下文信号以及与所接收的输入相关联的数据各自被传输至通过分布式网络与示例性系统连接的至少一个处理设备。所接收的结果数据可以在所述系统上被显示。
提供了该发明内容以用简化形式引入在以下的具体实施方式中进一步描述的概念的选择。该发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用来限制所要求保护的主题的范围。示例的额外的方面、特征和优点将随后的描述中被部分阐述并且将部分地从该描述中是显而易见的,或者可以通过实践本公开而习得。
附图说明
参考以下附图对非限制和非穷举的示例进行描述。
图1是示出了可以利用其实践本公开的方面的计算设备的示例的框图。
图2A和2B是可以利用其实践本公开的方面的移动计算设备的简化框图。
图3是可以在其中实践本公开的方面的分布式计算系统的简化框图。
图4A示出了示例性处理设备视图,其示出了可以利用其实践本公开的方面的应用与软输入键盘应用之间的交互。
图4B-4H示出了示例性处理设备视图,其突出显示了可以利用其实践本公开的方面的示例性软输入键盘应用的示例性用户界面元素。
图5-12示出了示例性处理设备视图,其突出显示了可以利用其实践本公开的方面的应用与软输入键盘应用之间的交互。
图13示出了能够在一个或多个计算设备上实现的示例性系统,在所述一个或多个计算设备上可以实践本公开的方面。
图14A-14E示出了示例性方法,其涉及与可以利用其实践本公开的方面的示例性软输入键盘应用的交互。
图15是示例性方法,其用于与可以利用其实践本公开的方面的一个或多个前台应用进行交互。
图16是示例性方法,其用于将可以利用其实践本公开的方面的示例性软输入键盘应用作为服务来提供。
具体实施方式
本公开描述了可以与任何应用进行交互的通用软输入键盘应用的示例。所述软输入键盘可以是多窗口键盘应用,其针对在运行于处理设备上的操作系统(OS)的前台中执行的任何应用提供应用控制。前台应用可以是具有输入焦点的任何应用。作为示例,前台应用可以执行并且被显示在处理设备的显示器上。示例性软输入键盘应用可以与其他执行应用(例如,前台应用)进行交互以改进与其他应用的用户交互。软输入键盘应用可以用于:寻找答案,定位文件,翻译数据,使用来自其他应用的特征,接收建议/推荐,利用应用扩展能力改进内容的选择,评估前台应用内的线程的上下文并且提供内容的自动完成/到这样的前台应用中的自动插入,容易地向前台应用传输从与软输入键盘应用通信的服务中获得的数据而无需选择/复制/粘贴并且提供软输入键盘功能,除此之外还有其他功能,所有这些都在一个产品之中。在示例中,示例性软输入键盘应用的自动完成特征是基于用户的上下文(例如,位置、日历),而不是在常规的键盘/软输入面板中呈现的一般自动完成。本领域技术人员将会认识到,示例性软输入键盘应用不限于在上文中所描述的动作/特征。在本文中提供了示例性软输入键盘应用的另外的细节和示例。
在使用应用时,用户常常受限于由应用所提供的功能。由此,用户通常同时执行多个应用来完成不同的任务。例如,考虑执行多个应用的移动设备的用户。由于移动设备上的可用显示空间的限制,用户可能被迫在多个应用间来回切换以便执行任务。本公开的示例提供针对这样的技术问题的解决方案。由此,本公开提供了多个技术效果,其包括但不限于:可缩放和可扩展的单个键盘应用,用于检测其他应用并与之通信的能力,用于评估包括执行线程的前台应用的上下文的能力,通过使得完成任务所需要执行的应用数量最小化来降低处理负载,对第三方服务的可扩展性,用户与处理设备之间的交互的改进,用于将软输入键盘应用作为服务来提供的能力,以及对为了完成不同任务所需要被存储在处理设备上的应用的数量的降低,此外还有其他优点。
图1-3以及相关联的描述提供了可以对在其中可以实践本发明的示例的多种操作环境的讨论。然而,关于图1-3所示出并讨论的设备和系统是出于示例和说明的目的,而不对可以用来实践在本文中所描述的发明的示例的大量计算设备配置进行限制。
图1是示出了可以利用其实践本公开的示例的计算设备102(例如,移动计算设备)的物理组件的框图。在基本配置中,计算设备102可以包括至少一个处理单元104和系统存储器106。取决于计算设备的配置和类型,系统存储器106可以包括但不限于易失性存储(例如,随机存取存储器)、非易失性存储(例如,只读存储器)、闪速存储器、或者这些存储器的任何组合。系统存储器106可以包括操作系统107以及一个或多个程序模块108,所述一个或多个程序模块108适合于运行诸如IO管理器124、其他工具126、和应用128之类的软件程序/模块120。作为示例,系统存储器106可以存储供执行的指令。系统存储器106的其他示例可以存储与应用相关联的数据。例如,操作系统107可以适用于控制计算设备102的操作。此外,本发明的示例可以结合图形库、其他操作系统、或任何其他应用程序来实践,并且不限于任何特定应用或系统。该基本配置是在图1中由虚线122内的那些组件示出的。计算设备102可以具有额外的特征或功能。例如,计算设备102还可以包括例如磁盘、光盘、或磁带之类的额外的数据存储设备(可移动的和/或不可移动的)。这些额外的存储是在图1中由可移动存储设备109和不可移动存储设备110示出的。
如上所述,多个程序模块和数据文件可以被存储在系统存储器106中。当在处理单元104上执行时,程序模块108(例如,输入/输出(I/O)管理器124、其他工具126、和应用128)可以执行过程,所述过程包括但不限于在该公开通篇中描述的操作的阶段中的一个或多个阶段。可以根据本发明的示例使用的其他程序模块可以包括:电子邮件和联系人应用、文字处理应用、电子表格应用、数据库应用、幻灯片演示应用、绘图或计算机辅助应用程序、照片编辑应用、创作应用,等等。
此外,本发明的示例可以被实现在包括分立电子元件的电子电路中、包含逻辑门的封装或集成电子芯片中、利用微处理器的电路中、或者包含电子元件或微处理器的单个芯片上。例如,可以经由片上系统(SOC)来实践本发明的示例,其中图1中所示出的每个或许多组件可以被集成到单个集成电路上。这样的SOC设备可以包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元、以及各种应用功能,其全部作为单个集成电路而被集成(或“烧”)到芯片基底上。当经由SOC进行操作时,可以经由在单个集成电路(芯片)上与计算设备503的其他组件集成的专用逻辑来对在本文中所描述的功能进行操作。还可以使用能够执行逻辑操作(例如AND、OR和NOT)的其他技术来实践本发明的实施例,所述其他技术包括但不限于机械、光学、流体、和量子技术。另外,可以在通用计算机内或在任何其他任何电路或系统中实践本发明的实施例。
计算设备102还可以具有一个或多个输入设备112,例如键盘、鼠标、笔、声音输入设备、用于语音输入/识别的设备、触摸输入设备等。还可以包括诸如显示器、扬声器、打印机等的输出设备114。前述设备是示例并且可以使用其他设备。计算设备104可以包括允许与其他计算设备118进行通信的一个或多个通信连接116。合适的通信连接116的示例包括但不限于RF发射机、接收机和/或收发机电路;通用串行总线(USB)、并行、和/或串行端口。
如在本文中所使用的术语计算机可读介质可以包括计算机存储介质。计算机存储介质可以包括以任何用于存储信息(例如,计算机可读指示、数据结构、或程序模块)的方法或技术来实现的易失性的和非易失性的、可移动的和不可移动的介质。系统存储器106、可移动存储设备109、和不可移动存储设备110都是计算机存储介质的示例(即,存储器存储)。计算机存储介质可以包括RAM、ROM、电可擦只读存储器(EEPROM)、闪速存储器或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光存储、盒式磁带、磁带、磁盘存储器或其他磁存储设备、或者可用于存储信息并且可以由计算机设备102访问的任何其他制品。任何这样的计算机存储介质都可以是计算设备102的一部分。计算机存储介质不包括载波或其他经传播或调制的数据信号。
通信介质可以由计算机可读指令、数据结构、程序模块、或已调数据信号(例如,载波或其他传播机制)中的其他数据来实施,并且包括任何信息传递介质。术语“已调数据信号”可以描述具有一个或多个特征集合或者以将信息编码在信号中的方式进行改变的信号。作为示例而非限制,通信介质可以包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声学的、射频(RF)的、红外的、和其他无线介质之类的无线介质。
图2A和2B示出了可以利用其实践本发明的示例的移动计算设备200,例如移动电话、智能电话、个人数字助理、平板个人计算机、平板电话、板式电话(slate)、膝上型计算机等。例如,移动计算设备200可以被实现以执行应用和/或应用命令控制。应用命令控制涉及对命令的呈现和控制以通过用户界面(UI)或图形用户界面(GUI)来与应用一同使用。在一个示例中,应用命令控制可以被专门编程为与单个应用一同工作。在其他示例中,应用命令控制可以被编程为跨多于一个应用工作。参考图2A,示出了用于实现示例的移动计算设备200的一个示例。在基本配置中,移动计算设备200是具有输入元件和输出元件两者的手持式计算机。移动计算设备200通常包括显示器205以及允许用户将信息输入到移动计算设备200中的一个或多个输入按钮210。移动计算设备200的显示器205还可以充当输入设备(例如,触摸屏显示器)。如果被包括,则可任选的侧输入元件215允许另外的用户输入。侧输入元件215可以是旋转开关、按钮或任何其他类型的手动输入元件。在可替代的示例中,移动计算设备200可包含更多或更少的输入元件。例如,在一些示例中,显示器205可以不是触摸屏。在另一可替代的示例中,移动计算设备200是诸如蜂窝电话之类的便携式电话系统。移动计算设备200还可以包括可选的小键盘235。可选的小键盘235可以是物理小键盘或者在触摸屏显示器上生成的“软”小键盘,或者是任何其他软输入面板(SIP)。在各种示例中,输出元件包括用于示出GUI的显示器205、视觉指示器220(例如,发光二极管)、和/或音频换能器225(例如,扬声器)。在一些示例中,移动计算设备200包含用于向用户提供触觉反馈的振动换能器。在另一示例中,移动计算设备200包含用于将信号发送到外部设备或从外部设备接收信号的输入和/或输出端口,例如音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)、以及视频输出(例如,HDMI端口)。
图2B是示出了移动计算设备的一个示例的架构的框图。也就是说,移动计算设备200能够包含用于实现一些示例的系统(即架构)202。在一个示例中,系统202被实现为能够运行一个或多个应用(例如,浏览器、电子邮件、日历、联系人管理器、消息传送客户端、游戏、以及媒体客户端/播放器)的“智能电话”。在一些示例中,系统202被集成为计算设备,例如集成的个人数字助理(PDA)、平板计算机、和无线电话。
一个或多个应用程序226可以被加载到存储器262中并且在操作系统264上运行或者或与操作系统264相关联地运行。应用程序的示例包括电话拨号程序、电子邮件程序、个人信息管理(PIM)程序、文字处理程序、电子表格程序、互联网浏览器程序、消息传送程序等。系统202还包括存储器262内的非易失性存储区域268。非易失性存储区域268可以用于存储如果系统202断电而不应丢失的持续信息。应用程序266可以在非易失性存储区域268中使用并存储信息,例如电子邮件或者由电子邮件应用使用的其他消息等。同步应用(未示出)也驻留在系统202上,并且被编程为与驻留在主计算机上的对应的同步应用进行交互,从而将存储在非易失性存储区域268中的信息与存储在主计算机上的对应的信息保持同步。应当理解的是,其他应用可以被加载到存储器262中并且在本文所描述的移动计算设备200上运行。
系统202具有电源270,其可以被实现为一个或多个电池。电源270还包括外部电源,例如AC适配器或给电池供电或充电的加电对接托架。
系统202可以包括执行促进系统202与一个或多个外围设备之间的连通性的功能的外围设备端口230。往来于外围设备端口230的传输在操作系统(OS)264的控制下进行。换句话说,由外围设备230所接收的通信可以经由操作系统264而被散播至应用程序266,反之亦然。
系统202还包括执行发送和接收视频通信的功能的无线电设备272。无线电设备272经由通信载波或服务提供商来促进系统202与“外部世界”之间的无线连通性。来往于无线电设备272的传输是在操作系统264的控制下进行的。换句话说,可以将由无线电设备272所接收的通信经由操作系统264散播至应用程序266,反之亦然。
视觉指示器220用于提供视觉通知,和/或音频接口274可以用于经由音频换能器225产生可听见的通知。在所示的示例中,视觉指示器220是发光二极管(LED),而音频换能器225是扬声器。这些设备可以直接地耦合至电源270,以便当被激活时,即使处理器260和其他组件可以关闭以节省电池电量,这些设备也能保持通电并持续由通知机制所指示的一段时间。LED可以被编程为无限期地保持通电,直到用户采取动作来指示设备的通电状态为止。音频接口274用于向用户提供可听见的信号并从用户接收可听见的信号。例如,除了耦合到音频换能器225之外,音频接口274还可以被耦合至麦克风以接收可听见的输入,例如,以促进电话会话。根据一个方面,系统202还包括视频接口276,其使得板载相机230的操作能够记录静止图像、视频流等。
实现系统202的移动计算设备200具有额外的特征或功能。例如,移动计算设备200包括(可移动的和/或不可移动的)额外的数据存储设备,例如磁盘、光盘、或磁带。在图2B中由非易失性存储区域268示出了这样额外的存储。
如在上文中所描述的,将由移动计算设备200所生成或捕获的数据/信息以及经由系统202所存储的数据/信息本地地存储在移动计算设备200上,或者将数据存储在可以经由无线电设备272或经由移动计算设备200和与移动计算设备200相关联的单独的计算设备(例如,分布式计算网络(例如,互联网)中的服务器计算机)之间的有线连接由设备来访问的任何数量的存储介质上。应当理解的是,可以经由移动计算设备200、经由无线电设备272、或经由分布式计算网络来访问这样的数据/信息。类似地,根据公知的数据/信息传输和存储方式(包括电子邮件和协同数据/信息共享系统),这样的数据/信息可以容易地在计算设备之间传输以供存储和使用。
图3示出了系统架构的一个示例,该系统用于提供可靠地访问存储系统上的目标数据并且处理如上文所描述的与一个或多个客户端设备的通信故障的应用。关联于编程模块108、应用120和存储/存储器而被访问、与之交互或者被编辑的目标数据可以被存储在不同的通信信道或其他存储类型中。例如,各种文档可以使用目录服务322、网络端口323、邮箱服务326、即时消息传送存储328、或社交网站330、应用128、IO管理器124、其他工具126进行存储,并且如本文所描述的,存储系统可以使用任何这些类型的系统等以使能进行数据利用。服务器320可以提供存储系统以由在通用计算设备102和移动设备200上操作的客户端通过网络315使用。作为示例,网络315可以包括互联网或者任何其他类型的局域网或广域网,并且客户端节点可以被实现为在个人计算机、平板计算设备中实施和/或由移动计算设备200(例如,移动处理设备)实施的计算设备102。客户端计算设备102或200的这些示例中的任何一个都可以从存储316获得内容。
图4A示出了示例性处理设备视图400,其示出了可以利用其实践本公开的方面的应用与软输入键盘应用之间的交互。软输入键盘应用用于提供针对一个或多个其他应用的应用命令控制。软输入键盘应用可以基于以下项而被生成/执行:根据一个或多个应用编程接口(API)执行的处理操作,或者用于在处理设备上构建并执行软件应用的处理操作、功能、例程、协议和/或工具的任何其他集合。在示例中,软输入键盘应用可以包括作为软输入键盘应用的经编程的部分的两个或更多的应用窗口,它们被配置为以有组织的方式来显示与软输入键盘应用相关联的内容。在一个示例中,如下文进一步详细描述的,软输入键盘应用可以包括第一应用窗口404、第二应用窗口406、以及第三应用窗口408。软输入键盘应用可以是与操作系统无关的并且可以被配置为在任何处理设备上执行。
与软输入键盘应用相关联的布局和显示尺寸可以以基于该软输入键盘应用在其上执行的设备的形式因子的方式来设置。应用窗口的尺寸(和数量)可以基于软输入键盘应用在其上执行的处理设备而不同。用于软输入键盘应用的显示空间能够由用户自定义。在其他示例中,与软输入键盘应用相关联的显示空间可以由开发者所固定(并且被编程到软输入键盘应用中)。本领域技术人员应当认识到,软输入键盘应用可以被编程为以适配于在应用窗口内组织数据的开发者规范的任何方式来组织数据。
如在显示视图400中所示出的,(在图4A中由404、406和408共同示出的)软输入键盘应用可以与前台应用的应用画布(canvas)402一同被显示。应用画布402是应用中能够由用户操控的可用部分。在图4A所示出的示例中,应用画布402用于SMS应用并且包括多个部分,所述部分包括用于输入SMS消息的接收方的字段,用于输入文本/图像/对象等的字段,用于输入电话号码/电子邮件地址等的部分,等等。本领域技术人员应当认识到,在图4A中所示出的应用画布仅仅是一个示例,并且应用画布402可以基于例如作为前台应用而被执行/显示的应用的类型来改变。
软输入键盘应用例如可以使用编程操作来与前台应用进行通信,所述编程操作例如一个或多个API、事件处理操作/控制/监听程序/接口等。作为示例,软输入键盘应用可以检测在前台应用内执行的一个或多个线程。线程是在诸如前台应用的程序/应用内运行的任务。软输入键盘应用可以被配置为检测在前台应用内执行的任何线程。作为示例,软输入键盘应用可以检测前台应用内执行的当前线程,其中,所述当前线程可以是用户在主动参与的线程。在一个示例中,可以使用API、处理操作、事件控制、监听程序等来检测应用画布402内的输入焦点。然而,应当理解的是,针对对当前线程的检测的处理操作不限于这样的示例。在一些示例中,用户可以使得多于一个线程打开。例如,在电子邮件应用或消息传送应用中,线程可以包括用户与一个或多个其他用户之间的电子邮件/消息通讯。在这样的示例中,用户可以在活动线程之间切换。软输入键盘应用能够检测线程之间的改变并且识别用户正在与之工作的当前线程。此外,应用中的线程例如可以在新的数据/内容被添加至线程时动态地改变。软输入键盘应用还能够检测对前台应用中的线程的改变更新。在示例中,软输入键盘应用可以被配置为从前台应用接收信号数据,例如用于与前台应用进行通信。例如,软输入键盘应用可以基于从前台应用或者软输入键盘应用在其上执行的处理设备所发送的信号数据来检测前台应用。在其他示例中,软输入键盘应用还可以基于从前台应用发送至软输入键盘应用的信号数据来检测前台应用的当前线程/对前台应用的线程的改变。
在图4A所示的示例中,应用画布402内的当前线程是SMS消息线程,其中用户正在建立用于向名为“Steve”的联系人发送消息的线程。如图4A所示,软输入键盘应用(共同地,404、406和408)被显示在应用画布402下方。然而,软输入键盘应用能够根据用户偏好而被调节,例如,其中用户能够操纵软输入键盘应用的尺寸、位置、状态等。
第一应用窗口404可以首先显示针对所检测的前台应用外部的服务的两个或更多个用户界面元素。在示例中,第一应用窗口404可以基于所检测到的前台应用来呈现用户界面元素。例如,第一应用窗口404可以响应于检测到文字处理应用是前台应用而显示与文字处理应用相关的用户界面元素。在另一个示例中,在第一应用窗口404中显示的用户界面元素可以响应于检测到前台应用是消息传送应用(例如,电子邮件或短消息服务(SMS))而有所不同。在其他示例中,在第一应用窗口404中显示的用户界面元素例如可以由软输入键盘应用的开发方所固定。在这样的示例中,可以呈现用户界面元素,其提供去往集成在软输入键盘应用内的服务的快捷方式。服务(例如,在处理设备/系统上执行的应用)是可以与软输入键盘应用接合的任何资源。服务可以包括但不限于能够由与软输入键盘应用相同的商户/组织所管理的系统、应用/服务,以及所述软输入键盘应用的商户/组织之外的资源。服务可以包括资源,例如web搜索服务、电子邮件应用、日历、设备管理服务、地址簿服务、信息服务等,以及由第三方所托管或控制的服务和/或网站。例如,服务可以包括经营范围(LOB)管理服务、顾客关系管理(CRM)服务、调试服务、账户服务、薪酬服务等。服务还可以包括由第三方所托管的其他网站和/或应用,诸如社交媒体网站;照片分享网站;视频和音乐流式网站;搜索引擎网站;体育、新闻或娱乐网站,等等。服务可以提供鲁棒的报告、分析、数据编译和/或存储服务等,但可以被集成在软输入键盘应用内的一些其他服务则可以提供搜索引擎或者对数据和信息、图像、视频等的其他访问。
在示例中,服务不需要被安装在客户端设备上以便软输入键盘应用访问这样的服务。这对于用户而言是极大的益处,用户无须下载、安装和管理多个不同的应用。然而,在一些示例中,服务可以被本地地安装在客户端设备上。作为示例,用户可以使用示例性软输入键盘来针对文档进行搜索。如果用户的客户端设备已经安装了能够打开文档的应用,则用户能够利用软输入键盘来启动该应用并查看文档。在其他示例中,甚至在客户端设备不包括用于查看文档的应用的情况下,用户能够利用软输入键盘应用来存储使用所述软输入键盘应用取回的文档并且提供指向所述文档的链接。尽管一些服务可以由软输入键盘通过分布式网络来访问,但是其他服务可以本地地存储在客户端设备上。在一些示例中,所述服务可以是前台应用外部的服务,并且提供单个应用不提供的扩展能力和功能。例如,软输入键盘应用可以促进第三方服务的集成以取回内容、完成任务等,这些是单个应用可能无法完成的。在其他示例中,软输入键盘应用获得数据并且将数据插入到前台应用中,这与前台应用能够完成这样的任务相比更加快速(例如,较少的处理操作)。在一些示例中,软输入键盘应用可以被编程以使得第三方输入字段能够在软输入键盘应用的用户界面元素内进行显示。这可以改进软输入键盘应用与第三方服务之间的交换的处理效率。另外,用户可以想要应用来自另一个应用的应用命令控制以在可能没有提供这样的应用命令控制的前台应用内完成任务。例如,在SMS应用作为前台应用来操作的示例中,用户可以希望使得编辑命令能够在文字应用或电子表格处理应用或语言翻译应用等内可用。软输入键盘应用能够促进这样的交互以改进用户在使用前台应用时的体验。
在一些示例中,第一应用窗口404的用户界面元素例如能够通过用户使用软输入键盘应用输入的搜索输入来搜索。示例性软输入键盘应用可以被配置为接收并处理任何形式的输入,其包括但不限于:文本输入、音频/语音输入、手写输入、触摸输入/设备/选择输入等。软输入键盘应用可以具有在其内被编程为接收并处理由软输入键盘应用的用户所触发的输入的用户界面元素。在示例中,第一应用窗口404能够经由任何类型的输入(例如,触摸、设备、语音命令)来滚动(例如,可水平或垂直滚动)。软输入键盘应用被配置为使能不仅其他应用(例如,前台应用)之间的交互,而且还促进软输入键盘应用的组件(例如,第一应用窗口404、第二应用窗口406和第三应用窗口408)之间的交互。在图4B-4H中提供了第一应用窗口404的示例性用户界面元素中的一些的进一步描述。
示例性软输入键盘应用还可以包括显示软输入键盘的第二应用窗口406,此外还有其他内容。在示例中,第二应用窗口406能够经由任何类型的输入(例如,触摸、设备、语音命令)进行滚动(例如,可水平或垂直滚动)。第二应用窗口406促进软输入键盘应用的组件(例如,第一应用窗口404、第二应用窗口406、和第三应用窗口408)以及所检测到的前台用用之间的交互。类似于第一应用窗口404,对第二应用窗口406的显示是可更新的。在一个示例中,对第二应用窗口的显示可以更新,包括基于对第一应用窗口的用户界面元素的选择来替换对软输入键盘的显示。在这样的示例中,可以在第二应用窗口406中显示一个或多个额外的用户界面元素。第二应用窗口406还可以被配置为显示所选择的用户界面元素(例如,在第一应用窗口404内选择的)的上下文。例如,如果用户选择了第一应用窗口404内的用户界面元素,则与所选择的用户界面元素相关联的内容可以在第二应用窗口406中被呈现。以这样的方式,第一应用窗口404的用户界面元素充当去往与用户界面元素相关联的服务的功能和内容的快捷方式。
此外,第二应用窗口406可以被配置为利用第二应用窗口406呈现来自多个服务的内容。以该方式,第二应用窗口406通过使得来自多个服务的内容流能够在第二应用窗口406的应用空间内被显示而自身是多窗口的。当来到移动设备时,在例如第二应用窗口406的应用窗口内呈现来自多个服务的内容从用户界面/用户体验的方面提供了技术优势,其中,第二应用窗口406可以利用从多个不同服务和/或应用命令控制特征所取回的内容而被连续更新。
此外,第二应用窗口406的软输入键盘(例如,软输入面板(SIP))可以包括用于将数据输入到应用中的诸如按键类型的用户界面元素,所述应用例如前台应用和/或软输入键盘应用。与软输入键盘相关联的一些特征包括但不限于:字母输入键、字母数字输入键、修改符按键、光标按键、系统命令、输入识别命令、针对第一方服务、第二方服务、第三方服务的命令、插入命令、以及特征命令(例如,与软输入键盘应用相关联的定界符(delimiter))等。用于将输入进行输入的其他标准按键类型可以被包括在软输入键盘内并且被本领域技术人员所知。
示例性软输入键盘应用还可以包括显示软输入键盘的第三应用窗口408等。在示例中,第三应用窗口408可以提供针对软输入键盘应用的命令控制。例如,第三应用窗口408可以提供命令控制,其包括但不限于:改变软输入键盘应用的尺寸或状态(例如,最小化、最大化、关闭、较大视图/图标、较小视图/图标),对应用窗口的命令控制(其包括用于在应用窗口内的内容之间导航的命令控制),用于切换(toggle)软输入键盘的显示的命令控制,以及用于选择和取消选择内容的命令控制等。在示例中,第三应用窗口408能够经由任何类型的输入(例如,触摸、设备、语音命令)进行滚动(例如,可水平或垂直滚动)。在其他示例中,尽管有对其他应用窗口中的内容的更新,但是第三应用窗口408可以是固定的并且统一地呈现相同的用户界面特征。第三应用窗口408促进软输入键盘应用中的组件(例如,第一应用窗口404和第二应用窗口406)以及所检测到的前台应用之间的交互。
图4B-4H示出了示例性处理设备视图,其突出显示了可以利用其实践本公开的方面的示例性软输入键盘应用的示例性用户界面元素。图4B-4H示出了可以在应用窗口中提供的示例性用户界面元素,所述应用窗口例如关于图4A所描述并示出的第一应用窗口404。
图4B示出了示例性处理设备视图410,其突出显示了对示例性第一应用窗口404中的用户界面元素412的选择。用户界面元素412是去往针对历史/剪切板服务/应用的快捷方式。与用户界面元素412相关联的服务可以被用于数据存储(例如,短期或长期数据存储),并且能够被配置以用于在诸如软输入键盘应用和前台应用之类的应用之间的数据传输。在示例中,数据或内容可以从软输入键盘应用之外的一个或多个服务被接收并且被存储以由用户插入/操控。用户还可以从前台应用内选择内容并且利用用户界面元素412/414来存储数据/内容,以供随后在前台应用或者例如第二前台应用的另一个应用中使用。对用户界面元素412中的内容和存储的选择可以通过诸如单击、点击/拖/放、滑动、扫动等之类的动作来较简单地进行。
处理设备视图410示出了对第一应用窗口404中的用户界面元素412的选择。响应于对用户界面元素412的选择,第二应用窗口406的显示可以更新以显示剪切板服务414和/或与剪切板服务414相关的内容。作为示例,对用户界面元素412的选择引起利用剪切板服务414来替换对软输入键盘的显示。在示例中,软输入键盘应用被配置为以各种方式接收输入。例如,不同类型的输入能够由软输入键盘应用识别,例如,其中例如轻击图标/用户界面元素的动作能够与按压/保持操作区分开。在其他示例中,与所接收的输入相关联的力(例如,所施加的压力、所接收的讲话的语调,等等)能够用来确定所预期的动作。软输入键盘应用被编程为识别不同的输入并且基于特定的经识别的输入而采取不同的动作。作为示例,应用/服务的多窗口视图可以响应于按压/保持操作而被启动。然而,本领域技术人员应当认识到,软输入键盘应用能够在所接收的任何类型的输入都能够触发针对应用/服务的多窗口视图的情况下被编程或被配置。在示例中,用户能够滚动通过第二应用窗口406(例如,垂直地或水平地)以查看剪切板服务414的内容。在一些示例中,用户可以扫动以改变第二应用命令控制窗口406内的内容的显示。例如,可以通过扫动来显示剪切板服务414的内容的不同页面。第二应用窗口406还可以通过从诸如(图4A中所描述的)第一应用窗口404和第三应用窗口408之类的其他应用窗口中的一个窗口中选择用户界面元素而被更新。
图4C示出了示例性处理设备视图420,其突出显示对示例性第一应用窗口404中的用户界面元素422的选择。用户界面元素422是去往位置/地图服务424的快捷方式。与用户界面元素422相关联的服务可以用来确定处理设备的位置,对所确定的位置周围的区域绘制地图,提供图形坐标和相关联数据,查看其他地理/拓扑,提供方向,等等。例如,位置/地图服务424可以被编程和配置为收集与位置数据相关的用户上下文信号,所述位置数据可以用来确定处理设备的确切位置。例如,与位置/地图服务424相关联的API能够被编程为被动地收集处理设备的位置数据(例如,信号数据),并且与其他信号数据相比较地评估所收集的信号数据,以确定处理设备的精确位置。在这样做时,位置/地图服务424能够准确地确定并输出用户可能位于的确切位置,例如在一房子或者一位置内的具体建筑物/公寓单元中的起居室中。注意到,这样的信号数据的收集符合任何的隐私法律以及用户所设置的偏好。位置/地图服务424可以在位置/地图服务424中显示与处理设备/用户的位置相关的数据,以使得用户能够将这样的数据插入到前台应用中。在其他示例中,位置/地图服务424可以用来查找诸如地址、地方名称等的位置或地理信息,并且将这样的数据插入到前台应用中。
处理设备视图420示出了对第一应用窗口404中的用户界面元素422的选择。响应于用户界面元素422的选择,第二应用窗口406的显示可以更新以显示位置/地图服务424和/或与位置/地图服务424相关的内容。作为示例,对用户界面元素422的选择引起利用位置/地图服务424来替换软输入键盘的显示。在示例中,用户可以滚动通过(例如,垂直地或水平地)第二应用窗口406以查看位置/地图服务424的内容。在一些示例中,用户可以扫动以改变第二应用命令控制窗口406内的内容的显示。例如,可以通过扫动来显示位置/地图服务424的内容的不同页面。第二应用窗口406还可以通过从诸如(图4A中所描述的)第一应用窗口404和第三应用窗口408之类的其他应用窗口中的一个窗口中选择用户界面元素而被更新。
图4D示出了示例性处理设备视图430,其突出显示示例性第一应用窗口404中的用户界面元素432的选择。用户界面元素432是去往日历/日程服务434的快捷方式。日历/日程服务434可以用于时间管理并且提供针对一个或多个用户/联系人等的对日历的访问。在示例中,日历/日程服务434可以用来确定一个或多个用户或联系人的可用性,例如与前台应用中所检测到的线程相关联的用户。日历/日程服务434可以用于访问和/或修改日历或日程条目。在一个示例中,用户可以在将输入键入到前台应用(例如,在图4D中所示出的SMS应用)中,其中输入可以是“Steve,I am available to meet at…”。在该示例中,对用户界面元素432的选择可以提供针对如第二应用窗口406中所示的日历/日程服务434的访问,其中,用户接下来有空的空闲时间可以被显示以供选择。在其他示例中,软输入键盘应用可以针对被输入到前台应用中的输入提供情境式自动完成。例如,用户可以将以上的示例输入修改为如“Steve,I am available to meet at[下一个空闲时间]”的一些内容。在该示例中,软输入键盘应用被配置为执行处理操作,例如:检测与所接收到的输入相关联的上下文,确定要调用的合适的服务(例如,日历应用),为服务提供信号数据以使得该服务能够完成用户请求,并且插入从服务取回的结果数据以完成用户请求。在以上示例中,软输入键盘应用被配置为识别诸如“[下一个空闲时间]”的触发条件并且确定与该触发条件相关联的上下文。日历/日程服务434可以被软输入键盘应用调用以识别用户能够会见的下一个可用的空闲时间。当软输入键盘应用接收到下一个可用空闲时间的数据时,该软输入键盘应用可以将这样的数据插入前台应用(例如,SMS应用)。例如,用户能够在第二应用窗口406中查看和/或修改日历/日程服务434中的条目。
处理设备视图430示出了对第一应用窗口404中的用户界面元素432的选择。响应于对用户界面元素432的选择,第二应用窗口406的显示可以更新以显示日历/日程服务434和/或与日历/日程服务434相关的内容。作为示例,对用户界面元素432的选择引起利用日历/日程服务434替换软输入键盘的显示。在示例中,用户能够滚动通过(例如,垂直地或水平地)第二应用窗口406以查看日历/日程服务434的内容。在一些示例中,用户可以扫动以改变第二应用命令控制窗口406内的内容的显示。例如,可以通过扫动来显示日历/日程服务434的内容的不同页面。第二应用窗口406还可以通过从诸如(图4A中所描述的)第一应用窗口404和第三应用窗口408之类的其他应用窗口中的一个窗口选择用户界面元素而被更新。
图4E示出了示例性处理设备视图420,其突出显示对示例性第一应用窗口404中的用户界面元素442的选择。用户界面元素422是去往搜索服务444的快捷方式。搜索服务444可以用来接收查询,处理所述查询和评估搜索结果数据,并且将搜索结果数据返回至软输入键盘应用。在一个示例中,搜索服务444可以是通过分布式网络与软输入键盘应用接合的web搜索引擎。软输入键盘应用可以评估与在前台应用中(或者在软输入键盘应用内)所接收的输入相关联的上下文,并且发送输入以及用于评估该上下文的信号以从搜索服务444取回结果数据。作为示例,可以返回针对所接收输入(查询)的结果以及基于软输入键盘应用对上下文的评估所建议和/或推荐的内容/结果数据。包括一个或多个结果的结果数据可以被返回至软输入键盘应用,并且在包括第一应用窗口404和第二应用窗口406的应用窗口中的一个或多个应用窗口中被显示。
处理设备视图440示出了对第一应用窗口404中的用户界面元素442的选择。响应于对用户界面元素442的选择,第二应用窗口406的显示可以更新以显示搜索服务444和/或与搜索服务444相关的内容。作为示例,对用户界面元素442的选择引起利用搜索服务444替换软输入键盘的显示。在示例中,用户能够滚动通过(例如,垂直地或水平地)第二应用窗口406以查看搜索服务444的内容。在一些示例中,用户可以扫动以改变第二应用命令控制窗口406内的内容的显示。例如,可以通过扫动来显示搜索服务444的内容的不同页面。第二应用窗口406还可以通过从诸如(图4A中所描述的)第一应用窗口404和第三应用窗口408的其他应用窗口中的一个窗口选择用户界面元素而被更新。
图4F示出了示例性处理设备视图450,其突出显示对示例性第一应用窗口404中的用户界面元素452的选择。用户界面元素452是去往翻译服务454的快捷方式。翻译服务454可以用来评估并翻译对前台应用的输入和/或由软输入键盘应用所显示/取回的内容。翻译服务454可以是用于将任何上下文翻译成各种语言等的多语言统计机器翻译服务,所述上下文包括但不限于:文本、语音、图像、实时视频、文档。作为示例,用户可以将输入键入到前台应用的应用画布中,并且翻译服务454例如可以被调用以将该输入翻译成另一种语言。
处理设备视图450示出了对第一应用窗口404中的用户界面元素452的选择。响应于对用户界面元素452的选择,第二应用窗口406的显示可以更新以显示翻译服务454和/或与翻译服务454相关的内容。作为示例,对用户界面元素452的选择引起利用翻译服务454替换软输入键盘的显示。在示例中,用户能够导航通过(例如,垂直地或水平地)第二应用窗口406以查看翻译服务454的内容。在一些示例中,用户可以扫动以改变第二应用命令控制窗口406内的内容的显示。例如,可以通过扫动来显示翻译服务454的内容的不同页面。第二应用窗口406还可以通过从诸如(图4A中所描述的)第一应用窗口404和第三应用窗口408之类的其他应用窗口中的一个窗口选择用户界面元素而被更新。
图4G示出了示例性处理设备视图460,其突出显示对示例性第一应用窗口404中的用户界面元素462的选择。用户界面元素462是去往懒惰打字员服务464的快捷方式。懒惰打字员服务464可以用于转换或操纵在输入中针对词语/短语/命令的较长版本所输入的简写或缩写形式。作为示例,用户可以输入缩写形式“NY”来表示“New York”而不是敲出单词“New York”。在另一个示例中,用户可以想要输入短语“laugh out loud(大声笑)”的简写/缩写(LOL)。懒惰打字员服务464可以用于检测这样的缩写并且为用户提供/完成该缩写。例如,如果用户敲出了“NY”,对前台应用中的线程进行评估的软输入键盘应用能够调用懒惰打字员服务464以提供自动完成选项或建议/推荐以在前台应用的输入字段中输入。用户也可以通过选择用户界面元素465来手动地调用懒惰打字员服务464,这将懒惰打字员服务464在第二应用窗口406中显示。用户可以利用懒惰打字员服务464将缩写词语等输入到前台应用的输入字段中。在一些示例中,懒惰打字员服务464可以依据用户偏好来以程序方式更新。例如,可以应用处理操作来确定最常用的缩写并且利用针对用户的优先级来显示它们。懒惰打字员服务464可以包括数千个缩写并且动态地对库进行更新,以基于用户偏好、使用(例如,缩写的类型可能根据个人和/或语言而有所不同)等对这样的缩写进行优先排序。在示例中,懒惰打字员服务464还能够针对用户进行搜索,以识别、标记、和使用缩写,此外还有其他示例。
处理设备视图460示出了对第一应用窗口404中的用户界面元素462的选择。响应于对用户界面元素462的选择,第二应用窗口406的显示可以更新以显示懒惰打字员服务464和/或与懒惰打字员服务464相关的内容。作为示例,对用户界面元素462的选择引起利用懒惰打字员服务464替换软输入键盘的显示。在示例中,用户能够滚动通过示例性处理设备视图460第二应用窗口406滚动(例如,垂直地或水平地)以查看懒惰打字员服务464的内容。在一些示例中,用户可以扫动以改变第二应用命令控制窗口406内的内容的显示。例如,可以通过扫动来显示懒惰打字员服务464的内容的不同页面。第二应用窗口406还可以通过从诸如(图4A中所描述的)第一应用窗口404和第三应用窗口408的其他应用窗口中的一个窗口选择用户界面元素而被更新。
图4H示出了示例性处理设备视图470,其突出显示对示例性第一应用窗口404中的用户界面元素472的选择。用户界面元素472是去往链接服务474的快捷方式。链接服务474可以用来识别可能与所接收到的输入相关联的内容,或者可替代地识别用户能够与之连接的额外资源、应用、服务。在示例中,链接服务474还可以针对用户是可搜索的,以搜索和评估文档、文件、应用/服务等。在一些示例中,当用户选择/突出显示/悬停在链接服务474的显示内的项目/元素上方时,可以为用户显示有关文档的概要细节。作为示例,在前台中所接收的输入可能是“lemurs weight 10lbs”,其中对用户界面元素472的选择触发在第二应用窗口406中显示链接服务474。在该示例中,如果用户悬停在所显示的项目/文档/文件上方,则可以为用户显示指示文档的相关性的上下文。在其他示例中,链接服务474可以用来识别要向其发送数据的其他应用/服务。在传输内容的先前示例中,用户将不得不选择所接收输入的一部分,复制它,定位并打开另一应用,并且将该输入粘贴到该应用中。链接服务474通过呈现用户能够向其发送内容的应用/服务的可搜索列表而提供了技术优势。作为示例,(例如,通过用户界面元素)对链接服务474中的服务的选择可以自动地发起将数据传输至所选择的应用/服务。在以上示例中,包括在去往联系人“Steve”的SMS线程中的输入“lemurs weight 10lbs”可以被添加至演示文档、与另一用户的对话(例如,“Convo withJohn”)、待办事列表等。
处理设备视图470示出了对第一应用窗口404中的用户界面元素472的选择。响应于对用户界面元素472的选择,第二应用窗口406的显示可以更新以显示链接服务474和/或与链接服务474相关的内容。作为示例,对用户界面元素472的选择引起利用链接服务474替换软输入键盘的显示。在示例中,用户能够滚动通过(例如,垂直地或水平地)第二应用窗口406以查看链接服务474的内容。在一些示例中,用户可以扫动以改变第二应用命令控制窗口406内的内容的显示。例如,可以通过扫动来显示链接服务474的内容的不同页面。第二应用窗口406还可以进一步通过从诸如(图4A中所描述的)第一应用窗口404和第三应用窗口408之类的其他应用窗口中的一个窗口选择用户界面元素而被更新。
图5-12示出了示例性处理设备视图,其突出显示了可以利用其实践本公开的方面的应用与软输入键盘应用之间的交互。图5-12突出显示了软输入键盘应用与如以上在图4A-4H中所提到的至少一个前台应用之间的交互。
图5示出了处理设备视图502-506,其突出显示了前台应用与接合多个服务的软输入键盘应用之间的交互。处理设备视图502示出了执行前台应用(例如,SMS应用)和执行软输入键盘应用的显示。在处理设备视图504中,输入“Senator of NY?”被输入到前台应用的输入字段中。示例性软输入键盘应用检测并评估与对前台应用中的输入相关联的上下文。软输入键盘应用可以确定要联系的应用/服务,以取回针对所接收的输入的结果数据。作为示例,软输入键盘应用可以应用处理操作以评估输入的上下文,并且确定搜索服务最适于返回针对前台应用中的用户输入的结果。作为响应,软输入键盘应用可以向该应用/服务发送数据以取回结果数据。从该服务返回的结果数据可以被提供至软输入键盘应用。软输入键盘应用可以更新应用窗口的显示(例如,在图4A-4H中所示出并描述的第一应用窗口404)以示出从诸如搜索服务的服务取回的结果数据。处理设备视图504在第一应用窗口中示出结果数据“Chuck Schumer and Kirsten Gill”。处理设备视图506示出用户从软输入键盘应用的应用窗口中选择结果数据的结果。如在处理设备视图506中所示出的,结果数据“Chuck Schumer and Kirsten Gill”被插入到前台应用的输入字段中(替换原始查询“Senator of NY?”)。对软输入键盘应用内的内容的选择可以通过任何类型的动作来进行,包括单击动作或拖拽动作(触摸或设备输入)、以及语音命令等。
图6示出了处理设备视图602-608,其突出显示了前台应用与接合多个服务的软输入键盘应用之间的交互。在示例性处理设备视图602-608中,响应于到前台应用中的输入,结果数据被返回并且在应用窗口(例如,在图4A-4H中所示出并描述的第一应用窗口404)中被显示。处理设备视图602-608示出示例性软输入键盘应用的扩展性,其中多个不同服务的结果可以与键盘应用接合以对在另一个应用(例如,前台应用)中所接收到的输入提供上下文上相关的结果。
处理设备视图602示出了将输入键入到前台应用(例如,SMS应用)中,其中输入是“lemur doc”。软输入键盘应用可以检测将输入键入到前台应用中并且评估可能适于满足与所接收的输入相关联的用户意图的服务。在该示例中,软输入键盘应用可以使用链接服务(例如,在图4H中描述的链接服务474)来取回结果数据,例如指向名为“lemur.doc”的文档的链接。在示例中,用户可以选择将指向“lemur.doc”的该文档链接插入到前台应用中。在示例中,用户可以期望从在软输入键盘应用的应用窗口中所显示的内容中选择不同的文档链接。在这样的示例中,用户可以利用软输入键盘的图形用户界面导航至由链接服务所提供的文档/应用/服务等的列表。
处理设备视图604示出了将输入键入到前台应用(例如,SMS应用)中的一个示例,其中输入是“Steve#”。软输入键盘应用可以检测输入被键入到前台应用中并且评估可能适于满足与所接收的输入相关联的用户意图的服务。在分析所接收输入的上下文时,软输入键盘应用可以被编程为检测诸如定界符之类的输入。定界符可以是软输入键盘应用进行具体的命令处理的触发条件。可以预先定义多个定界符以用于在软输入键盘应用内使用,例如其中软输入键盘应用识别多个不同的预先定义的定界符。另外,定界符可以是用户定义的(例如,通过重复的用户输入)或者是由诸如第三方服务之类的其他应用/服务定义的。例如,软输入键盘应用能够扩展以与第三方服务接合从而识别特定于第三方的定界符。特定于第三方的定界符可以由软输入键盘应用使用以触发第三方服务以供结果取回。此外,定界符能够由软输入键盘应用的用户进行搜索。
返回到在处理设备视图604中所接收的输入“Steve#”,软输入键盘应用可以使用联系人服务/地址簿服务来取回与用户联系人列表或地址簿相关联的结果数据,例如名为“Steve”的联系人的电话号码。在示例中,用户可以选择将名为“Steve”的联系人的电话号码插入到前台应用中。在示例中,用户可以想要找到“Steve”的不同联系号码,例如在显示了个人电话号码的情况下,而用户正在针对工作电话号码进行搜索。在这样的示例中,用户可以利用软输入键盘应用的图形用户界面以通过软输入键盘应用导航至联系人/地址簿服务。
处理设备视图606示出了将输入键入到前台应用(例如,SMS应用)中的一个示例,其中输入是“pasta for dinner(晚餐吃意大利面)”。软输入键盘应用可以检测在前台应用中所接收到的输入,并且返回结果,例如餐厅(例如,意大利(Italian)餐厅)、菜谱、购买配料的商店等。在示例中,用户可以想要选择查看与在软输入键盘的第二应用窗口中所提供的结果数据相关的更多信息。例如,用户可以选择内容的具体部分(例如,餐厅)或者滚动/扫动通过在第二应用窗口中所显示的不同结果数据内容。所选择的内容可以被用户插入到前台应用的输入字段中。
处理设备视图608示出在上文中所描述的上下文自动完成的示例。作为示例,用户可以键入输入“I am at”。软输入键盘应用可以检测该输入并且利用处理操作来识别处理设备/用户所处的位置,例如“Building 36”。用户可以选择在前台应用的输入字段中键入这样的内容。作为一个示例,这样的输入可以是要接收方打开地图应用并且查看位置或去往该位置的指示的链接等。上下文自动完成的其他示例性使用情况包括但不限于:I amfree at[time I am free at based on my calendar](我在[我基于我的日历有空的时间]有空),the time right now is[system time](现在时间是[系统时间]),I am at themeeting[current meeting time](我在开会[当前会议信息]),以及distance to you is[get distance&travel time from a map service from me to you](到你那的距离是[从地图服务得到从我到你的距离/行进时间])等。
图7示出了处理设备视图702-704,其突出显示了前台应用与软输入键盘应用之间的交互。在处理设备视图702中,软输入键盘应用检测到键入例如“When was Eiffel Towerbuilt?(埃菲尔铁塔是什么时候建造的?)”的输入。作为响应,软输入键盘应用评估所接收的输入,确定可以满足所接收输入的意图的服务,并且与该服务进行通信以获得结果数据。在该示例中,处理设备视图702示出了结果数据“1889”是从搜索服务获得的并且在软输入键盘应用的第一应用窗口(例如,图4A-4H的第一应用窗口404)中被显示。处理设备视图704示出了结果数据从软输入键盘应用至前台应用的应用画布的传输。响应于对软输入键盘应用中的结果数据的选择,软输入键盘应用发送该结果数据以用于向前台应用显示。
图8示出了处理设备视图802-804,其示出了前台应用与软输入键盘应用之间的交互。如在处理设备视图802中所示,用户可以将输入“Italian”键入到前台应用的输入字段中。作为响应,软输入键盘应用可以在程序上检测到该输入被键入,识别用于返回结果数据的服务,获得结果数据并且在软输入键盘应用的应用窗口中显示所述结果数据。如在处理设备视图804中所示,用户可以选择查看由诸如搜索服务的服务所提供的额外信息,由此对用户界面元素(例如,“…”)的选择触发了对软输入键盘应用的第二应用窗口的显示的更新。如在处理设备视图804中所示,结果数据/内容替换(如在处理设备视图802中所示的)先前在第二应用窗口中显示的软输入键盘的显示。
图9示出了处理设备视图902-906,其突出显示了前台应用与软输入键盘应用之间的交互。处理设备视图902示出了将定界符命令(例如,#)键入到前台应用的应用画布中。软输入键盘应用可以检测对定界符命令的键入,评估并处理该定界符命令以及与该定界符命令相关联的上下文。也就是说,该定界符命令可以充当由软输入键盘应用所进行的具体类型的处理的触发条件。作为一个示例,响应于检测到诸如“#”的定界符命令,软输入键盘应用可以启动显示与所键入的输入(例如,跟在所键入的定界符命令之后的字符、单词、短语)相关联的文档列表的服务。文档仓库服务或列表服务可以提供能够被本地存储以及通过分布式网络或第三方服务来存储的文档、文件等的列表。例如,与输入“le”相关联的文档的列表可以被显示。在示例中,该列表可以在软输入键盘应用窗口内被显示,或者作为在前台应用的应用画布上方临时显示的弹出消息来显示。然而,本领域技术人员应当认识到,能够利用其他用户界面效果来显示文档列表服务或任何内容列表。如在处理设备视图904中所示,指向近期文档“lemurs research.docx”的链接被选择。响应于如在处理设备视图904中所示的对该链接的选择,该文档链接可以被插入到前台应用的应用画布中,如在处理设备视图906中所示。
图10示出了处理设备视图1002-1006,其突出显示了前台应用与软输入键盘应用之间的交互。类似于图9所示的过程流程,图10突出显示了软输入键盘应用对联系人列表的识别以及在前台应用的应用画布内插入联系人。处理设备视图1002示出将另一定界符命令(例如,@)键入到前台应用的应用画布中。响应于检测到诸如“@”的定界符命令,软输入键盘应用可以启动显示可以与所键入的输入(例如,在所键入的定界符命令之后的字符、单词、短语)相关的联系人列表的服务。例如,可以显示对应于输入“This is the number fordi”的联系人列表。在示例中,该列表可以在软输入键盘应用窗口内被显示,或者作为在前台应用的应用画布上方临时显示的弹出消息来显示。然而,本领域技术人员应当认识到,能够利用其他用户界面效果来显示文档列表服务或任何内容列表。如在处理设备视图1004中所示,指向联系人/合作方的链接被显示并且“Diana Kv”的联系人号码被选择。响应于如处理设备视图1004中所示的对该联系人号码的选择,所选择联系人的联系人号码可以被插入到前台应用的应用画布中,如处理设备视图1006所示,这提供了对用户的部分输入的完成。
图11示出了处理设备视图1100,其突出显示了前台应用与软输入键盘应用之间的交互。处理设备视图1100突出显示了利用翻译服务(例如,在图4F中所描述的翻译服务454)的能力。如在处理设备视图1100中所示,输入1102可以被键入到前台应用的应用画布的输入字段中。输入可以以任何语言被接收。作为示例,输入1102以韩文显示。响应于检测到所接收的输入或者可替代地对翻译服务的用户界面元素的选择,软输入键盘应用的应用窗口1104可以例如基于对前台应用中的线程、用户偏好、建议/推荐等的评估而被更新以显示用于翻译所接收的输入的选项。
图12示出了处理设备视图1200,其突出显示了前台应用与软输入键盘应用之间的交互。处理设备视图1200示出了在上文中所描述的上下文自动完成的示例。处理设备视图1200突出显示了使用另一个定界符命令来提供上下文,以在帮助软输入键盘应用识别最合适的资源取回。作为示例,用户可以向输入字段中键入包括上下文定界符“[location]”的输入1202“I am at”。软输入键盘应用可以检测到该输入并且利用处理操作来识别处理设备/用户所处的位置,例如“City Center(市中心)”。作为示例,软输入键盘应用的应用窗口1204可以更新以显示位置内容,例如指示当前位置的地图数据等。用户可以选择在前台应用的输入字段(例如,SMS应用的输入字段)中键入这样的内容。作为示例,这样的输入可以是要接收方打开地图应用并且查看位置或去往该位置的指示的链接。
图13示出了能够在一个或多个计算设备上实现的示例性系统1300,在所述一个或多个计算设备上可以实践本公开的方面。所呈现的示例性系统1300是相互依赖的组件的组合,所述组件基于用户示例操作进行交互以形成所学习程序生成的集成整体。系统1300的组件可以是硬件组件或者在系统1300的硬件组件上实现和/或由所述硬件组件执行的软件。在示例中,系统1300可以包括硬件组件(例如,ASIC,用于执行/运行OS的其他设备)以及在硬件上运行的软件组件(例如,应用、应用编程接口、模块、虚拟机、运行时间库等)中的任何组件。在一个示例中,示例性系统1300可以提供软件组件运行的环境,遵循操作的约束集合,并且对系统/处理设备的资源或工具进行利用,其中组件可以是在一个或多个处理设备上运行的软件(例如,应用、程序、模块等)。例如,软件(例如,应用、操作指令、模块等)可以在诸如计算机、移动设备(例如,智能电话/电话、平板计算机)和/或任何其他电子设备之类的处理设备上运行。作为处理设备操作环境的示例,参考图1-3的操作环境。在其他示例中,在本文中所公开的系统的组件可以跨多个设备分布。例如,输入可以在客户端设备(例如,处理设备)上被键入并且信息可以从网络中的其他设备(例如,一个或多个服务器设备)处理或访问。
本领域技术人员将理解的是,系统(例如,系统1300)的规模可以不同,并且可以包括与在图13中所描述的那些相比更多或更少的组件。在一些示例中,系统1300的组件之间的接合可以远程地进行,例如其中系统1300的组件可以跨分布式网络中的一个或多个设备而分布。在示例中,一个或多个数据存储/存储设备或其他存储器与系统1300相关联。例如,系统1300可以具有与其相关联的一个或多个数据存储设备/存储器/存储。与系统1300的组件相关联的数据,以及系统1300的组件所执行的处理操作/指令可以被存储在其上。系统1300的组件可以与执行涉及软输入键盘应用的启动和执行的处理操作的处理设备的OS接合。系统1300的一个或多个组件可以在提供示例性软输入键盘应用时作为能够由一个或多个入口点所访问的服务来使用。入口点是用于与诸如软输入键盘应用之类的应用或服务进行通信的入口或平台的点。在示例中,入口点可以包括但不限于:包括搜索应用的任何的应用/服务、智能个人助理应用、第一方产品/服务、第二方产品/服务、和第三方产品/服务等。
另外,系统1300的组件拥有处理装置并且可以被配置为处置任何类型的输入,所述输入包括但不限于话音/语音输入、文本输入、手势输入、手写输入等。系统1300可以是可缩放的并且能够被配置为在各种处理设备上操作,所述处理设备包括但不限于:台式计算机、膝上计算机、移动处理设备(例如电话、平板计算机、板式计算机、诸如手表、眼镜、耳机之类的可穿戴处理设备)、车载处理设备、以及具有至少一个处理器的任何其他设备等。示例性系统1300包括软输入键盘应用组件1306,其包括用户界面组件1308、输入识别组件1310、键盘组件1312,其中所标识组件中的每一个都可以包括一个或多个额外组件。
系统1300可以还包括一个或多个存储1314,其可以存储与系统1300的一个或多个组件的操作相关联的数据。存储1314是任何物理或虚拟存储器空间。存储1314可以存储针对由系统1300的组件所执行的处理操作的任何数据、从处理操作保留的数据、训练数据、针对处理操作的执行的建模数据、以及知识数据等。此外,在示例中,系统1300的组件可以在由系统1300的组件所进行的处理中利用知识数据。知识数据是能够由系统1300的组件用来改进任何软输入键盘应用组件1306的处理的任何数据,其中知识数据能够从系统1300内部或外部的资源获得。在示例中,知识数据可以被保存在(多个)存储1314中,或者通过知识提取操作从系统1300外部的一个或多个资源获取。作为示例,可以由示例性软输入键盘应用访问的服务可以被认为是可以在本地存储或者通过分布式网络访问的知识数据。
在图13中,处理设备1302可以是包括至少一个处理器和至少一个存储器/存储的任何设备。处理设备1302的示例可以包括但不限于:诸如台式计算机、服务器、电话、平板计算机、平板手机、板式计算机、膝上计算机、手表之类的处理设备,以及诸如具有一个或多个处理器或电路的设备之类的电气组件的任何其他集合。在一个示例中,处理设备1302可以是用户的设备,其正在运行作为前台应用和示例性软输入键盘应用的应用/服务。在示例中,处理设备1302可以经由网络1304与软输入键盘应用组件进行通信。在一个方面中,网络1304是诸如互联网之类的分布式计算网络。
软输入键盘应用组件1306是用于启动和管理软输入键盘应用的组件的集合。软输入键盘应用组件1306可以包括用户界面组件1308、输入识别组件1310、和键盘组件1312。在可替代的示例中,可以创建一个或多个额外的组件来管理在本公开通篇中描述的操作。软输入键盘应用组件1306可以被存储在一个或多个处理设备(例如,客户端设备)上,或者对软输入键盘应用组件1306中的一个或多个的访问例如可以通过分布式网络来分布。
用户界面组件1308是被配置为使得能够与关联于应用或服务的应用或服务的用户进行交互的一个或多个组件。通过用户界面组件1308为这样的应用/服务的用户带来的透明度和组织,其中用户能够通过用户界面元素来与应用进行交互。作为示例,用户界面组件1308可以包括一个或多个用户界面元素在处理设备的显示器上的生成和显示。例如,响应于用户向设备键入输入的动作,用户界面组件1308可以接收并处理请求,并且发起动作以显示用于向与应用/服务在其上执行的处理设备相关联的应用/设备中键入输入的提示。用户界面组件1308还可以作为用于由其他软输入键盘应用组件1306所执行的后端处理的显示(例如,图形用户界面)的前端来执行。在示例中,可以使用用户界面定义文件来定义用于促进用户与系统/服务之间的交互的用户界面元素。用户界面定义文件可以包括针对与用户界面元素1308相关联的用户界面元素的管理和显示的编程指令或操作。
输入识别组件1310是系统1300的组件,其接收、处理并标记所接收到的输入以供识别。输入识别组件1310是用于处理所接收到的输入的组件。当输入例如经由用户界面组件1308被接收时,该输入被发送至输入识别组件1310以供处理。如在上文中所描述的示例,由输入识别组件1310所处理的输入包括但不限于话音/语音输入(例如,讲话)、文本输入、手势输入和手写输入等。在一个示例中,所接收的输入可以是查询或搜索查询,其中,用户将数据键入到命令提示符中并且期望从采用软输入键盘应用的系统/服务接收结果数据。
在示例中,输入识别组件1310可以被配置为执行处理操作,其用可用于对软输入键盘应用和/或服务进行评估以供进一步处理的数据来评估并标记/注释所接收到的输入(例如,查询)。作为示例,由输入识别组件1310所评估的信号可以包括用户上下文信号。用户上下文信号是能够用来收集信息的任何类型的信号数据,所述信息能够用于评估所接收到的查询/查询数据。用户上下文信号(或者可替代地基于用户上下文的查询级信号)的示例将以下项作为上下文考虑在内:用户、用户位置、用户语言数据、用户设备的形式因子、时间数据、入口点数据(例如,输入通过其被键入的应用)以及个性化等。获得这样各种的信号数据分组可以提供技术优点,例如,其中系统/服务能够排名并返回对用户最有用的结果。可以被收集和评估的示例性用户上下文信号数据可以包括但不限于:
用户数据:识别发起输入的用户的任何数据。用户数据还可以包括用户位置,例如当输入/查询被发出时用户的经度和纬度。
语言数据:指示与用户相关联的语言的数据,例如OS、应用等的语言,或者用于取回结果数据的优选语言等。
位置数据:可以用于从输入/查询识别任何位置数据的数据。
形式因子数据:识别与输入或应用或系统相关联的设备类型的数据。作为示例,这样的数据之所以可能是重要的是因为输入的意图可能基于在其上发起查询的设备(例如,台式机相对于手机)而非常不同;可替代地,获得以特定形式/格式(例如,应用/服务的移动版本)的结果数据的用户意图/期望。
入口点数据:指示发出输入/查询的系统/应用/服务的数据。例如,入口点数据是标识查询是否从搜索应用、智能个人助理、文字处理应用、日历应用等发起的信号数据。
应用执行数据:指示在处理设备/系统上执行的应用的数据。可以包括指示对一个或多个前台应用的检测以及对可能在处理设备/系统上执行/运行的其他应用的检测的数据。
时间数据:提供与所接收到的输入/查询相关联的时间维度的数据。例如,时间戳数据可以用于评估结果数据与所接收输入的意图的相关性。
个性化/上下文数据:诸如设备或应用(例如,浏览器、搜索引擎等)的用户的位置和/或语言偏好设置之类的数据。还可以考虑关于用户的先前查询、其他线程、线程中所涉及的用户、其他执行的应用/服务、域类型、偏好等的用户的上下文数据。
在示例中,输入识别组件1310可以获得针对用户上下文信号的数据并且注释输入/查询数据。经注释的数据可以被传递至系统1300的其他组件(例如,键盘组件1312)以供进一步处理。用于收集这样的用户上下文信号数据的处理操作可以是本领域技术人员已知的。在示例中,这样的处理操作可以包括一个或多个计算机可执行指令/编程操作、应用编程接口(API)、机器学习处理、以及能够提取和注释用户上下文信号数据的任何其他类型的编程应用或服务。本领域技术人员还应当理解的是,针对诸如用户上下文信号之类的输入/查询信号数据的评估的数据是在遵守保护用户的隐私法规的同时被收集的。
键盘组件1312是被配置为启动、执行和管理软输入键盘应用的显示的组件。在示例中,键盘组件1312可以与一个或多个存储(1314)接合以管理并在程序上更新在处理上执行的软输入键盘应用的显示。在示例中,键盘组件1312可以被配置为提供在本公开通篇中描述的功能,包括在图4A-12和图14A-16中所描述的功能。作为示例,键盘组件1312可以执行处理操作,所述处理操作包括但不限于:对前台应用的检测,对在前台应用或软输入键盘应用中键入的输入的检测,与输入相关联的上下文的评估,用于与之接合以获得结果数据的一个或多个服务的确定,包括第三方服务的服务与软输入键盘应用的集成以及扩展性,针对软输入键盘应用的显示和布局的用户界面元素管理,提供所建议/所推荐的内容,以及与软输入键盘应用相关联的模型的训练和更新等。在示例中,软输入键盘应用可以持续地更新以改进并自定义软输入键盘应用的用户体验。可以进行训练数据的连续缩放和更新,可以执行调试操作,可以执行度量和遥测分析(其包括采用分析工具、采样、测试操作、飞行操作等)来改进软输入键盘的处理和性能。在示例中,所收集的训练数据可以被收集并且用于通过键盘组件1312来管理软输入键盘应用的更新,所述训练数据例如查询点击数据和/或点击图、用户反馈、开发者测试数据等的。
图14A-14E示出了示例性方法,其涉及与可以利用其实践本公开的方面的示例性软输入键盘应用的交互。
图14A示出了针对示例性软输入键盘应用内的输入检测的示例性方法1400。作为示例,方法1400可以由例如在图1-3和13中所示的示例性系统来执行。在示例中,方法1400可以在设备上执行,该设备包括被配置为存储和执行操作、程序或指令的至少一个处理器。然而,方法1400不限于这样的示例。在至少一个示例中,方法1400可以由分布式网络的一个或多个组件来执行(例如,计算机实施的操作),所述组件例如web服务/分布式网络服务(例如,云服务)。在示例中,在方法1400中所执行的操作可以对应于由执行计算机程序、应用编程接口(API)或机器学习处理的系统和/或设备所执行的操作。
方法1400在操作1402处开始,其中显示软输入键盘应用。在示例中,操作1402可以包括显示多窗口的软输入键盘应用。软输入键盘应用用于提供针对一个或多个其他应用的应用命令控制。软输入键盘应用可以包括第一应用窗口,其显示针对软输入键盘应用的服务的两个或更多个用户界面元素。在示例中,第一应用窗口基于所检测到的前台应用进行显示/更新。用户界面元素能够用于所检测到的前台应用的应用命令控制。示例性软输入键盘应用还可以包括显示软输入键盘的第二应用窗口。第二应用窗口的显示可以更新,包括基于对第一应用窗口的用户界面元素的选择来替换软输入键盘的显示。在示例中,操作1402可以包括与至少一个前台应用同时地显示软输入键盘应用。所显示的软输入键盘应用可以与前台应用接合,包括检测在前台应用中所接收到的输入以及向前台应用传输内容。
流程可以进行至操作1404,其中在软输入键盘应用的第一应用窗口中接收对用户界面元素的选择。作为示例,第一应用窗口可以是在图4A-4H此外还有说明书的其他部分的描述中所描述的第一应用窗口404。对用户界面元素的选择可以包括对去往集成在软输入键盘应用内的服务的快捷方式的选择。
流程可以进行至操作1406,其中软输入键盘应用的第二应用窗口响应于对第一应用窗口中的用户界面元素的选择而被更新。作为示例,第二应用窗口可以是在图4A-4H此外还有说明书的其他部分的描述中所描述的第二应用窗口406。第二应用窗口的显示的更新可以包括用与第一应用窗口中的用户界面元素的选择相关联的内容替换软输入键盘的显示。作为示例,与第一应用窗口中的选择相关联的一个或多个额外的用户界面元素可以在第二应用窗口中被显示。在其他示例中,内容可以响应于对第一应用界面中的用户界面元素的选择而从在第二应用窗口中与软输入键盘应用集成的一个或多个服务中取回。
流程可以进行至决策操作1408,其中确定是否在软输入键盘应用中进行了另一个选择。如果是,则流程分支去往YES(是),并且返回至处理操作1404以供进一步处理。如果否,则方法1400结束,或者软输入键盘保持空闲直到检测到另外的输入为止。
图14B示出了针对示例性软输入键盘应用内的输入检测的示例性方法1420。作为示例,方法1420可以由例如在图1-3和13中所示的示例性系统来执行。在示例中,方法1420可以在设备上执行,该设备包括被配置为存储和执行操作、程序或指令的至少一个处理器。然而,方法1420不限于这样的示例。在至少一个示例中,方法1420可以由分布式网络的一个或多个组件来执行(例如,计算机实施的操作),所述组件例如web服务/分布式网络服务(例如,云服务)。在示例中,在方法1420中所执行的操作可以对应于由执行计算机程序、应用编程接口(API)或机器学习处理的系统和/或设备所执行的操作等。
方法1420在操作1422开始处,其中显示软输入键盘应用。在示例中,操作1422可以包括显示多窗口的软输入键盘应用。软输入键盘应用用于提供针对一个或多个其他应用的应用命令控制。软输入键盘应用可以包括第一应用窗口,其显示针对软输入键盘应用的服务的两个或更多个用户界面元素。在示例中,第一应用窗口基于所检测到的前台应用进行显示/更新。用户界面元素能够用于所检测到的前台应用的应用命令控制。示例性软输入键盘应用还可以包括显示软输入键盘的第二应用窗口。第二应用窗口的显示可以更新,包括基于对第一应用窗口的用户界面元素的选择来替换软输入键盘的显示。在示例中,操作1422可以包括与至少一个前台应用同时地显示软输入键盘应用。所显示的软输入键盘应用可以与前台应用接合,包括检测在前台应用中所接收到的输入以及向前台应用传输内容。
流程可以进行至操作1424,其中在软输入键盘应用的第三应用窗口中接收到选择。作为示例,第三应用窗口可以是在图4A-4H此外还有说明书的其他部分的描述中所描述的第三应用窗口408。对第三应用窗口内的用户界面元素的选择可以触发针对软输入键盘应用内的命令控制的动作。
流程可以进行至操作1426,其中软输入键盘应用的显示基于对第三应用窗口中的用户界面元素的选择而被更新。例如,第三应用窗口408可以提供命令控制,其包括但不限于:改变软输入键盘应用的尺寸或状态(例如,最小化、最大化、关闭、较大视图/图标、较小视图/图标),对应用窗口的命令控制(其包括用于在应用窗口内的内容之间导航的命令控制),用于切换软输入键盘的显示的命令控制,以及用于选择和取消选择内容的命令控制等。作为示例,第二应用窗口可以基于所述选择而被更新。第二应用窗口的更新可以包括例如响应于对用于切换软输入键盘的显示的用户界面元素的选择而替换软输入键盘的显示。
流程可以进行至决策操作1428,其中确定是否在软输入键盘应用中进行了另一个选择。如果是,则流程分支去往YES(是),并且返回至处理操作1404以供进一步处理。如果否,则方法1420结束,或者软输入键盘保持空闲直到检测到另外的输入为止。
图14C示出了针对示例性软输入键盘应用内的输入检测的示例性方法1440。作为示例,方法1440可以由例如在图1-3和13中所示的示例性系统来执行。在示例中,方法1440可以在设备上执行,该设备包括被配置为存储和执行操作、程序或指令的至少一个处理器。然而,方法1440不限于这样的示例。在至少一个示例中,方法1440可以由分布式网络的一个或多个组件来执行(例如,计算机实施的操作),所述组件例如web服务/分布式网络服务(例如,云服务)。在示例中,在方法1440中所执行的操作可以对应于由执行计算机程序、应用编程接口(API)或机器学习处理的系统和/或设备所执行的操作。
方法1440在操作1442处开始,其中显示软输入键盘应用。在示例中,操作1442可以包括显示多窗口的软输入键盘应用。软输入键盘应用用于提供针对一个或多个其他应用的应用命令控制。软输入键盘应用可以包括第一应用窗口,其显示针对软输入键盘应用的服务的两个或更多个用户界面元素。在示例中,第一应用窗口基于所检测到的前台应用进行显示/更新。用户界面元素能够用于所检测到的前台应用的应用命令控制。示例性软输入键盘应用还可以包括显示软输入键盘的第二应用窗口。第二应用窗口的显示可以更新,包括基于对第一应用窗口的用户界面元素的选择来替换软输入键盘的显示。在示例中,操作1442可以包括与至少一个前台应用同时地显示软输入键盘应用。所显示的软输入键盘应用可以与前台应用接合,包括检测在前台应用中所接收到的输入以及向前台应用传输内容。
流程可以继续进行以检测(操作1444)前台应用中的线程。作为示例,前台应用可以与软输入键盘应用同时执行。
在方法1440的一个示例中,流程可以进行至操作1446,其中在软输入键盘应用的窗口中接收到对用户界面元素的选择。在一个示例中,用户可以希望利用软输入键盘应用内的一个或多个服务以将从服务取回的结果数据集成到前台应用中。例如,用户可以希望获得有关一个区域中的餐厅的数据以完成今晚“let’s eat dinner at___(让我们在___吃晚餐)”的输入。作为响应,软输入键盘应用的显示被更新(操作1448)。作为示例,与识别餐厅或其他吃饭的地方相关联的服务的选择,软输入键盘应用的显示可以被更新(例如,在第二应用窗口中)以示出餐厅。在可替代的示例中,与餐厅相关联的服务可以识别用于查找该区域中的餐厅的不同应用以供用户选择。由此,对应用中的一个应用的选择可以触发对启动所选择的应用的应用窗口的显示的进一步更新。流程可以继续进行以接收(操作1450)软输入键盘应用的第二窗口内的选择。作为响应,内容可以从软输入键盘应用被插入(操作1452)到所检测到的前台应用中。作为示例,操作1452可以包括将从软输入键盘应用所选择的内容发送至前台应用。
在方法1440的另一个示例中,流程可以从操作1444进行至操作1454,其中软输入键盘应用的第一应用窗口的显示被更新。也就是说,软输入键盘应用可以基于前台应用以及键入到前台应用中的输入动态地进行更新,而无需用户选择软输入键盘应用的用户界面元素。在操作1454中,第一应用窗口的显示可以利用从与软输入键盘应用集成的一个或多个服务中所取回的内容进行更新。响应于诸如对所接收的输入/查询的结果数据之类的所取回的内容的显示,流程可以进行至操作1456,其中在软输入键盘应用的第一应用窗口内接收对内容的选择。响应于该选择(操作1456),流程可以进行至操作1458,其中所选择内容从软输入键盘应用被发送至前台应用。流程可以进行至操作1460,其中内容在前台应用内被显示,例如在输入字段、线程、多个线程等中。
图14D示出了针对示例性软输入键盘应用内的输入检测的示例性方法1470。作为示例,方法1470可以由诸如图1-3和13中所示的示例性系统来执行。在示例中,方法1470可以在设备上执行,该设备包括被配置为存储和执行操作、程序或指令的至少一个处理器。然而,方法1470不限于这样的示例。在至少一个示例中,方法1470可以由分布式网络的一个或多个组件来执行(例如,计算机实施的操作),所述组件例如web服务/分布式网络服务(例如,云服务)。在示例中,在方法1470中所执行的操作可以对应于由执行计算机程序、应用编程接口(API)或机器学习处理的系统和/或设备所执行的操作。
方法1470在操作1472处开始,其中显示软输入键盘应用。在示例中,操作1472可以包括显示多窗口的软输入键盘应用。软输入键盘应用用于提供针对一个或多个其他应用的应用命令控制。软输入键盘应用可以包括第一应用窗口,其显示针对软输入键盘应用的服务的两个或更多个用户界面元素。在示例中,第一应用窗口基于所检测到的前台应用进行显示/更新。用户界面元素能够用于所检测到的前台应用的应用命令控制。示例性软输入键盘应用还可以包括显示软输入键盘的第二应用窗口。第二应用窗口的显示可以更新,包括基于对第一应用窗口的用户界面元素的选择来替换软输入键盘的显示。在示例中,操作1472可以包括与至少一个前台应用同时地显示软输入键盘应用。所显示的软输入键盘应用可以与前台应用接合,包括检测在前台应用中所接收到的输入以及向前台应用传输内容。
流程可以进行至操作1474,其中在前台应用中检测到一个或多个当前线程。对前台应用内的线程的检测已经在先前示例中进行了详细描述。流程可以继续进行以使用软输入键盘应用来评估(操作1476)当前线程的上下文。作为示例,操作1476可以包括例如由处理操作(例如,API、机器学习处理等)键入到前台应用中的输入的评估,以识别与所键入的输入相关联的上下文模式。操作1476还可以包括对所接收到的输入内的定界符命令的输入的检测,所述定界符命令可以触发针对输入的完成的具体服务。操作1476还可以包括评估上下文信号(例如,在图13此外还有本公开的其他部分中所描述的用户上下文信号)以最佳地确定可以满足所接收的输入的意图的服务并且为服务提供用于评估输入的上下文。流程可以进行至操作1478,其中执行上下文自动完成操作以将内容(经由自动完成)插入到前台应用和软输入键盘应用中的至少一个中。例如,由软输入键盘应用进行的处理操作可以将内容直接插入到前台应用中。可替代地,内容可以在软输入键盘应用中被提供以供用户进一步评估内容、额外建议等。流程可以进行至决策操作1480,其中确定当前线程是否进一步被更新。如果是,则流程分支去往YES(是),并且返回至处理操作1474以供进一步处理。如果否,则方法1480结束,或者软输入键盘保持空闲直到检测到另外的输入为止。
图14E示出了针对示例性软输入键盘应用内的输入检测的示例性方法1490。作为示例,方法1490可以由例如在图1-3和13中所示的示例性系统来执行。在示例中,方法1490可以在设备上执行,该设备包括被配置为存储和执行操作、程序或指令的至少一个处理器。然而,方法1490不限于这样的示例。在至少一个示例中,方法1490可以由分布式网络的一个或多个组件来执行(例如,计算机实施的操作),所述组件例如web服务/分布式网络服务(例如,云服务)。在示例中,在方法1490中所执行的操作可以对应于由执行计算机程序、应用编程接口(API)或机器学习处理的系统和/或设备所执行的操作。
方法1490可以与对关联于软输入键盘应用的定界符命令的检测相关联。定界符命令、检测和处理的示例已经在先前的示例中进行了描述。方法1490突出显示与所检测到的定界符命令的处理相关联的用户界面交互。
方法1490在操作1492处开始,其中显示软输入键盘应用。在示例中,操作1492可以包括显示多窗口的软输入键盘应用。软输入键盘应用用于提供针对一个或多个其他应用的应用命令控制。软输入键盘应用可以包括第一应用窗口,其显示针对软输入键盘应用的服务的两个或更多个用户界面元素。在示例中,第一应用窗口基于所检测到的前台应用进行显示/更新。用户界面元素能够用于所检测到的前台应用的应用命令控制。示例性软输入键盘应用还可以包括显示软输入键盘的第二应用窗口。第二应用窗口的显示可以更新,包括基于对第一应用窗口的用户界面元素的选择来替换软输入键盘的显示。在示例中,操作1492可以包括与至少一个前台应用同时地显示软输入键盘应用。所显示的软输入键盘应用可以与前台应用接合,包括检测在前台应用中所接收到的输入以及向前台应用传输内容。
流程可以进行至操作1494,其中检测到定界符命令的插入。作为示例,操作1494可以检测定界符命令在前台应用和软输入键盘应用中的至少一个中的键入。流程可以进行至操作1496,其中软输入键盘应用的显示基于所检测到的定界符命令而被更新。作为示例,软输入键盘应用可以基于所接收到的输入而被更新(操作1496),以显示与定界符命令相关联的服务,或者在其他示例中,显示从与定界符命令相关联的服务所取回的内容。流程可以进行至操作1498,其中内容可以由软输入键盘应用基于对定界符命令和所接收的输入的处理而被插入到前台应用。
图15是可以利用其实践本公开的方面的用于与一个或多个前台应用进行交互的示例性方法1500。作为示例,方法1500可以由例如在图1-3和13中所示的示例性系统来执行。在示例中,方法1500可以在设备上执行,该设备包括被配置为存储和执行操作、程序或指令的至少一个处理器。然而,方法1500不限于这样的示例。在至少一个示例中,方法1500可以由分布式网络的一个或多个组件来执行(例如,计算机实施的操作),所述组件例如web服务/分布式网络服务(例如,云服务)。在示例中,在方法1500中所执行的操作可以对应于由执行计算机程序、应用编程接口(API)或机器学习处理的系统和/或设备所执行的操作。
方法1500突出显示对前台应用的检测以及对前台应用的改变的检测,例如,其中另一个应用被启动或者被检测为当前前台应用。作为示例,方法1500可以由诸如客户端设备之类的单个处理设备来执行。方法1500的流程在操作1502开始,其中前台应用被显示或启动。流程可以继续进行以检测(操作1504)对可以连同前台应用一起执行的软输入键盘应用的输入。可替代地,操作1504可以包括检测在前台应用中所接收到的输入。与所接收的输入相关联的数据可以被中继(操作1506)至与软输入键盘应用相关的一个或多个服务。结果数据可以从一个或多个服务取回并且在前台应用和软输入键盘应用中的至少一个中被显示(操作1508)。
流程可以进行至决策操作1510,其中确定是否检测到针对前台应用的改变。确定(操作1510)可以识别对前台应用的改变,例如,其中另一个应用被启动或者被检测为当前前台应用。响应于对前台应用的改变的检测,流程分支去往YES(是)并且进行至操作1512,其中更新软输入键盘应用的显示。作为示例,操作1512可以包括动态地更新软输入键盘应用的用户界面元素的显示,以提供可能最适合于新检测到的前台应用的一个或多个用户界面元素。在一些示例中,可以显示诸如建议/推荐之类的内容。软输入键盘应用的一个或多个应用窗口的显示可以在操作1512中被更新。流程可以返回至1504,以等待输入在前台应用或软输入键盘应用中被接收。如果没有检测到对前台应用的改变,则流程分支去往NO(否)并且返回至操作1504,以等待输入在前台应用或软输入键盘应用中被接收。
图16是示例性方法1600,其用于将可以利用其实践本公开的方面的示例性软输入键盘应用作为服务来提供。作为示例,方法1600可以由例如在图1-3和13中所示的示例性系统来执行。在示例中,方法1600可以在设备上执行,该设备包括被配置为存储和执行操作、程序或指令的至少一个处理器。然而,方法1600不限于这样的示例。在至少一个示例中,方法1600可以由分布式网络的一个或多个组件来执行(例如,计算机实施的操作),所述组件例如web服务/分布式网络服务(例如,云服务)。在示例中,在方法1600中所执行的操作可以对应于由执行计算机程序、应用编程接口(API)或机器学习处理的系统和/或设备所执行的操作。
方法1600突出显示通过分布式网络作为服务提供的软输入键盘应用。方法1600可以在操作1602处开始,其中显示软输入键盘应用。软输入键盘应用的示例先前已经如上文所描述的被提供。流程可以进行至操作1604,其中在所检测到的前台应用和软输入键盘应用的至少一个中检测到输入的键入。流程可以进行至操作1606,其中用户上下文信号数据以及与所接收到的输入相关联的数据被传输至通过分布式网络连接的一个或多个服务设备。用户上下文信号数据的示例在图13的描述中被提供。与所接收到的输入相关联的数据可以包括连同额外的评估信息一起被键入到前台应用或软输入键盘应用中的文本或输入,所述额外的评估信息是由软输入键盘应用基于对与所接收到的输入相关联的上下文的评估提供的。流程可以进行至操作1608,其中结果数据在软输入键盘应用中被显示。操作1608可以包括基于结果数据/内容的发送(操作1606)从一个或多个服务中接收结果数据,以及在软输入键盘应用中显示所述结果数据。在一些示例中,可以进行反复的交换,其中在软输入键盘应用和取回结果数据的服务之间进行多次交换。
流程可以进行至操作1610,其中确定是否接收到随后的输入。如果是,则流程分支去往YES(是)并且返回至操作1604以供进一步处理。如果否,则方法1600结束或者软输入键盘应用保持空闲直到检测到进一步的输入为止。
在该说明书通篇中对“一个示例”或“示例”的引用意味着所描述的特定特征、结构或特性被包括在至少一个示例中。因此,这样的短语的使用可以指代多于仅一个示例。此外,所描述的特征、结构或特性可以在一个或多个示例中以任何合适的方式来组合。
然而,本领域的技术人员应当理解,示例可以在没有所述具体细节中的一个或多个的情况下被实践,或者利用其他方法、资源、素材等被实践。在其他实例中,没有示出或详细描述公知的结构、资源或操作,仅仅是因为观察到对示例的多个方面的混淆。
尽管已经示出并描述了样本示例和应用,但是要理解的是,示例不限于以上所描述的精确配置和资源。可以对在本文中所公开的方法和系统的布置、操作和细节进行本领域技术人员显而易见的各种修改、改变和变化而不脱离所要求保护的示例的范围。

Claims (15)

1.一种系统,包括:
至少一个处理器;以及
与所述处理器可操作地连接的存储器,其存储计算机可执行指令,所述计算机可执行指令当被执行时使得所述处理器执行以下操作:
显示软输入键盘应用,其中,所述软输入键盘应用是多窗口应用命令控制,其包括:
第一应用窗口,其显示针对所述软输入键盘应用的服务的两个或更多个用户界面元素,其中,所述第一应用窗口基于在所述系统上执行的所检测到的前台应用来更新,并且其中,所述用户界面元素能够用于所检测到的前台应用的应用命令控制,
第二应用窗口,其显示软输入键盘,其中,所述第二应用窗口的显示通过以下方式来更新:基于对所述第一应用窗口的用户界面元素的选择,利用与对所述第一应用窗口的用户界面元素的选择相关联的内容来替换所述软输入键盘的显示。
2.根据权利要求1所述的系统,其中,所述软输入键盘应用还包括:
第三应用窗口,其显示针对所述软输入键盘应用的命令控制,其中,所述第三应用窗口包括:用于切换所述软输入键盘的显示的应用命令控制。
3.根据权利要求2所述的系统,其中,所述计算机可执行指令使得所述处理器执行以下操作:
在所述第一应用窗口中接收对所述用户界面元素的选择;
更新所述第二应用窗口的显示以显示针对与所选择的用户界面元素相关联的应用命令控制的一个或多个额外的用户界面元素,其中,所述更新还包括用所述额外的用户界面元素中的一个或多个用户界面元素的显示来替换所述软输入键盘;
在所述第三应用窗口中接收对用于切换所述软输入键盘的显示的所述应用命令控制的选择;以及
响应于在所述第三应用窗口中接收到所述选择,在所述第二应用窗口中重新显示所述软输入键盘。
4.根据权利要求1所述的系统,其中,所述计算机可执行指令使得所述处理器执行以下操作:
检测在所述前台应用中执行的线程;以及
更新所述第一应用窗口的显示,以显示从所检测到的前台应用外部的服务所取回的内容。
5.根据权利要求4所述的系统,其中,所述计算机可执行指令使得所述处理器执行以下操作:
在所述第一应用窗口中接收对所取回的内容的选择;以及
响应于所述选择,将所取回的内容发送至所检测到的前台应用;并且
响应于所述选择,在所检测到的前台应用中显示所取回的内容。
6.根据权利要求1所述的系统,其中,所述计算机可执行指令使得所述处理器执行以下操作:
检测在所述前台应用中执行的线程;
在所述第一应用窗口中接收对所述用户界面元素的选择;以及
更新所述第二应用窗口的显示,以显示针对与所选择的用户界面元素相关联的应用命令控制的一个或多个额外的用户界面元素,其中,所述更新还包括用所述用户界面元素中的一个或多个用户界面元素的显示来替换所述软输入键盘。
7.根据权利要求6所述的系统,其中,所述计算机可执行指令使得所述处理器执行以下操作:
在所述第二应用窗口中接收对针对应用命令控制的用户界面元素的选择;以及
响应于所述选择,将内容插入到所检测到的前台应用中。
8.根据权利要求1所述的系统,其中所述计算机可执行指令使得所述处理器执行以下操作:
在所检测到的前台应用中检测针对所述软输入键盘应用的定界符的插入;以及
响应于所检测到的所述定界符的所述插入,更新所述第一应用窗口和所述第二应用窗口中的一个或多个的显示。
9.根据权利要求8所述的系统,其中,所述第一应用窗口和所述第二应用窗口中的一个或多个的显示的所述更新还包括:识别与所述定界符相关联的一个或多个服务,以及在所述第一应用窗口和所述第二应用窗口中的至少一个中提供与所述一个或多个服务相关联的内容。
10.根据权利要求1所述的系统,其中,所述计算机可执行指令使得所述处理器执行以下操作:
检测在所述前台应用中执行的当前线程;
使用所述软输入键盘应用来评估所述当前线程的上下文;以及
基于对所述当前线程的所述上下文的评估来在所检测到的前台应用中提供内容的上下文自动完成。
11.根据权利要求1所述的系统,其中,所述计算机可执行指令使得所述处理器执行以下操作:
检测在所述前台应用中执行的线程;以及
更新所述第二应用窗口的显示,以显示从所检测到的前台应用外部的两个或更多个服务所取回的内容,并且
其中,从所述两个或更多个服务所取回的所述内容包括基于对在所述前台应用中执行的所述线程的评估所确定的推荐内容。
12.一种计算机实现的方法,包括:
显示作为前台应用操作的第一应用;
显示软输入键盘应用,其中,所述软输入键盘应用是多窗口应用命令控制,其包括:
第一应用窗口,其显示针对所述软输入键盘应用的服务的两个或更多个用户界面元素,其中,所述第一应用窗口基于检测到的前台应用来更新,并且其中,所述用户界面元素能够用于所检测到的前台应用的应用命令控制,
第二应用窗口,其显示软输入键盘,其中,所述第二应用窗口的显示通过以下方式来更新:基于对所述第一应用窗口的用户界面元素的选择,利用与对所述第一应用窗口的用户界面元素的选择相关联的内容来替换所述软输入键盘的显示;
使用所述软输入键盘应用来检测所接收的对所述第一应用的输入;
使用所述软输入键盘应用来将与在所述第一应用中接收到的所述输入相关联的数据中继至至少一个服务;以及
在所述软输入键盘应用内显示从所述服务所取回的结果数据。
13.根据权利要求12所述的计算机实现的方法,其中,所述服务是从包括以下服务的组中选择的服务:在操作所述软输入键盘应用的处理设备上本地存储的服务以及分布式服务。
14.一种系统,包括:
至少一个处理器;以及
与所述处理器可操作地连接的存储器,其存储计算机可执行指令,所述计算机可执行指令当被执行时使得所述处理器执行以下操作:
显示软输入键盘应用,其中,所述软输入键盘应用是多窗口应用命令控制,其包括:
第一应用窗口,其显示针对所述软输入键盘应用的服务的两个或更多个用户界面元素,其中,所述第一应用窗口基于在所述系统上执行的所检测到的前台应用来更新,并且其中,所述用户界面元素能够用于所检测到的前台应用的应用命令控制,
第二应用窗口,其显示软输入键盘,其中,所述第二应用窗口的显示通过以下方式来更新:基于对所述第一应用窗口的用户界面元素的选择,利用与对所述第一应用窗口的用户界面元素的选择相关联的内容来替换所述软输入键盘的显示,
接收对所检测到的前台应用和所述软输入键盘应用中的至少一个中的输入,
将从所述系统所收集的用户上下文信号数据以及与所接收到的输入相关联的数据发送至通过分布式网络与所述系统连接的至少一个处理设备,以及
显示从所述至少一个处理设备所接收的结果数据。
15.根据权利要求14所述的系统,其中,所述用户上下文信号数据包括从包括以下数据的组中选择的两个或更多个数据:所述系统的位置数据、语言数据、所述系统的用户的用户数据、关于在所述系统上执行的应用的数据、所述系统的设备数据、以及时间数据,其中,与所接收到的输入相关联的数据包括以下中的至少一个:所接收到的输入以及与对所接收到的输入进行评估相关联的上下文处理信号,并且其中,所述结果数据是从与所述至少一个处理设备相关联的一个或多个服务返回的。
CN201680059684.XA 2015-10-12 2016-09-30 多窗口键盘 Active CN108139862B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/880,395 US10496275B2 (en) 2015-10-12 2015-10-12 Multi-window keyboard
US14/880,395 2015-10-12
PCT/US2016/054570 WO2017065987A1 (en) 2015-10-12 2016-09-30 Multi-window keyboard

Publications (2)

Publication Number Publication Date
CN108139862A CN108139862A (zh) 2018-06-08
CN108139862B true CN108139862B (zh) 2021-08-03

Family

ID=57130467

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680059684.XA Active CN108139862B (zh) 2015-10-12 2016-09-30 多窗口键盘

Country Status (4)

Country Link
US (2) US10496275B2 (zh)
EP (1) EP3362882B1 (zh)
CN (1) CN108139862B (zh)
WO (2) WO2017065987A1 (zh)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10976922B2 (en) * 2013-02-17 2021-04-13 Benjamin Firooz Ghassabian Data entry systems
US10037576B2 (en) 2015-07-02 2018-07-31 Cfph, Llc Visualization of changes through the use of graphical geometric shapes
US10496275B2 (en) 2015-10-12 2019-12-03 Microsoft Technology Licensing, Llc Multi-window keyboard
US20170132052A1 (en) * 2015-11-10 2017-05-11 Nice-Systems Ltd Analyzing and automating work-flow in a computerized user-interface
USD813270S1 (en) * 2015-11-13 2018-03-20 Cfph, Llc Display screen with animated graphical user interface
US20180101762A1 (en) * 2015-12-10 2018-04-12 Pablo Gutierrez Graphical interfaced based intelligent automated assistant
US10768810B2 (en) 2016-02-11 2020-09-08 Hyperkey, Inc. Enhanced keyboard including multiple application execution
US9939962B2 (en) * 2016-02-11 2018-04-10 Hyperkey, Inc. Enhanced keyboard including multiple application execution
US10976923B2 (en) * 2016-02-11 2021-04-13 Hyperkey, Inc. Enhanced virtual keyboard
US10254900B2 (en) * 2016-02-18 2019-04-09 Tufts University Drifting keyboard
USD912682S1 (en) * 2016-03-29 2021-03-09 Beijing Sogou Technology Development Co., Ltd. Display screen or portion thereof with animated graphical user interface
US9965530B2 (en) * 2016-04-20 2018-05-08 Google Llc Graphical keyboard with integrated search features
US10222957B2 (en) 2016-04-20 2019-03-05 Google Llc Keyboard with a suggested search query region
US10078673B2 (en) 2016-04-20 2018-09-18 Google Llc Determining graphical elements associated with text
US10305828B2 (en) 2016-04-20 2019-05-28 Google Llc Search query predictions by a keyboard
US10140017B2 (en) * 2016-04-20 2018-11-27 Google Llc Graphical keyboard application with integrated search
US10664157B2 (en) 2016-08-03 2020-05-26 Google Llc Image search query predictions by a keyboard
KR20180019392A (ko) * 2016-08-16 2018-02-26 엘지전자 주식회사 이동 단말기 및 그 제어방법
US10409487B2 (en) 2016-08-23 2019-09-10 Microsoft Technology Licensing, Llc Application processing based on gesture input
US10216368B2 (en) * 2016-11-14 2019-02-26 Microsoft Technology Licensing, Llc Layered content selection
EP3622391A1 (en) * 2017-06-27 2020-03-18 Google LLC Accessing application features from within a graphical keyboard
CN107357577A (zh) * 2017-07-01 2017-11-17 北京奇虎科技有限公司 一种基于移动终端的用户交互界面的搜索方法及装置
KR102350954B1 (ko) * 2017-08-22 2022-01-14 삼성전자주식회사 메시지를 전송하는 전자 장치 및 그 동작 방법
US10482504B2 (en) * 2017-08-24 2019-11-19 William McMichael Systems and methods for analyzing input data and presenting information
KR102532300B1 (ko) * 2017-12-22 2023-05-15 삼성전자주식회사 어플리케이션 실행 방법 및 이를 위한 장치
KR102456601B1 (ko) * 2018-02-23 2022-10-19 삼성전자주식회사 키보드 레이아웃과 관련된 기능을 제공하기 위한 장치 및 방법
USD899435S1 (en) * 2018-03-16 2020-10-20 Magic Leap, Inc. Display panel or portion thereof with graphical user interface
EP3783462B1 (en) * 2018-05-10 2022-12-07 Honor Device Co., Ltd. Method for displaying virtual keyboard of input method, and terminal
US10949272B2 (en) * 2018-06-14 2021-03-16 Microsoft Technology Licensing, Llc Inter-application context seeding
CN110083429B (zh) * 2019-04-29 2024-03-22 努比亚技术有限公司 可穿戴设备及其输入法面板显示控制方法和存储介质
CN110515510B (zh) * 2019-08-20 2021-03-02 北京小米移动软件有限公司 数据处理方法、装置、设备及存储介质
US10860178B1 (en) * 2019-09-05 2020-12-08 Shabu Ans Kandamkulathy Task management through soft keyboard applications
WO2021167633A1 (en) * 2020-02-21 2021-08-26 Google Llc Systems and methods for improved searching and categorizing of media content items based on a destination for the media content item
USD945464S1 (en) * 2020-06-18 2022-03-08 Apple Inc. Display screen or portion thereof with graphical user interface
KR20220012599A (ko) * 2020-07-23 2022-02-04 삼성전자주식회사 전자 장치에서 키패드를 이용한 컨텐츠 검색을 제공하는 방법 및 장치
WO2022169992A1 (en) * 2021-02-04 2022-08-11 Keys Inc Intelligent keyboard
US11903766B2 (en) * 2021-03-23 2024-02-20 GE Precision Healthcare LLC Systems and methods for a user interface for a medical imaging system
US11954318B2 (en) * 2022-02-20 2024-04-09 Monday.com Ltd. Dynamically adjusting GUI elements to reflect user multi-selection

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1940836A (zh) * 2005-09-29 2007-04-04 致伸科技股份有限公司 适应性触摸式屏幕的输入方法
CN101989169A (zh) * 2009-07-29 2011-03-23 摩托罗拉移动公司 用于输入中文字符的方法和装置
CN102866850A (zh) * 2011-07-06 2013-01-09 三星电子株式会社 用于在触摸屏上输入字符的装置和方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5963671A (en) 1991-11-27 1999-10-05 International Business Machines Corporation Enhancement of soft keyboard operations using trigram prediction
US20040015539A1 (en) * 2002-07-16 2004-01-22 Andrew Alegria Content exporting from one application to another
US9785329B2 (en) 2005-05-23 2017-10-10 Nokia Technologies Oy Pocket computer and associated methods
US8564544B2 (en) 2006-09-06 2013-10-22 Apple Inc. Touch screen device, method, and graphical user interface for customizing display of content category icons
US8584031B2 (en) 2008-11-19 2013-11-12 Apple Inc. Portable touch screen device, method, and graphical user interface for using emoji characters
US9116615B2 (en) 2009-10-13 2015-08-25 Blackberry Limited User interface for a touchscreen display
EP2326068A1 (en) 2009-11-19 2011-05-25 Research In Motion Limited Adaptive keyboard with physical feedback
US9292171B2 (en) * 2010-11-17 2016-03-22 International Business Machines Corporation Border menu for context dependent actions within a graphical user interface
US11099733B2 (en) 2011-09-30 2021-08-24 Microsoft Technology Licensing, Llc Dynamic command presentation and key configuration for keyboards
US20130285927A1 (en) 2012-04-30 2013-10-31 Research In Motion Limited Touchscreen keyboard with correction of previously input text
US9128921B2 (en) 2012-05-31 2015-09-08 Blackberry Limited Touchscreen keyboard with corrective word prediction
US20140101553A1 (en) 2012-10-10 2014-04-10 Jens Nagel Media insertion interface
KR102014778B1 (ko) 2012-12-14 2019-08-27 엘지전자 주식회사 텍스트 메시징 서비스를 제공하는 디지털 디바이스 및 그 제어 방법
US10270720B2 (en) * 2012-12-20 2019-04-23 Microsoft Technology Licensing, Llc Suggesting related items
US10228819B2 (en) * 2013-02-04 2019-03-12 602531 British Cilumbia Ltd. Method, system, and apparatus for executing an action related to user selection
CA2842031A1 (en) 2013-02-04 2014-08-04 602531 British Columbia Ltd. Method, system, and apparatus for executing an action related to user selection
IL226047A (en) 2013-04-29 2017-12-31 Hershkovitz Reshef May A method and system for giving personal expressions
US9916329B2 (en) * 2013-07-02 2018-03-13 Facebook, Inc. Selecting images associated with content received from a social networking system user
KR20150030406A (ko) * 2013-09-12 2015-03-20 삼성전자주식회사 키 입력 또는 그의 조합을 이용하여 애플리케이션을 제어하는 방법 및 장치
US9461945B2 (en) 2013-10-18 2016-10-04 Jeffrey P. Phillips Automated messaging response
US9176668B2 (en) * 2013-10-24 2015-11-03 Fleksy, Inc. User interface for text input and virtual keyboard manipulation
US10812429B2 (en) 2015-04-03 2020-10-20 Glu Mobile Inc. Systems and methods for message communication
US20170083519A1 (en) 2015-09-22 2017-03-23 Riffsy, Inc. Platform and dynamic interface for procuring, organizing, and retrieving expressive media content
US10496275B2 (en) 2015-10-12 2019-12-03 Microsoft Technology Licensing, Llc Multi-window keyboard

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1940836A (zh) * 2005-09-29 2007-04-04 致伸科技股份有限公司 适应性触摸式屏幕的输入方法
CN101989169A (zh) * 2009-07-29 2011-03-23 摩托罗拉移动公司 用于输入中文字符的方法和装置
CN102866850A (zh) * 2011-07-06 2013-01-09 三星电子株式会社 用于在触摸屏上输入字符的装置和方法

Also Published As

Publication number Publication date
CN108139862A (zh) 2018-06-08
EP3362882B1 (en) 2021-05-26
EP3362882A1 (en) 2018-08-22
US20170102871A1 (en) 2017-04-13
US10496275B2 (en) 2019-12-03
US10802709B2 (en) 2020-10-13
WO2017176537A1 (en) 2017-10-12
WO2017065987A1 (en) 2017-04-20
US20170102870A1 (en) 2017-04-13

Similar Documents

Publication Publication Date Title
CN108139862B (zh) 多窗口键盘
US10666594B2 (en) Proactive intelligent personal assistant
CN110741348B (zh) 表情符号建议器和适配的用户界面
RU2701129C2 (ru) Контекстные действия в голосовом пользовательском интерфейсе
CN108369600B (zh) web浏览器扩展
CN111247778A (zh) 使用web智能的对话式/多回合的问题理解
US10757048B2 (en) Intelligent personal assistant as a contact
US11113039B2 (en) Integrated note-taking functionality for computing system entities
US10558950B2 (en) Automatic context passing between applications
CN108027825B (zh) 在企业中暴露外部内容
CN108885535B (zh) 多窗口虚拟键盘
US10534780B2 (en) Single unified ranker
CN109952557B (zh) 分层内容选择
CN109643215B (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