CN112166402A - 用于使用手势识别器处理输入的设备和方法 - Google Patents
用于使用手势识别器处理输入的设备和方法 Download PDFInfo
- Publication number
- CN112166402A CN112166402A CN201980035070.1A CN201980035070A CN112166402A CN 112166402 A CN112166402 A CN 112166402A CN 201980035070 A CN201980035070 A CN 201980035070A CN 112166402 A CN112166402 A CN 112166402A
- Authority
- CN
- China
- Prior art keywords
- input
- gesture
- gesture recognizer
- component
- recognizer
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims description 176
- 238000000034 method Methods 0.000 title claims description 155
- 230000004044 response Effects 0.000 claims abstract description 60
- 230000015654 memory Effects 0.000 claims description 56
- 238000012544 monitoring process Methods 0.000 claims description 42
- 238000003860 storage Methods 0.000 claims description 15
- 230000010365 information processing Effects 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 7
- 230000033001 locomotion Effects 0.000 description 75
- 230000008569 process Effects 0.000 description 35
- 230000004043 responsiveness Effects 0.000 description 26
- 238000004891 communication Methods 0.000 description 24
- 230000002708 enhancing effect Effects 0.000 description 20
- 230000002093 peripheral effect Effects 0.000 description 19
- 241000699666 Mus <mouse, genus> Species 0.000 description 18
- 230000003287 optical effect Effects 0.000 description 17
- 238000001514 detection method Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 230000003252 repetitive effect Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 14
- 230000001965 increasing effect Effects 0.000 description 12
- 238000007726 management method Methods 0.000 description 11
- 238000012546 transfer Methods 0.000 description 9
- 230000007704 transition Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 230000000007 visual effect Effects 0.000 description 8
- 230000003993 interaction Effects 0.000 description 7
- 238000007796 conventional method Methods 0.000 description 6
- 238000006073 displacement reaction Methods 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 230000003213 activating effect Effects 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 239000003550 marker Substances 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 230000021317 sensory perception Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000035807 sensation Effects 0.000 description 3
- 241001422033 Thestylus Species 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 230000001976 improved effect Effects 0.000 description 2
- 238000003825 pressing Methods 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 101100468543 Caenorhabditis elegans drag-1 gene Proteins 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000881 depressing effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000004424 eye movement Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000008093 supporting effect Effects 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction 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/0488—Interaction 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/04883—Interaction 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 for inputting data by handwriting, e.g. gesture or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction 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/0488—Interaction 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04808—Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
一种电子设备经由输入设备检测输入。响应于检测到所述输入,所述设备使用手势识别器监视所述输入。所述手势识别器包括定义用于识别手势的要求的多个分量手势识别器。来自所述多个分量手势识别器的第一分量手势识别器定义用于识别手势的第一要求,并且来自所述多个分量手势识别器的第二分量手势识别器定义用于识别手势的第二要求。根据确定所述输入满足包括所述第一分量手势识别器的所述第一要求和所述第二分量手势识别器的所述第二要求的第一手势识别标准,所述设备使用所述手势识别器识别第一手势。
Description
技术领域
本发明整体涉及具有输入设备诸如触敏表面的电子设备,包括但不限于使用手势识别技术来处理输入的电子设备。
背景技术
输入设备诸如触敏表面广泛用于向电子设备提供输入以操纵显示器上的用户界面和其中的对象。但是用于执行这些操纵的常规方法是麻烦、低效且有局限的。在一些情况下,处理输入的常规方法在功能性方面受限于可被识别的输入的复杂性和数量。在一些情况下,随着必须被识别的输入的复杂性和数量增加,处理输入的常规方法对电子设备造成增加的计算负荷。此外,常规方法花费比所需时间更长的时间,从而浪费能量。这后一考虑在电池驱动的设备中是特别重要的。
发明内容
因此,需要具有用于处理输入和识别手势的改进的方法和界面的电子设备。此类方法和界面任选地补充或替换用于处理输入和识别手势的常规方法。此类方法和界面减少了来自用户的输入的数量、程度、和/或性质,并且产生更有效的人机界面。对于电池驱动设备,此类方法和界面可节省用电并且增加两次电池充电之间的时间。
借助所公开的设备可减少或消除与具有触敏表面的电子设备的用户界面相关联的上述缺陷和其他问题。在一些实施例中,该设备是台式计算机。在一些实施例中,该设备是便携式的(例如,笔记本电脑、平板电脑或手持设备)。在一些实施例中,该设备是个人电子设备(例如,可穿戴电子设备,诸如手表)。在一些实施例中,该设备具有触控板。在一些实施例中,该设备具有触敏显示器(也称为“触摸屏”或“触摸屏显示器”)。在一些实施例中,该设备具有图形用户界面(GUI)、一个或多个处理器、存储器和一个或多个模块、被存储在存储器中以用于执行多个功能的程序或指令集。在一些实施例中,用户主要通过触笔和/或手指接触以及触敏表面上的手势来与GUI进行交互。在一些实施例中,这些功能任选地包括图像编辑、绘图、演示、文字处理、电子表格制作、玩游戏、接打电话、视频会议、收发电子邮件、即时消息通信、健身支持、数字摄影、数字视频录制、网页浏览、数字音乐播放、记笔记和/或数字视频播放。用于执行这些功能的可执行指令任选地被包括在被配置用于由一个或多个处理器执行的非暂态计算机可读存储介质或其他计算机程序产品中。
根据一些实施例,在具有输入设备的电子设备处执行一种方法。该方法包括经由输入设备检测输入,并且响应于检测到输入,使用手势识别器来监视输入。所述手势识别器包括定义用于识别手势的要求的多个分量手势识别器。来自所述多个分量手势识别器的第一分量手势识别器定义用于识别手势的第一要求,并且来自所述多个分量手势识别器的第二分量手势识别器定义用于识别手势的第二要求。该方法包括根据确定输入满足包括第一分量手势识别器的第一要求和第二分量手势识别器的第二要求的第一手势识别标准,使用手势识别器识别第一手势。
根据一些实施例,在具有显示器和输入设备的电子设备处执行一种方法。该方法包括在显示器上显示应用程序的用户界面。用户界面包括以视图分级结构布置的多个视图。视图分级结构定义第一视图和第二视图之间的第一关系。第一视图包括第一手势识别器,并且第二视图包括第二手势识别器。该方法包括经由输入设备检测在对应于所显示的用户界面的第一位置处的输入,以及使用包括第一手势识别器和第二手势识别器的手势识别分级结构来处理该输入。基于视图分级结构中的第一视图和第二视图之间的第一关系来确定第一手势识别器和第二手势识别器之间的第二关系。
根据一些实施例,在具有输入设备的电子设备处执行一种方法。该方法包括经由输入设备检测输入,并且响应于检测到输入,使用具有多个节点的手势识别树来监视输入。手势识别树的每个相应节点对应于相应手势识别器或相应分量手势识别器,并且一个或多个节点包括描述输入的一个或多个参数。使用手势识别树监视输入包括:使用所述多个节点中的第一节点处理输入,包括确定所述一个或多个参数中的第一参数的值;将第一参数从第一节点传送到所述多个节点中的第二节点;以及使用第二节点处理输入,包括基于第一参数确定输入是否满足由第二节点定义的手势识别要求。
根据一些实施例,一种电子设备包括:显示器;触敏表面;任选地一个或多个存储器,用于检测与触敏表面的接触强度;任选地一个或多个触觉输出发生器;一个或多个处理器;以及存储器,该存储器存储一个或多个程序;一个或多个程序被配置为由一个或多个处理器执行,并且一个或多个程序包括用于执行或引起执行本文所述方法中的任一种方法的操作的指令。根据一些实施例,一种计算机可读存储介质在其中存储有指令,这些指令在被具有显示器、触敏表面、用于检测与触敏表面的接触强度的任选地一个或多个传感器以及任选地一个或多个触觉输出发生器的电子设备执行时,使得该设备执行本文所述的任何方法的操作或使得本文所述任何方法的操作被执行。根据一些实施例,具有显示器、触敏表面、用于检测与触敏表面的接触强度的任选地一个或多个传感器、任选地一个或多个触觉输出发生器、存储器和用于执行存储在存储器中的一个或多个程序的一个或多个处理器的电子设备上的图形用户界面包括在本文所述任何方法中所显示的一个或多个元件,该一个或多个元件响应于输入进行更新,如本文所述的任何方法中所描述的。根据一些实施例,一种电子设备包括:显示器、触敏表面、用于检测与触敏表面的接触强度的任选的一个或多个传感器以及任选的一个或多个触觉输出发生器;以及用于执行或导致执行本文所述的方法中的任一种方法的操作的装置。根据一些实施例,用于具有显示器、触敏表面、用于检测与触敏表面的接触强度的任选地一个或多个传感器以及任选地一个或多个触觉输出发生器的电子设备中的信息处理设备包括用于执行本文所述的任何方法的操作或使得本文所述的任何方法的操作被执行的装置。
因此,向具有显示器、触敏表面、用于检测与触敏表面的接触强度的任选地一个或多个传感器、任选地一个或多个触觉输出发生器、任选地一个或多个设备取向传感器以及任选地音频系统的电子设备提供用于处理输入和识别手势的改进的方法和界面,从而提高此类设备的有效性、效率和用户满意度。此类方法和界面可补充或替换用于处理输入和识别手势的常规方法。
附图说明
为了更好地理解各种所述实施例,应结合以下附图参考下面的具体实施方式,其中类似的附图标号在所有附图中指示对应的部分。
图1A是示出根据一些实施例的具有触敏显示器的便携式多功能设备的框图。
图1B是示出根据一些实施例的用于事件处理的示例性部件的框图。
图2示出了根据一些实施例的具有触摸屏的便携式多功能设备。
图3是根据一些实施例的具有显示器和触敏表面的示例性多功能设备的框图。
图4A示出了根据一些实施例的便携式多功能设备上的应用程序菜单的示例性用户界面。
图4B示出了根据一些实施例的用于具有与显示器分开的触敏表面的多功能设备的示例用户界面。
图4C-图4E示出了根据一些实施例的动态强度阈值的示例。
图5A至图5Q示出了根据一些实施例的用于处理输入(诸如触摸输入)及其操作的示例性手势识别器。
图6A至图6C示出了根据一些实施例的从用户界面中的视图的视图分级结构生成的手势识别分级结构的示例。
图7A至图7E是根据一些实施例的用于使用由分量手势识别器组装的手势识别器处理输入的流程图。
图8A至图8C是根据一些实施例的用于从用户界面中的视图的视图分级结构生成手势识别分级结构的流程图。
图9A至图9B是根据一些实施例的用于使用手势识别器处理输入的流程图,其中描述该输入的参数的值已关联到该手势识别器。
具体实施方式
许多电子设备具有用于接收用户输入的图形用户界面和输入设备,诸如触敏表面。随着输入手势的数量和复杂性增加,处理输入和识别此类手势变得更加困难,并且对使用常规手势识别技术的电子设备施加更大的计算负荷。本文所公开的实施例为电子设备提供更有效的方式来处理输入并识别手势(例如,使用模块化手势识别器,该模块化手势识别器将较大的输入处理要求集合划分为较小子集)。
下面,图1A至图1B、图2和图3示出了示例性设备。图4A至图4B示出了在其上实现本文所公开的实施例的示例性设备的示例性用户界面。图5A至图5Q示出了用于处理输入(诸如触摸输入)及其操作的示例性手势识别器。图6A至图6C示出了从用户界面中的视图的视图分级结构生成的手势识别分级结构的示例。图7A至图7E示出了使用由分量手势识别器组装的手势识别器来处理输入的方法的流程图。图8A至图8C示出了从用户界面中的视图的视图分级结构生成手势识别分级结构的方法的流程图。图9A至图9B示出了使用手势识别器处理输入的方法的流程图,其中描述输入的参数的值已关联到该手势识别器。图5A至图5Q和图6A至图6C中的手势识别器、视图分级结构和手势识别分级结构用于说明图7A至图7E、图8A至图8C和图9A至图9B中的过程。
示例性设备
现在将详细地参考实施例,这些实施例的示例在附图中示出。下面的详细描述中示出许多具体细节,以便提供对各种所描述的实施例的充分理解。但是,对本领域的普通技术人员将显而易见的是,各种所描述的实施例可以在没有这些具体细节的情况下被实践。在其他情况下,没有详细地描述众所周知的方法、过程、部件、电路和网络,从而不会不必要地使实施例的各个方面晦涩难懂。
还将理解的是,虽然在一些情况下,术语“第一”、“第二”等在本文中用于描述各种元件,但是这些元件不应受到这些术语限制。这些术语只是用于将一个元件与另一元件区分开。例如,第一接触可被命名为第二接触,并且类似地,第二接触可被命名为第一接触,而不脱离各种所描述的实施例的范围。第一接触和第二接触均为接触,但它们不是同一个接触,除非上下文另外明确指示。
在本文中对各种所述实施例的描述中所使用的术语只是为了描述特定实施例的目的,而并非旨在进行限制。如在对各种所述实施例中的描述和所附权利要求书中所使用的那样,单数形式“一个”和“该”旨在也包括复数形式,除非上下文另外明确地指示。还将理解的是,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语“包括”(“includes”、“including”、“comprises”和/或“comprising”)在本说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元件和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件和/或其分组。
如本文中所使用,根据上下文,术语“如果”任选地被解释为意思是“当……时”后“在……时”或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“如果确定……”或“如果检测到[所陈述的条件或事件]”任选地被解释为是指“在确定……时”或“响应于确定……”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
本文描述了电子设备、此类设备的用户界面和使用此类设备的相关过程的实施例。在一些实施例中,该设备为还包含其他功能诸如PDA和/或音乐播放器功能的便携式通信设备,诸如移动电话。便携式多功能设备的示例性实施例包括但不限于来自Apple Inc.(Cupertino,California)的iPod和设备。任选地使用其他便携式电子设备,诸如具有触敏表面(例如,触摸屏显示器和/或触控板)的膝上型计算机或平板计算机。还应当理解的是,在一些实施例中,该设备并非便携式通信设备,而是具有触敏表面(例如,触摸屏显示器和/或触控板)的台式计算机。
在下面的讨论中,描述了一种包括显示器和触敏表面的电子设备。然而,应当理解,该电子设备任选地包括一个或多个其他物理用户接口设备,诸如物理键盘、鼠标和/或操纵杆。
该设备通常支持各种应用,诸如以下应用中的一个或多个应用:记笔记应用、绘图应用、演示应用、文字处理应用、网站创建应用、盘编辑应用、电子表格应用、游戏应用、电话应用、视频会议应用、电子邮件应用、即时消息应用、健身支持应用、照片管理应用、数字相机应用、数字摄像机应用、Web浏览应用、数字音乐播放器应用序、和/或数字视频播放器应用。
在设备上执行的各种应用程序任选地使用至少一个通用的物理用户界面设备,诸如触敏表面。触敏表面的一种或多种功能以及被显示在设备上的对应信息任选地对于不同应用程序被调整和/或变化,和/或在相应应用程序内被调整和/或变化。这样,设备的共用物理架构(诸如触敏表面)任选地利用对于用户而言直观且清楚的用户界面来支持各种应用程序。
现在将注意力转到具有触敏显示器的便携式设备的实施例。图1A是示出根据一些实施例的具有触敏显示器系统112的便携式多功能设备100的框图。触敏显示器系统112有时为了方便而被叫做“触摸屏”,并且有时被简称为触敏显示器。设备100包括存储器102(其任选地包括一个或多个计算机可读存储介质)、存储器控制器122、一个或多个处理单元(CPU)120、外围设备接口118、RF电路108、音频电路110、扬声器111、麦克风113、输入/输出(I/O)子系统106、其他输入、或控制设备116吗、和外部端口124。设备100任选地包括一个或多个光学传感器164。设备100任选地包括用于检测设备100上的接触的强度的一个或多个强度传感器165(例如,触敏表面,诸如设备100的触敏显示器系统112)。设备100任选地包括用于在设备100上生成触觉输出的一个或多个触觉输出发生器167(例如,在触敏表面诸如设备100的触敏显示器系统112或设备300的触控板355上生成触觉输出)。这些部件任选地通过一个或多个通信总线或信号线103进行通信。
如本说明书和权利要求书中所使用的,术语“触觉输出”是指将由用户利用用户的触感检测到的设备相对于设备的先前位置的物理位移、设备的部件(例如,触敏表面)相对于设备的另一个部件(例如,外壳)的物理位移、或部件相对于设备的质心的位移。例如,在设备或设备的部件与用户对触摸敏感的表面(例如,手指、手掌或用户手部的其他部分)接触的情况下,通过物理位移生成的触觉输出将由用户解释为触感,该触感对应于设备或设备的部件的物理特征的所感知的变化。例如,触敏表面(例如,触敏显示器或触控板)的移动任选地由用户解释为对物理致动按钮的“按下点击”或“松开点击”。在一些情况下,用户将感觉到触感,诸如“按下点击”或“松开点击”,即使在通过用户的移动而物理地被按压(例如,被移位)的与触敏表面相关联的物理致动按钮没有移动时。又如,即使在触敏表面的光滑度无变化时,触敏表面的移动也会任选地由用户解释或感测为触敏表面的“粗糙度”。虽然用户对触摸的此类解释将受到用户的个体化感官知觉的限制,但是对触摸的许多感官知觉是大多数用户共有的。因此,当触觉输出被描述为对应于用户的特定感官知觉(例如,“按下点击”、“松开点击”、“粗糙度”)时,除非另外陈述,否则所生成的触觉输出对应于设备或其部件的物理位移,该物理位移将会生成典型(或普通)用户的所述感官知觉。使用触觉输出向用户提供触觉反馈增强了设备的可操作性,并且使得用户-设备界面更高效(例如,通过帮助用户提供适当的输入并减少操作设备/与设备交互时的用户错误),这通过使用户能够更快速且更高效地使用设备而额外减少了电力使用并且改善了设备的电池寿命。
在一些实施例中,触觉输出模式指定触觉输出的特性,诸如触觉输出的幅值、触觉输出的运动波形的形状、触觉输出的频率、和/或触觉输出的持续时间。
当设备(例如经由移动可移动质块生成触觉输出的一个或多个触觉输出发生器)生成具有不同触觉输出模式的触觉输出时,触觉输出可在握持或触摸设备的用户中产生不同触感。虽然用户的感官基于用户对触觉输出的感知,但大多数用户将能够识别设备生成的触觉输出的波形、频率和幅值的变化。因此,波形、频率和幅值可被调节以向用户指示已执行了不同操作。这样,具有被设计、选择和/或安排用于模拟给定环境(例如,包括图形特征和对象的用户界面、具有虚拟边界和虚拟对象的模拟物理环境、具有物理边界和物理对象的真实物理环境、和/或以上任意者的组合)中对象的特性(例如大小、材料、重量、刚度、光滑度等);行为(例如振荡、位移、加速、旋转、伸展等);和/或交互(例如碰撞、粘附、排斥、吸引、摩擦等)的触觉输出模式的触觉输出在一些情况下将为用户提供有帮助的反馈,其减少输入错误并提高用户对设备的操作的效率。另外,触觉输出任选地被生成为对应于与所模拟物理特性(诸如输入阈值或对象选择)无关的反馈。此类触觉输出在一些情况下将为用户提供有帮助的反馈,其减少输入错误并提高用户对设备的操作的效率。
在一些实施例中,具有合适触觉输出模式的触觉输出充当在用户界面中或在设备中屏幕后面发生感兴趣事件的提示。感兴趣事件的示例包括设备上或用户界面中提供的示能表示(例如真实或虚拟按钮、或拨动式开关)的激活、所请求操作的成功或失败、到达或穿过用户界面中的边界、进入新状态、在对象之间切换输入焦点、激活新模式、达到或穿过输入阈值、检测或识别一种类型的输入或手势等等。在一些实施例中,提供触觉输出以充当关于除非改变方向或中断输入被及时检测到、否则会发生的即将发生事件或结果的警告或提示。触觉输出在其他情境下也用于丰富用户体验、改善具有视觉或运动困难或者其他可达性需要的用户对设备的可达性、和/或改善用户界面和/或设备的效率和功能性。任选地将触觉输出与音频输入和/或视觉用户界面改变进行比较,这进一步增强用户与用户界面和/或设备交互时用户的体验,并有利于关于用户界面和/或设备的状态的信息的更好传输,并且这减少输入错误并提高用户对设备的操作的效率。
应当理解,设备100仅是便携式多功能设备的一个示例,并且设备100任选地具有比所示出的更多或更少的部件,任选地组合两个或更多个部件,或者任选地具有这些部件的不同配置或布置。图1A中所示的各种部件在硬件、软件、固件、或它们的任何组合(包括一个或多个信号处理电路和/或专用集成电路)中实施。
存储器102任选地包括高速随机存取存储器,并且还任选地包括非易失性存储器,诸如一个或多个磁盘存储设备、闪存存储器设备、或其他非易失性固态存储器设备。设备100的其他部件(诸如CPU 120和外围设备接口118)对存储器102的访问任选地由存储器控制器122来控制。
外围设备接口118可被用于将设备的输入外围设备和输出外围设备耦接到CPU120和存储器102。一个或多个处理器120运行或执行存储器102中所存储的各种软件程序和/或指令集以执行设备100的各种功能并处理数据。
在一些实施例中,外围设备接口118、CPU 120和存储器控制器122任选地被实现在单个芯片诸如芯片104上。在一些其他实施例中,它们任选地在独立的芯片上实现。
RF(射频)电路108接收和发送也被称作电磁信号的RF信号。RF电路108将电信号转换为电磁信号/将电磁信号转换为电信号,并且经由电磁信号与通信网络及其他通信设备进行通信。RF电路108任选地包括用于执行这些功能的熟知的电路,包括但不限于天线系统、RF收发器、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、编解码芯片组、用户身份模块(SIM)卡、存储器等等。RF电路108任选地通过无线通信来与网络和其他设备进行通信,这些网络为诸如互联网(也被称为万维网(WWW))、内联网和/或无线网络(诸如,蜂窝电话网络、无线局域网(LAN)和/或城域网(MAN))。该无线通信任选地使用多种通信标准、协议和技术中的任一者,包括但不限于全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、高速下行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)、演进纯数据(EV-DO)、HSPA、HSPA+、双单元HSPA(DC-HSPA)、长期演进(LTE)、近场通信(NFC)、宽带码分多址(W-CDMA)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、无线保真(Wi-Fi)(例如,IEEE802.11a、IEEE 802.11ac、IEEE 802.11ax、IEEE 802.11b、IEEE 802.11g和/或IEEE802.11n)、互联网协议语音技术(VoIP)、Wi-MAX、电子邮件协议(例如,互联网消息访问协议(IMAP)和/或邮局协议(POP))、即时消息(例如,可扩展消息处理和存在协议(XMPP)、用于即时消息和存在利用扩展的会话发起协议(SIMPLE)、即时消息和存在服务(IMPS))、和/或短消息服务(SMS)、或者包括在本文档提交日期还未开发出的通信协议的其他任何适当的通信协议。
音频电路110、扬声器111和麦克风113提供用户与设备100之间的音频接口。音频电路110从外围设备接口118接收音频数据,将音频数据转换为电信号,并将电信号传输到扬声器111。扬声器111将电信号转换为人类可听到的声波。音频电路110还接收由麦克风113从声波转换的电信号。音频电路110将电信号转换为音频数据,并且将音频数据传输到外围设备接口118以用于处理。音频数据任选地由外围设备接口118检索自和/或传输至存储器102和/或RF电路108。在一些实施例中,音频电路110还包括耳麦插孔(例如,图2中的212)。耳麦插孔提供音频电路110和可移除的音频输入/输出外围设备之间的接口,该可移除的音频输入/输出外围设备诸如仅输出的耳机或者具有输出(例如,单耳耳机或双耳耳机)和输入(例如,麦克风)两者的耳麦。
I/O子系统106将设备100上的输入/输出外围设备诸如触敏显示器系统112和其他输入或控制设备116与外围设备接口118耦接。I/O子系统106任选地包括显示控制器156、光学传感器控制器158、强度传感器控制器159、触觉反馈控制器161、和用于其他输入或控制设备的一个或多个输入控制器160。一个或多个输入控制器160从其他输入或控制设备116接收电信号/将电信号发送到该其他输入或控制设备。其他输入控制设备116任选地包括物理按钮(例如,下压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击轮等。在一些另选的实施例中,一个或多个输入控制器160任选地耦接至以下各项中的任一者(或不耦接至以下各项中的任一者):键盘、红外线端口、USB端口、触笔、和/或指针设备诸如鼠标。一个或多个按钮(例如,图2中的208)任选地包括用于扬声器111和/或麦克风113的音量控制的向上/向下按钮。一个或多个按钮任选地包括下压按钮(例如,图2中的206)。
触敏显示器系统112提供设备与用户之间的输入接口和输出接口。显示控制器156从触敏显示器系统112接收电信号和/或将电信号发送至触敏显示器系统112。触敏显示器系统112向用户显示视觉输出。视觉输出任选地包括图形、文本、图标、视频以及它们的任何组合(统称为“图形”)。在一些实施例中,一些视觉输出或全部的视觉输出对应于用户界面对象。如本文所用,术语“示能表示”是指用户交互式图形用户界面对象(例如,被配置为对被引向图形用户界面对象的输入进行响应的图形用户界面对象)。用户交互式图形用户界面对象的示例包括但不限于按钮、滑块、图标、可选择菜单项、开关、超链接或其他用户界面控件。
触敏显示器系统112具有基于触觉和/或触感接触来接受来自用户的输入的触敏表面、传感器、或传感器组。触敏显示器系统112和显示控制器156(与存储器102中的任何相关联的模块和/或指令集一起)检测触敏显示器系统112上的接触(和该接触的任何移动或中断),并且将检测到的接触转换为与被显示在触敏显示器系统112上的用户界面对象(例如,一个或多个软按键、图标、网页或图像)的交互。在一些实施例中,在触敏显示器系统112和用户之间的接触点对应于用户的手指或触笔。
触敏显示器系统112任选地使用LCD(液晶显示器)技术、LPD(发光聚合物显示器)技术、或LED(发光二极管)技术,但是在其他实施例中使用其他显示技术。触敏显示系统112和显示控制器156任选地使用现在已知的或以后将开发出的多种触摸感测技术中的任何技术以及其他接近传感器阵列或用于确定与触敏显示系统112接触的一个或多个点的其他元件来检测接触及其任何移动或中断,该多种触摸感测技术包括但不限于电容性的、电阻性的、红外线的、和表面声波技术。在一些实施例中,使用投射式互电容感测技术,诸如从Apple Inc.(Cupertino,California)的iPod和中发现的技术。
触敏显示器系统112任选地具有超过100dpi的视频分辨率。在一些实施例中,触摸屏视频分辨率超过400dpi(例如,为500dpi、800dpi或更大)。用户任选地使用任何合适的物体或附加物诸如触笔、手指等来与触敏显示系统112接触。在一些实施例中,将用户界面设计成与基于手指的接触和手势一起工作,由于手指在触摸屏上的接触区域较大,因此这可能不如基于触笔的输入精确。在一些实施例中,设备将基于手指的粗略输入转化为精确的指针/光标位置或命令以用于执行用户所期望的动作。
在一些实施例中,除了触摸屏之外,设备100任选地包括用于激活或去激活特定功能的触控板(未示出)。在一些实施例中,触控板是设备的触敏区域,与触摸屏不同,该触敏区域不显示视觉输出。触控板任选地是与触敏显示器系统112分开的触敏表面,或者是由触摸屏形成的触敏表面的延伸部分。
设备100还包括用于为各种部件供电的电力系统162。电力系统162任选地包括电力管理系统、一个或多个电源(例如,电池、交流电(AC))、再充电系统、电力故障检测电路、功率转换器或逆变器、电源状态指示符(例如,发光二极管(LED))以及与便携式设备中的电力的生成、管理和分配相关联的任何其他部件。
设备100任选地还包括一个或多个光学传感器164。图1A示出与I/O子系统106中的光学传感器控制器158耦接的光学传感器。一个或多个光学传感器164任选地包括电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)光电晶体管。一个或多个光学传感器164从环境接收通过一个或多个透镜而投射的光,并且将光转换为表示图像的数据。结合成像模块143(也被叫做相机模块),一个或多个光学传感器164任选地捕获静态图像和/或视频。在一些实施例中,光学传感器位于设备100的与设备前部上的触敏显示系统112相背对的后部上,使得触摸屏能够用作用于静态图像和/或视频图像采集的取景器。在一些实施例中,另一光学传感器位于设备的前部上,从而获取该用户的图像(例如,用于自拍、用于当用户在触摸屏上观看其他视频会议参与者时进行视频会议等等)。
设备100任选地还包括一个或多个接触强度传感器165。图1A示出了与I/O子系统106中的强度传感器控制器159耦接的接触强度传感器。一个或多个接触强度传感器165任选地包括一个或多个压阻应变仪、电容式力传感器、电气式力传感器、压电力传感器、光学力传感器、电容式触敏表面、或其他强度传感器(例如,用于测量触敏表面上的接触的力(或压力)的传感器)。一个或多个接触强度传感器165从环境接收接触强度信息(例如,压力信息或压力信息的代用物)。在一些实施例中,至少一个接触强度传感器与触敏表面(例如,触敏显示器系统112)并置排列或邻近。在一些实施例中,至少一个接触强度传感器位于设备100的与位于设备100的前部上的触敏显示系统112相背对的后部上。
设备100任选地还包括一个或多个接近传感器166。图1A示出了与外围设备接口118耦接的接近传感器166。另选地,接近传感器166与I/O子系统106中的输入控制器160耦接。在一些实施例中,当多功能设备被置于用户耳朵附近时(例如,用户正在打电话时),接近传感器关闭并禁用触敏显示器系统112。
设备100任选地还包括一个或多个触觉输出发生器167。图1A示出了与I/O子系统106中的触觉反馈控制器161耦接的触觉输出发生器。在一些实施例中,触觉输出发生器167包括一个或多个电声设备诸如扬声器或其他音频部件;以及/或者用于将能量转换成线性运动的机电设备诸如马达、螺线管、电活性聚合器、压电致动器、静电致动器,或其他触觉输出生成部件(例如,用于将电信号转换成设备上的触觉输出的部件)。触觉输出发生器167从触觉反馈模块133接收触觉反馈生成指令,并且在设备100上生成能够由设备100的用户感觉到的触觉输出。在一些实施例中,至少一个触觉输出发生器与触敏表面(例如,触敏显示器系统112)并置排列或邻近,并且任选地通过竖直地(例如,向设备100的表面内/外)或侧向地(例如,在与设备100的表面相同的平面中向后和向前)移动触敏表面来生成触觉输出。在一些实施例中,至少一个触觉输出发生器传感器位于设备100的与位于设备100的前部上的触敏显示系统112相背对的后部上。
设备100任选地还包括一个或多个加速度计168。图1A示出与外围设备接口118耦接的加速度计168。另选地,加速度计168任选地与I/O子系统106中的输入控制器160耦接。在一些实施例中,基于对从该一个或多个加速度计所接收的数据的分析来在触摸屏显示器上以纵向视图或横向视图来显示信息。设备100任选地除加速度计168之外还包括磁力仪(未示出)和GPS(或GLONASS或其他全球导航系统)接收器(未示出),以用于获取关于设备100的位置和取向(例如,纵向或横向)的信息。
在一些实施例中,存储于存储器102中的软件部件包括操作系统126、通信模块(或指令集)128、接触/运动模块(或指令集)130、图形模块(或指令集)132、触觉反馈模块(或指令集)133、文本输入模块(或指令集)134、全球定位系统(GPS)模块(或指令集)135、以及应用程序(或指令集)136。此外,在一些实施例中,存储器102存储设备/全局内部状态157,如图在1A和图3中所示的。设备/全局内部状态157包括以下中的一者或多者:活动应用程序状态,其指示哪些应用程序(如果有的话)当前是活动的;显示状态,其指示什么应用程序、视图或其他信息占据触敏显示器系统112的各个区域;传感器状态,包括从设备的各个传感器和其他输入或控制设备116获得的信息;以及关于设备的位置和/或姿态的位置和/或方位信息。
操作系统126(例如,iOS、Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS、或嵌入式操作系统诸如VxWorks)包括用于控制和管理一般系统任务(例如,存储器管理、存储设备控制、电源管理等)的各种软件组件和/或驱动器,并且有利于各种硬件和软件组件之间的通信。
通信模块128有利于通过一个或多个外部端口124来与其他设备进行通信,并且还包括用于处理由RF电路108和/或外部端口124所接收的数据的各种软件组件。外部端口124(例如,通用串行总线(USB)、火线等)适于直接耦接到其他设备,或间接地通过网络(例如,互联网、无线LAN等)进行耦接。在一些实施例中,外部端口是与Apple Inc.(Cupertino,California)的一些iPod和设备中所使用的30针连接器相同或类似和/或兼容的多针(例如,30针)连接器。在一些实施例中,外部端口是与Apple Inc.(Cupertino,California)的一些iPod和设备中所使用的Lightning连接器相同或类似和/或兼容的Lightning连接器。
接触/运动模块130任选地检测与触敏显示器系统112(结合显示控制器156)和其他触敏设备(例如,触控板或物理点击轮)的接触。接触/运动模块130包括各种软件部件以用于执行与(例如通过手指或触笔)接触检测相关的各种操作,诸如确定是否已发生接触(例如,检测手指按下事件)、确定接触的强度(例如,接触的力或压力,或者接触的力或压力的替代物)、确定是否存在接触的移动并跟踪跨触敏表面的移动(例如,检测一个或多个手指拖动事件),以及确定接触是否已停止(例如,检测手指抬离事件或者接触断开)。接触/运动模块130从触敏表面接收接触数据。确定接触点的移动任选地包括确定接触点的速率(量值)、速度(量值和方向)和/或加速度(量值和/或方向的改变),所述接触点的移动由一系列接触数据表示。这些操作任选地被应用于单点接触(例如,单指接触或触笔接触)或者多点同时接触(例如,“多点触摸”/多指接触)。在一些实施例中,接触/运动模块130和显示控制器156检测触控板上的接触。
接触/运动模块130任选地检测用户的手势输入。触敏表面上的不同手势具有不同的接触模式(例如,所检测到的接触的不同运动、计时和/或强度)。因此,任选地通过检测特定接触模式来检测手势。例如,检测单指轻击手势包括检测手指按下事件,然后在与手指按下事件相同的位置(或基本上相同的位置)处(例如,在图标位置处)检测手指抬起(抬离)事件。又如,检测触敏表面上的手指轻扫手势包括检测手指按下事件,然后检测一个或多个手指拖动事件,并且随后检测手指抬起(抬离)事件。类似地,通过检测触笔的特定接触图案来任选地检测触笔的轻击、轻扫、拖动和其他手势。
在一些实施例中,检测手指轻击手势取决于检测手指按下事件与手指抬起事件之间的时间长度,但是与检测手指按下事件与手指抬起事件之间的手指接触强度无关。在一些实施例中,根据确定手指按下事件与手指抬起事件之间的时间长度小于预先确定的值(例如,小于0.1、0.2、0.3、0.4或0.5秒),检测轻击手势,而不管轻击期间手指接触的强度是否达到给定的强度阈值(大于标称接触检测强度阈值),例如轻按压或深按压强度阈值。因此,手指轻击手势可以满足特定输入标准,该特定输入标准不要求接触的特征强度满足给定强度阈值以满足特定输入标准。为清楚起见,轻击手势中的手指接触通常需要满足标称接触检测强度阈值以检测到手指按下事件,低于该标称接触检测强度阈值时,不会检测到接触。类似的分析适用于通过触笔或其他接触检测轻击手势。在设备能够检测在触敏表面上方悬停的手指或触笔接触的情况下,标称接触检测强度阈值任选地不与手指或触笔与触敏表面之间的物理接触对应。
同样的概念以类似方式适用于其他类型的手势。例如,可基于满足与手势中包括的接触的强度无关或者不要求执行手势的一个或多个接触达到强度阈值以便被识别的标准来任选地检测轻扫手势、捏合手势、展开手势和/或长按压手势。例如,基于一个或多个接触的移动的量来检测轻扫手势;缩放手势基于两个或更多个接触朝彼此的移动来检测;扩放手势基于两个或更多个接触背离彼此的移动来检测;长按压手势基于触敏表面上具有少于阈值移动量的接触的持续时间来检测。因此,关于特定手势识别标准不要求接触强度满足相应的强度阈值以满足特定手势识别标准的陈述意味着特定手势识别标准能够在手势中的接触未达到相应的强度阈值时被满足,并且还能够在手势中的一个或多个接触达到或超过相应的强度阈值的情况下被满足。在一些实施例中,基于确定在预定义时间段内检测到手指按下事件和手指抬起事件来检测轻击手势,而不考虑在预定义时间段期间接触是高于还是低于相应的强度阈值,并且基于确定接触移动大于预定义量值来检测轻扫手势,即使在接触移动结束时接触高于相应的强度阈值也是如此。即使在对手势的检测受到执行手势的接触的强度的影响的实施方式中(例如,当接触的强度高于强度阈值时,设备更快地检测到长按压,或者当接触的强度更高时,设备会延迟对轻击输入的检测),只要在接触未达到特定强度阈值的情况下可以满足识别手势的标准,则对这些手势的检测也不会要求接触达到特定强度阈值(例如,即使识别手势所需的时间量发生变化)。
在某些情况下,接触强度阈值、持续时间阈值和移动阈值以各种不同组合进行组合,以便创建启发式算法来区分针对相同输入元素或区域的两个或更多个不同手势,使得与相同输入元素的多个不同交互能够提供更丰富的用户交互和响应的集合。关于一组特定手势识别标准不要求接触的强度满足相应的强度阈值以满足特定手势识别标准的陈述不排除对其他强度相关手势识别标准进行同时评估,以识别具有当手势包括具有高于相应强度阈值的强度的接触时被满足的标准的其他手势。例如,在某些情况下,第一手势的第一手势识别标准(其不要求接触的强度满足相应的强度阈值以满足第一手势识别标准)与第二手势的第二手势识别标准(其取决于达到相应强度阈值的接触)竞争。在此类竞争中,如果第二手势的第二手势识别标准首先得到满足,则手势任选地不被识别为满足第一手势的第一手势识别标准。例如,如果在接触移动预定义的移动量之前接触达到相应的强度阈值,则检测到深按压手势而不是轻扫手势。相反,如果在接触达到相应的强度阈值之前接触移动预定义的移动量,则检测到轻扫手势而不是深按压手势。即使在此类情况下,第一手势的第一手势识别标准仍然不要求接触的强度满足相应的强度阈值以满足第一手势识别标准,因为如果接触保持低于相应的强度阈值直到手势结束(例如,具有不会增大到高于相应强度阈值的强度的接触的轻扫手势),手势将被第一手势识别标准识别为轻扫手势。因此,不要求接触的强度满足相应的强度阈值以满足特定手势识别标准的特定手势识别标准将会(A)在某些情况下,忽略相对于强度阈值的接触强度(例如,对于轻击手势而言)和/或(B)在某些情况下,如果在特定手势识别标准识别与输入对应的手势之前,一组竞争的强度相关手势识别标准(例如,对于深按压手势而言)将输入识别为与强度相关手势对应,则不能满足特定手势识别标准(例如,对于长按压手势而言),从这个意义上来讲,仍然取决于相对于强度阈值的接触强度(例如,对于与深按压手势竞争识别的长按压手势而言)。
图形模块132包括用于在触敏显示器系统112或其他显示器上渲染和显示图形的各种已知软件部件,包括用于改变所显示的图形的视觉冲击(例如,亮度、透明度、饱和度、对比度或其他视觉属性)的部件。如本文所用,术语“图形”包括可被显示给用户的任何对象,非限制性地包括文本、网页、图标(诸如包括软键的用户界面对象)、数字图像、视频、动画等。
在一些实施例中,图形模块132存储表示待使用的图形的数据。每个图形任选地被分配有对应的代码。图形模块132从应用程序等接收用于指定待显示的图形的一个或多个代码,在必要的情况下还一起接收坐标数据和其他图形属性数据,并且然后生成屏幕图像数据,以输出至显示控制器156。
触觉反馈模块133包括用于生成指令(例如,由触感反馈控制器161使用的指令)的各种软件组件,以响应于用户与设备100的交互而使用触觉输出发生器167在设备100上的一个或多个位置处生成触觉输出。
任选地为图形模块132的部件的文本输入模块134提供用于在各种应用程序(例如,联系人137、电子邮件140、IM 141、浏览器147和需要文本输入的任何其他应用程序)中输入文本的软键盘。
GPS模块135确定设备的位置并提供该信息以在各种应用程序中使用(例如,提供至电话138以用于基于位置的拨号;提供至相机143作为图片/视频元数据;以及提供至提供基于位置的服务的应用程序诸如天气桌面小程序、当地黄页桌面小程序和地图/导航桌面小程序)。
应用程序136任选地包括以下模块(或指令集)或者其子集或超集:
·联系人模块137(有时称为通讯录或联系人列表);
·电话模块138;
·视频会议模块139;
·电子邮件客户端模块140;
·即时消息(IM)模块141;
·健身支持模块142;
·用于静态图像和/或视频图像的相机模块143;
·图像管理模块144;
·浏览器模块147;
·日历模块148;
·桌面小程序模块149,其任选地包括以下各项中的一者或多者:天气桌面小程序149-1、股市桌面小程序149-2、计算器桌面小程序149-3、闹钟桌面小程序149-4、词典桌面小程序149-5、和由用户获取的其他桌面小程序、以及用户创建的桌面小程序149-6;
·用于形成用户创建的桌面小程序149-6的桌面小程序创建器模块150;
·搜索模块151;
·任选地由视频播放器模块和音乐播放器模块构成的视频和音乐播放器模块152;
·备忘录模块153;
·地图模块154;以及/或者
·在线视频模块155。
任选地存储在存储器102中的其他应用程序136的示例包括其他文字处理应用程序、其他图像编辑应用程序、绘图应用程序、呈现应用程序、支持JAVA的应用程序、加密、数字权益管理、语音识别和语音复制。
结合触敏显示器系统112、显示控制器156、接触模块130、图形模块132、和文本输入模块134,联系人模块137包括可执行指令用于管理通讯录或联系人列表(例如,存储在存储器102或存储器370中的联系人模块137的应用程序内部状态192中),包括:添加姓名到通讯录;从通讯录删除姓名;将电话号码、电子邮件地址、物理地址或其他信息与姓名相关联;将图像与姓名相关联;对姓名进行归类和分类;提供电话号码和/或电子邮件地址来发起和/或促进通过电话138、视频会议139、电子邮件140或即时消息141的通信;等等。
结合RF电路108、音频电路110、扬声器111、麦克风113、触敏显示器系统112、显示控制器156、接触模块130、图形模块132、和文本输入模块134,电话模块138包括用于进行以下操作的可执行指令:输入与电话号码对应的字符序列、访问通讯录137中的一个或多个电话号码、修改已输入的电话号码、拨打相应的电话号码、进行会话、以及当会话完成时断开或挂断。如上所述,无线通信任选地使用多种通信标准、协议和技术中的任一种。
结合RF电路108、音频电路110、扬声器111、麦克风113、触敏显示系统112、显示控制器156、一个或多个光学传感器164、光学传感器控制器158、接触模块130、图形模块132、文本输入模块134、联系人列表137和电话模块138,视频会议模块139包括根据用户指令来发起、进行和终止用户与一个或多个其他参与方之间的视频会议的可执行指令。
结合RF电路108、触敏显示器系统112、显示控制器156、接触模块130、图形模块132和文本输入模块134,电子邮件客户端模块140包括用于响应于用户指令来创建、发送、接收和管理电子邮件的可执行指令。结合图像管理模块144,电子邮件客户端模块140使得非常容易创建和发送具有由相机模块143拍摄的静态图像或视频图像的电子邮件。
结合RF电路108、触敏显示器系统112、显示控制器156、接触模块130、图形模块132和文本输入模块134,即时消息模块141包括用于进行以下操作的可执行指令:输入与即时消息对应的字符序列、修改先前输入的字符、传输相应即时消息(例如,使用针对基于电话的即时消息的短消息服务(SMS)或多媒体消息服务(MMS)协议或者使用针对基于互联网的即时消息的XMPP、SIMPLE、Apple推送通知服务(APNs)或IMPS)、接收即时消息,以及查看所接收的即时消息。在一些实施例中,所传输和/或接收的即时消息任选地包括图形、相片、音频文件、视频文件、和/或MMS和/或增强消息服务(EMS)中所支持的其他附接件。如本文所用,“即时消息”是指基于电话的消息(例如,使用SMS或MMS发送的消息)和基于互联网的消息(例如,使用XMPP、SIMPLE、APNs或IMPS发送的消息)两者。
结合RF电路108、触敏显示器系统112、显示控制器156、接触模块130、图形模块132、文本输入模块134、GPS模块135、地图模块154以及视频和音乐播放器模块152,健身支持模块142包括可执行指令用于创建健身(例如,具有时间、距离和/或卡路里燃烧目标);与(体育设备和智能手表中的)健身传感器通信;接收健身传感器数据;校准用于监视健身的传感器;为健身选择和播放音乐;以及显示、存储和传输健身数据。
结合触敏显示器系统112、显示控制器156、一个或多个光学传感器164、光学传感器控制器158、接触模块130、图形模块132和图像管理模块144,相机模块143包括用于进行以下操作的可执行指令:捕获静态图像或视频(包括视频流)并且将它们存储到存储器102中、修改静态图像或视频的特征、和/或从存储器102删除静态图像或视频。
结合触敏显示器系统112、显示控制器156、接触模块130、图形模块132、文本输入模块134、和相机模块143,图像管理模块144包括用于排列、修改(例如,编辑)、或以其他方式操控、加标签、删除、展示(例如,在数字幻灯片或相册中)、以及存储静态图像和/或视频图像的可执行指令。
结合RF电路108、触敏显示器系统112、显示系统控制器156、接触模块130、图形模块132和文本输入模块134,浏览器模块147包括根据用户指令来浏览互联网(包括搜索、链接到、接收、和显示网页或其部分、以及链接到网页的附件和其他文件)的可执行指令。
结合RF电路108、触敏显示器系统112、显示系统控制器156、接触模块130、图形模块132、文本输入模块134、电子邮件客户端模块140和浏览器模块147,日历模块148包括用于根据用户指令来创建、显示、修改和存储日历以及与日历相关联的数据(例如,日历条目、待办事项等)的可执行指令。
结合RF电路108、触敏显示器系统112、显示系统控制器156、接触模块130、图形模块132、文本输入模块134和浏览器模块147,桌面小程序模块149是任选地由用户下载和使用的微型应用程序(例如,天气桌面小程序149-1、股市桌面小程序149-2、计算器桌面小程序149-3、闹钟桌面小程序149-4和词典桌面小程序149-5)、或由用户创建的微型应用程序(例如,用户创建的桌面小程序149-6)。在一些实施例中,桌面小程序包括HTML(超文本标记语言)文件、CSS(层叠样式表)文件和JavaScript文件。在一些实施例中,桌面小程序包括XML(可扩展标记语言)文件和JavaScript文件(例如,Yahoo!桌面小程序)。
结合RF电路108、触敏显示器系统112、显示系统控制器156、接触模块130、图形模块132、文本输入模块134、和浏览器模块147,桌面小程序创建器模块150包括用于创建桌面小程序(例如,将网页的用户指定部分转到桌面小程序中)的可执行指令。
结合触敏显示器系统112、显示系统控制器156、接触模块130、图形模块132和文本输入模块134,搜索模块151包括用于根据用户指令来搜索存储器102中的与一个或多个搜索条件(例如,一个或多个用户指定的搜索词)匹配的文本、音乐、声音、图像、视频和/或其他文件的可执行指令。
结合触敏显示系统112、显示系统控制器156、接触模块130、图形模块132、音频电路110、扬声器111、RF电路108和浏览器模块147,视频和音乐播放器模块152包括允许用户下载和回放以一种或多种文件格式(诸如MP3或AAC文件)存储的所记录的音乐和其他声音文件的可执行指令,以及用于显示、呈现或以其他方式回放视频(例如,在触敏显示系统112上或在经由外部端口124无线连接的外部显示器上)的可执行指令。在一些实施例中,设备100任选地包括MP3播放器诸如iPod(Apple Inc.的商标)的功能。
结合触敏显示器系统112、显示控制器156、接触模块130、图形模块132和文本输入模块134,记事本模块153包括用于根据用户指令来创建和管理记事本、待办事项等的可执行指令。
结合RF电路108、触敏显示器系统112、显示系统控制器156、接触模块130、图形模块132、文本输入模块134、GPS模块135和浏览器模块147,地图模块154包括用于根据用户指令来接收、显示、修改和存储地图以及与地图相关联的数据(例如,驾车路线;特定位置处或附近的商店和其他兴趣点的数据;和其他基于位置的数据)的可执行指令。
结合触敏显示系统112、显示系统控制器156、接触模块130、图形模块132、音频电路110、扬声器111、RF电路108、文本输入模块134、电子邮件客户端模块140和浏览器模块147,在线视频模块155包括允许用户访问、浏览、接收(例如,通过流式传输和/或下载)、回放(例如在触摸屏112上或在无线连接的或经由外部端口124连接的外部显示器上)、发送具有至特定在线视频的链接的电子邮件、以及以其他方式管理一种或多种文件格式诸如H.264的在线视频的可执行指令。在一些实施例中,使用即时消息模块141而不是电子邮件客户端模块140来发送特定在线视频的链接。
上述所识别的每个模块和应用对应于用于执行上述一种或多种功能以及在本申请中所描述的方法(例如,本文中所描述的计算机实现的方法和其他信息处理方法)的一组可执行指令。这些模块(即,指令集)不必以独立的软件程序、过程或模块实现,因此这些模块的各种子集任选地在各种实施例中组合或以其他方式重新布置。在一些实施例中,存储器102任选地存储上述模块和数据结构的子集。此外,存储器102任选地存储上文未描述的另外的模块和数据结构。
在一些实施例中,设备100是该设备上的预定义的一组功能的操作唯一地通过触摸屏和/或触控板来执行的设备。通过使用触摸屏和/或触控板作为用于操作设备100的主要输入控制设备,任选地减少设备100上的物理输入控制设备(例如,下压按钮、拨盘等等)的数量。
唯一地通过触摸屏和/或触控板来执行的预定义的一组功能任选地包括在用户界面之间的导航。在一些实施例中,触控板在被用户触摸时将设备100从设备100上显示的任何用户界面导航到主菜单、home菜单或根菜单。在此类实施例中,使用触控板来实现“菜单按钮”。在一些其他实施例中,菜单按钮是物理下压按钮或者其他物理输入控制设备,而不是触控板。
图1B是示出根据一些实施例的用于事件处理的示例性部件的框图。在一些实施例中,存储器102(图1A中)或存储器370(图3)包括事件分类器170(例如,在操作系统126中)和相应的应用程序136-1(例如,前述应用程序136、137至155、380至390中的任一个应用程序)。
事件分类器170接收事件信息并确定要将事件信息递送到的应用程序136-1和应用程序136-1的应用程序视图191。事件分类器170包括事件监视器171和事件分配器模块174。在一些实施例中,应用程序136-1包括应用程序内部状态192,该应用程序内部状态指示当应用程序是活动的或正在执行时在触敏显示器系统112上显示的一个或多个当前应用程序视图。在一些实施例中,设备/全局内部状态157被事件分类器170用来确定哪个(哪些)应用程序当前是活动的,并且应用程序内部状态192被事件分类器170用来确定要将事件信息递送到的应用程序视图191。
在一些实施例中,应用程序内部状态192包括附加信息,诸如以下各项中的一者或多者:当应用程序136-1恢复执行时将被使用的恢复信息、指示信息正被显示或准备好用于被应用程序136-1显示的用户界面状态信息、用于使得用户能够返回到应用程序136-1的前一状态或视图的状态队列,以及用户采取的先前动作的重复/撤销队列。
事件监视器171从外围设备接口118接收事件信息。事件信息包括关于子事件(有时简称为“事件”或“输入事件”)(例如,作为多点触摸手势一部分的触敏显示器系统112上的用户触摸、或触摸在触敏显示器系统112上的移动、或鼠标按钮的按压等)的信息。输入(例如,触摸)的事件信息可包括以下各项中的一者或多者:输入的位置、时间戳、方向和速度。外围设备接口118传输其从I/O子系统106(例如,从触敏显示器系统112、一个或多个传感器164、165和/或一个或多个输入设备350、355)或传感器诸如接近传感器166、加速度计168和/或麦克风113(通过音频电路110)接收的信息。外围设备接口118从I/O子系统106所接收的信息包括来自触敏显示器系统112或触敏表面的信息。
在一些实施例中,事件监视器171以预先确定的间隔将请求发送至外围设备接口118。作为响应,外围设备接口118传输事件信息。在其他实施例中,外围设备接口118仅当存在显著事件(例如,接收到高于预先确定的噪声阈值和/或接收到超过预先确定的持续时间的输入)时才传输事件信息。
在一些实施例中,事件分类器170还包括命中视图确定模块172和/或活动事件识别器确定模块173。
当触敏显示器系统112显示多于一个视图时,命中视图确定模块172提供用于确定子事件已在一个或多个视图内的什么地方发生的软件过程。视图由用户能够在显示器上看到的控件和其他元素构成。
与应用程序相关联的用户界面的另一方面是一组视图,本文中有时也称为应用程序视图或用户界面窗口,在其中显示信息并且发生基于触摸的手势。在其中检测到触摸的(相应应用程序的)应用程序视图任选地对应于在应用程序的程序化或视图分级结构内的程序化水平。例如,在其中检测到触摸的最低水平视图任选地被称为命中视图,并且被识别为正确输入的事件集任选地至少部分地基于初始触摸的命中视图来确定,所述初始触摸开始基于触摸的手势。
虽然视图通常被认为是用户界面的窗口或其他部分,但从技术上讲,视图是管理应用程序的用户界面的特定范围或区域的应用程序的一部分。视图通常实现为特定类的实例或其子类中的一个,并管理应用程序窗口中的矩形区域。因此,视图是具有相关联的显示区域或用户界面部分的对象,并且还具有与该视图是实例的类相关联的一个或多个计算机程序(有时称为“方法”)。视图负责绘制内容,处理多点触摸事件并且管理任何子视图的布局。绘图内容涉及使用各种图形技术在视图的矩形区域内绘制形状、图像和文本。视图通过使用手势识别器或直接处理触摸事件来响应其矩形区域中的触摸事件。在视图分级结构中,父视图负责定位和调整其子视图的大小,并且可动态地执行此操作。这种动态修改子视图的能力使视图能够适应不断变化的条件,诸如界面旋转和动画。
可将视图视为程序员或应用程序开发人员用于构造应用程序的用户界面的构建块。不是使用一个视图来呈现应用程序的所有内容,而是通常使用几个视图来构建视图分级结构。分级结构中的每个视图都呈现应用程序的用户界面的特定部分,并且通常针对特定类型的内容进行优化。例如,应用程序可具有专门用于呈现图像、文本和其他类型的内容的不同视图。
命中视图确定模块172接收与基于触摸的手势的子事件相关的信息。当应用程序具有以分级结构组织的多个视图时,命中视图确定模块172将命中视图识别为应当对子事件进行处理的分级结构中的最低视图。在大多数情况下,命中视图是发起子事件(即形成事件或潜在事件的子事件序列中的第一子事件)在其中发生的最低水平视图。一旦命中视图被命中视图确定模块所识别,命中视图便通常接收与其被识别为命中视图所针对的同一触摸或输入源相关的所有子事件。
活动事件识别器确定模块173确定视图分级结构内的哪个或哪些视图应接收特定子事件序列。在一些实施例中,活动事件识别器确定模块173确定仅命中视图应接收特定子事件序列。在其他实施例中,活动事件识别器确定模块173确定包括子事件的物理位置的所有视图是活跃参与的视图,并因此确定所有活跃参与的视图都应接收特定子事件序列。在其他实施例中,即使触摸子事件完全被局限到与一个特定视图相关联的区域,分级结构中的较高视图将仍然保持为活跃参与的视图。
事件分配器模块174将事件信息分配到事件识别器(例如,事件识别器180)。在包括活动事件识别器确定模块173的实施例中,事件分配器模块174将事件信息递送到由活动事件识别器确定模块173确定的事件识别器。在一些实施例中,事件分配器模块174在事件队列中存储事件信息,该事件信息由相应事件接收器模块182进行检索。
在一些实施例中,操作系统126包括事件分类器170。另选地,应用程序136-1包括事件分类器170。在又一个实施例中,事件分类器170是独立模块,或者是存储在存储器102中的另一个模块(诸如,接触/运动模块130)的一部分。
在一些实施例中,应用程序136-1包括多个事件处理程序190和一个或多个应用程序视图191,其中的每一个都包括用于处理发生在应用程序的用户界面的相应视图内的触摸事件的指令。应用程序136-1的每个应用程序视图191包括一个或多个事件识别器180。通常,相应应用程序视图191包括多个事件识别器180。在其他实施例中,事件识别器180中的一个或多个事件识别器是独立模块的一部分,该独立模块为诸如应用程序无关的软件模块195(例如,用户界面工具包)或应用程序136-1从其继承方法和其他属性的更高级别的对象。在一些实施例中,相应事件处理程序190包括以下各项中的一者或多者:数据更新器176、对象更新器177、GUI更新器178、和/或从事件分类器170接收的事件数据179。事件处理程序190任选地利用或调用数据更新器176、对象更新器177或GUI更新器178来更新应用程序内部状态192。另选地,应用程序视图191中的一个或多个应用程序视图包括一个或多个相应事件处理程序190。另外,在一些实施例中,数据更新器176、对象更新器177和GUI更新器178中的一者或多者包括在相应应用程序视图191中。
相应的事件识别器180从事件分类器170接收事件信息(例如,事件数据179),并且从事件信息识别事件。事件识别器180包括多个分量事件识别器181。在一些实施例中,用于形成事件识别器180的分量事件识别器181由应用程序无关的软件模块195提供。
事件识别器180的相应分量手势识别器181包括分量事件识别器特定的代码182,该分量事件识别器特定的代码任选地包括事件定义184。分量手势识别器181还包括状态/阶段信息185和一个或多个端口187。在一些实施例中,分量事件识别器181还包括一个或多个参数值186。
分量事件识别器181从端口187-1接收事件信息。事件信息包括关于子事件例如触摸或触摸移动的信息。根据子事件,事件信息还包括附加信息,诸如子事件的位置。当子事件涉及触摸的运动时,事件信息任选地还包括子事件的速率和方向。在一些实施例中,事件包括设备从一个取向旋转到另一取向(例如,从纵向取向旋转到横向取向,或反之亦然),并且事件信息包括关于设备的当前取向(也被称为设备姿态)的对应信息。
分量事件识别器特定的代码182用于将事件信息与预定义的事件或子事件定义进行比较,并且基于该比较来确定事件或子事件,或者确定或更新事件或子事件的状态。在一些实施例中,分量事件识别器特定的代码182包括事件定义184。事件定义184包含为了使事件识别器180识别由其分量事件识别器181定义的事件(或手势)而必须满足的要求的定义(例如,位置要求、最小和/或最大移动要求、最小或最大定时要求、强度阈值要求等)。在一些实施例中,要求与特定子事件相关联,该特定子事件包括例如触摸开始、触摸结束、触摸静止、触摸移动、触摸取消和多点触摸。在一些实施例中,事件定义184还包括用于(例如,识别)一个或多个相关联的事件处理程序190的信息。
相应分量事件识别器181还包括状态/阶段185,其指示相应分量事件识别器的状态机的状态;状态/阶段185可具有各种状态值,诸如“事件可能”、“事件活动”、“事件结束”、“事件失败”等。当相应事件识别器180的相应分量事件识别器181确定相应子事件不匹配事件定义184时,相应分量事件识别器181进入“失败”状态,这使得相应事件识别器180进入事件不可能或事件失败状态,在此之后忽略基于触摸的手势的后续子事件。在这种情况下,对于命中视图保持活动的其他事件识别器(如果有的话)继续跟踪并处理持续进行的基于触摸的手势的子事件。
在一些实施例中,相应的分量事件识别器181包括多个端口187,所述多个端口指示事件递送系统应该如何向主动参与的事件识别器180中的分量事件识别器181执行子事件递送。在一些实施例中,端口187定义手势识别树结构中的分量事件识别器的关系(例如,连接,以及因此信息流)。在一些实施例中,相应分量事件识别器包括一个或多个参数值186,所述一个或多个参数值存储来自触摸输入的较早接收的输入事件或子事件的不同属性的值,以用于与较晚接收的输入事件或子事件进行比较。例如,分量事件识别器包括初始位置参数,该初始位置参数存储从触摸输入的最早接收的输入事件识别的触摸输入的初始位置,用于与从较晚接收的输入事件识别的触摸输入的当前位置进行比较,以确定触摸输入是否已经在触敏表面上移动以及移动了多少。
在一些实施例中,当事件的一个或多个特定子事件被识别时,相应事件识别器180激活与事件相关联的事件处理程序190。在一些实施例中,相应事件识别器180将与事件相关联的事件信息递送到事件处理程序190。激活事件处理程序190不同于将子事件发送(和延期发送)到相应命中视图。在一些实施例中,事件识别器180抛出与所识别的事件相关联的标记,并且与该标记相关联的事件处理程序190获得该标记并执行预定义过程。
在一些实施例中,数据更新器176创建并更新在应用程序136-1中使用的数据。例如,数据更新器176对联系人模块137中所使用的电话号码进行更新,或者对视频或音乐播放器模块152中所使用的视频文件进行存储。在一些实施例中,对象更新器177创建和更新在应用程序136-1中使用的对象。例如,对象更新器177创建新的用户界面对象或更新用户界面对象的位置。GUI更新器178更新GUI。例如,GUI更新器178准备显示信息,并且将显示信息发送至图形模块132以用以显示在触敏显示器上。
在一些实施例中,事件处理程序190包括数据更新器176、对象更新器177和GUI更新器178或者具有对它们的访问权限。在一些实施例中,数据更新器176、对象更新器177和GUI更新器178被包括在相应应用程序136-1或应用程序视图191的单个模块中。在其他实施例中,它们被包括在两个或更多个软件模块中。
应当理解,关于触敏显示器上的用户触摸的事件处理的上述论述还适用于利用输入设备来操作多功能设备100的其他形式的用户输入,并不是所有用户输入都是在触摸屏上发起的。例如,任选地与单次或多次键盘按下或按住协作的鼠标移动和鼠标按钮按下;触控板上的接触移动,诸如轻击、拖动、滚动等;触笔输入;设备的移动;口头指令;检测到的眼睛移动;生物特征输入;和/或它们的任何组合任选地被用作对应于限定要识别的事件的子事件的输入。
图2示出了根据一些实施例的具有触摸屏(例如,图1A的触敏显示器系统112)的便携式多功能设备100。触摸屏任选地在用户界面(UI)200内显示一个或多个图形。在这些实施例中以及在下文中描述的其他实施例中,用户能够通过例如利用一个或多个手指202(在图中未按比例绘制)或一个或多个触笔203(在图中未按比例绘制)在图形上作出手势来选择这些图形中的一个或多个图形。在一些实施例中,当用户中断与一个或多个图形的接触时,将发生对一个或多个图形的选择。在一些实施例中,手势任选地包括一次或多次轻击、一次或多次轻扫(从左向右、从右向左、向上和/或向下)和/或已与设备100发生接触的手指的滚动(从右向左、从左向右、向上和/或向下)。在一些实施方式中或在一些情况下,不经意地与图形接触不会选择图形。例如,当与选择对应的手势是轻击时,在应用程序图标上方扫动的轻扫手势任选地不会选择对应的应用程序。
设备100任选地还包括一个或多个物理按钮,诸如“home”或菜单按钮204。如前所述,菜单按钮204任选地用于导航到任选地在设备100上被执行的一组应用程序中的任何应用程序136。作为另外一种选择,在一些实施例中,菜单按钮被实现为被显示在触摸屏显示器上的GUI中的软键。
在一些实施例中,设备100包括触摸屏显示器、菜单按钮204(有时称为主屏幕按钮204)、用于使设备通电/断电和用于锁定设备的下压按钮206、音量调节按钮208、用户身份模块(SIM)卡槽210、耳麦插孔212和对接/充电外部端口124。下压按钮206任选地用于通过压下该按钮并且将该按钮保持在压下状态持续预定义的时间间隔来对设备进行开/关机;通过压下该按钮并在该预定义的时间间隔过去之前释放该按钮来锁定设备;和/或对设备进行解锁或发起解锁过程。在一些实施例中,设备100还通过麦克风113来接受用于激活或停用某些功能的语音输入。设备100还任选地包括用于检测触敏显示器系统112上的接触的强度的一个或多个接触强度传感器165,和/或用于为设备100的用户生成触觉输出的一个或多个触觉输出发生器167。
图3是根据一些实施例的具有显示器和触敏表面的示例性多功能设备的框图。设备300不必是便携式的。在一些实施例中,设备300是膝上型电脑、台式计算机、平板电脑、多媒体播放器设备、导航设备、教育设备(诸如儿童学习玩具)、游戏系统或控制设备(例如,家用控制器或工业用控制器)。设备300通常包括一个或多个处理单元(CPU)310、一个或多个网络或其他通信接口360、存储器370和用于将这些部件互联的一根或多根通信总线320。通信总线320任选地包括使系统部件互连并且控制系统部件之间的通信的电路(有时称作芯片组)。设备300包括具有显示器340的输入/输出(I/O)接口330,该显示器通常是触摸屏显示器。I/O接口330还任选地包括键盘和/或鼠标(或其他指向设备)350和触控板355、用于在设备300上生成触觉输出的触觉输出发生器357(例如,类似于以上参考图1A所述的一个或多个触觉输出发生器167)、传感器359(例如,光学传感器、加速度传感器、接近传感器、触敏传感器、和/或类似于以上参考图1A所述的一个或多个接触强度传感器165的接触强度传感器)。存储器370包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备;并且任选地包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器370任选地包括远离CPU 310定位的一个或多个存储设备。在一些实施例中,存储器370存储与便携式多功能设备100(图1A)的存储器102中所存储的程序、模块和数据结构类似的程序、模块、和数据结构,或它们的子集。此外,存储器370任选地存储在便携式多功能设备100的存储器102中不存在的附加程序、模块和数据结构。例如,设备300的存储器370任选地存储绘图模块380、呈现模块382、文字处理模块384、网站创建模块386、盘编辑模块388、和/或电子表格模块390,而便携式多功能设备100(图1A)的存储器102任选地不存储这些模块。
图3中上述所识别的元件中的每个元件任选地存储在先前提到的存储器设备中的一个或多个存储器设备中。上述所识别的模块中的每个模块对应于用于执行上述功能的指令集。上述所识别的模块或程序(即,指令集)不必被实现为单独的软件程序、过程或模块,因此这些模块的各种子集任选地在各种实施例中组合或以其他方式重新布置。在一些实施例中,存储器370任选地存储上述模块和数据结构的子集。此外,存储器370任选地存储上文未描述的附加模块和数据结构。
现在将注意力转到任选地在便携式多功能设备100上实现的用户界面(“UI”)的实施例。
图4A示出根据一些实施例的便携式多功能设备100上的应用程序菜单的示例性用户界面。类似的用户界面任选地在设备300上实现。在一些实施例中,用户界面400包括以下元件或者其子集或超集:
·一种或多种无线通信诸如蜂窝信号和Wi-Fi信号的一个或多个信号强度指示符;
·时间;
·蓝牙指示符;
·电池状态指示符;
·具有针对常用应用程序的图标的托盘408,该图标诸如:
ο电话模块138的被标记为“电话”的图标416,该图标416任选地包括未接来电或语音留言的数量的指示符414;
ο电子邮件客户端模块140的被标记为“邮件”的图标418,该图标418任选地包括未读电子邮件的数量的指示符410;
ο浏览器模块147的标记为“浏览器”的图标420;以及
ο视频和音乐播放器模块152的被标记为“音乐”的图标422;
以及
·其他应用的图标,诸如:
οIM模块141的被标记为“消息”的图标424;
ο日历模块148的被标记为“日历”的图标426;
ο图像管理模块144的被标记为“照片”的图标428;
ο相机模块143的被标记为“相机”的图标430;
ο在线视频模块155的被标记为“在线视频”的图标432;
ο股市桌面小程序149-2的被标记为“股市”的图标434;
ο地图模块154的被标记为“地图”的图标436;
ο天气桌面小程序149-1的被标记为“天气”的图标438;
ο闹钟桌面小程序149-4的被标记为“时钟”的图标440;
ο健身支持模块142的被标记为“健身支持”的图标442;
ο记事本模块153的标记为“记事本”的图标444;以及
ο用于设置应用程序或模块的图标446,该图标提供对设备100及其各种应用程序136的设置的访问。
应当注意,图4A中示出的图标标签仅仅是示例性的。例如,其他标签任选地用于各种应用图标。在一些实施例中,相应应用程序图标的标签包括与该相应应用程序图标对应的应用程序的名称。在一些实施例中,特定应用程序图标的标签不同于与该特定应用程序图标对应的应用程序的名称。
图4B示出了具有与显示器450分开的触敏表面451(例如,图3中的平板或触控板355)的设备(例如,图3中的设备300)上的示例性用户界面。在一些实施例中,使用触摸屏显示器112(其中触敏表面和显示器被组合)上的输入来执行以下示例。另选地,在一些实施例中,设备检测与显示器分开的触敏表面上的输入,如图4B所示。在一些实施例中,触敏表面(例如,图4B中的451)具有与显示器(例如,450)上的主轴线(例如,图4B中的453)对应的主轴线(例如,图4B中的452)。根据这些实施例,设备检测与显示器上相应位置对应的位置处的与触敏表面451的接触(例如,图4B中的460和462)(例如,在图4B中,460对应于468并且462对应于470)。这样,在触敏表面(例如,图4B中的451)与多功能设备的显示器(例如,图4B中的450)是分开的时侯,由设备在触敏表面上所检测到的用户输入(例如,接触460和462以及它们的移动)被该设备用于操纵显示器上的用户界面。应当理解,类似的方法任选地用于本文所述的其他用户界面。
另外,虽然主要是参考手指输入(例如,手指接触、单指轻击手势、手指轻扫手势等)来给出下面的示例,但是应当理解的是,在一些实施例中,这些手指输入中的一个或多个手指输入由来自另一输入设备的输入(例如,基于鼠标的输入或触笔输入)替换。例如,轻扫手势任选地由鼠标点击(例如,而不是接触),之后是光标沿着轻扫的路径的移动(例如,而不是接触的移动)替代。又如,轻击手势任选地由在光标位于轻击手势的位置上方时的鼠标点击(例如,代替对接触的检测,之后是停止检测接触)替代。类似地,当同时检测到多个用户输入时,应当理解的是,多个计算机鼠标任选地被同时使用,或鼠标和手指接触任选地被同时使用。
如本文所用,术语“焦点选择器”是指用于指示用户正与之进行交互的用户界面的当前部分的输入元件。在包括光标或其他位置标记的一些实施方式中,光标充当“焦点选择器”,使得当光标在特定用户界面元素(例如,按钮、窗口、滑块或其他用户界面元素)上方时在触敏表面(例如,图3中的触控板355或图4B中的触敏表面451)上检测到输入(例如,按压输入)的情况下,该特定用户界面元素根据所检测到的输入而被调整。在包括使得能够实现与触摸屏显示器上的用户界面元素的直接交互的触摸屏显示器(例如,图1A中的触敏显示器系统112或图4A中的触摸屏)的一些实施方式中,在触摸屏上检测到的接触充当“焦点选择器”,使得当在触摸屏显示器上在特定用户界面元素(例如,按钮、窗口、滑块或其他用户界面元素)的位置处检测到输入(例如,通过接触的按压输入)时,根据所检测到的输入来调整特定用户界面元素。在一些实施方式中,焦点从用户界面的一个区域移动到用户界面的另一个区域,而无需光标的对应移动或触摸屏显示器上的接触的移动(例如,通过使用制表键或箭头键将焦点从一个按钮移动到另一个按钮);在这些实施方式中,焦点选择器根据焦点在用户界面的不同区域之间的移动而移动。不考虑焦点选择器所采取的具体形式,焦点选择器通常是由用户控制以便传送与用户界面的用户期望的交互(例如,通过向设备指示用户界面的用户期望与其进行交互的元素)的用户界面元素(或触摸屏显示器上的接触)。例如,在触敏表面(例如,触控板或触摸屏)上检测到按压输入时,焦点选择器(例如,光标、接触或选择框)在相应按钮上方的位置将指示用户期望激活相应按钮(而不是设备显示器上示出的其他用户界面元素)。
在一些实施例中,设备对设备所检测到的输入的响应取决于基于输入期间的接触强度的标准。例如,对于一些“轻按压”输入,在输入期间超过第一强度阈值的接触的强度触发第一响应。在一些实施例中,设备对由设备所检测到的输入的响应取决于包括输入期间的接触强度和基于时间的标准两者的标准。例如,对于一些“深按压”输入,只要在满足第一强度阈值与满足第二强度阈值之间经过延迟时间,在输入期间超过大于轻按压的第一强度阈值的第二强度阈值的接触的强度便触发第二响应。该延迟时间的持续时间通常小于200ms(毫秒)(例如,40ms、100ms、或120ms,这取决于第二强度阈值的量值,其中该延迟时间随着第二强度阈值增大而增大)。该延迟时间帮助避免意外地识别深按压输入。又如,对于一些“深按压”输入,在达到第一强度阈值之后将出现敏感度降低的时间段。在该敏感度降低的时间段期间,第二强度阈值增大。第二强度阈值的这种暂时增大还有助于避免意外深按压输入。对于其他深按压输入,对检测到深按压输入的响应不取决于基于时间的标准。
在一些实施例中,输入强度阈值和/或对应输出中的一者或多者基于一个或多个因素(诸如用户设置、接触运动、输入定时、应用运行、施加强度时的速率、同时输入的数量、用户历史、环境因素(例如,环境噪声)、焦点选择器位置等)而变化。示例因素在美国专利申请14/399,606和14/624,296中有所描述,这些美国专利申请全文以引用方式并入本文。
例如,图4C示出了部分地基于触摸输入476随时间的强度而随时间改变的动态强度阈值480。动态强度阈值480是两个分量的总和:在从触摸输入476初始被检测到开始的预定义的延迟时间p1之后随时间衰减的第一分量474和随时间而跟踪触摸输入476的强度的第二分量478。第一分量474的初始高强度阈值减少意外触发“深按压”响应,同时仍然允许在触摸输入476提供足够强度的情况下进行即时“深按压”响应。第二分量478减少通过触摸输入的逐渐的强度波动而无意触发“深按压”响应。在一些实施例中,在触摸输入476满足动态强度阈值480时(例如,在图4C中的点481处),触发“深按压”响应。
图4D示出了另一个动态强度阈值486(例如,强度阈值ID)。图4D还示出了两个其他强度阈值:第一强度阈值IH和第二强度阈值IL。在图4D中,尽管触摸输入484在时间p2之前满足第一强度阈值IH和第二强度阈值IL,但是直到在时间482处经过延迟时间p2才提供响应。同样在图4D中,动态强度阈值486随时间衰减,其中衰减在从时间482(触发了与第二强度阈值IL相关联的响应的时候)已经过预定义的延迟时间p1之后的时间488开始。这种类型的动态强度阈值减少紧接在触发与较低阈值强度(诸如第一强度阈值IH或第二强度阈值IL)相关联的响应之后或与其同时意外触发与动态强度阈值ID相关联的响应。
图4E示出了另一个动态强度阈值492(例如,强度阈值ID)。在图4E中,在从触摸输入490被初始检测到的时候已经过延迟时间p2之后,触发与强度阈值IL相关联的响应。同时,动态强度阈值492在从触摸输入490被初始检测到的时候已经过预定义的延迟时间p1之后衰减。因此,在触发与强度阈值IL相关联的响应之后降低触摸输入490的强度,接着在不释放触摸输入490的情况下增大触摸输入490的强度可触发与强度阈值ID相关联的响应(例如,在时间494处),即使当触摸输入490的强度低于另一强度阈值(例如,强度阈值IL)时也是如此。
用户界面和相关联的过程
现在将注意力转向可在具有显示器、触敏表面、用于生成触觉输出的(可选的)一个或多个触觉输出发生器以及用于检测与触敏表面的接触的强度的(可选的)一个或多个传感器的电子设备诸如便携式多功能设备100或设备300上实现的用户界面(“UI”)和相关联的过程的实施例。
图5A至图5Q示出了根据一些实施例的用于处理输入(诸如触摸输入)及其操作的示例性手势识别器。图6A至图6C示出了基于接收的输入从用户界面中的视图的视图分级结构生成的手势识别分级结构(有时称为手势识别树)的示例。这些附图中的手势识别器、视图分级结构和手势识别分级结构用于说明下面描述的过程,包括图7A至图7E、图8A至图8C和图9A至图9B中的过程。为了便于解释,将参考响应于在触敏显示器系统112上接收到输入而在具有触敏显示器系统112的设备上执行的操作来讨论实施例中的一些实施例。在此类实施例中,焦点选择器为任选地:相应手指或触笔接触、对应于手指或触笔接触的表示点(例如,相应接触的重心或与相应接触相关联的点)、或在触敏显示器系统112上所检测到的两个或更多个接触的重心。然而,任选地,响应于在触敏表面451上接收到输入,在具有显示器450和独立触敏表面451的设备上执行类似的操作,或者响应于经由鼠标接收到输入,在具有键盘/鼠标350的设备上执行类似的操作。
图5A至图5Q示出了根据一些实施例的示例性手势识别器及其在处理输入时的操作。
图5A至图5F示出了示例性轻击手势识别器500及其在处理输入时的操作。图5A示出了轻击手势识别器500包括以树结构布置的多个分量手势识别器,所述多个分量手势识别器定义用于识别轻击手势的要求。轻击手势识别器500的所述多个分量手势识别器包括:
·空间事件监听器502,其要求通过监视包括位置信息的输入事件来知道在触敏表面上接收的触摸输入的位置;
·最长持续时间分量504,其要求触摸输入在触敏表面上保持的时间量小于预定义的阈值时间量Tth;和
·距离分量506,其要求触摸输入在触敏表面上的移动量(如果有的话)小于预定义的阈值移动量Dmax,th。
轻击手势识别器500还包括前导暂停分量508,该前导暂停分量任选地用于要求具有高于轻击手势识别器500的优先级的任何手势识别器(例如,任何前导手势识别器)失败,以便识别轻击手势。换句话说,在本文所述的某些情况下,在轻击手势识别器500的任何前导手势识别器活动时,前导暂停508防止轻击手势识别器500成功。
此外,轻击手势识别器500包括两个选通组合器。选通组合器510由前导暂停分量508和最长持续时间分量504控制。当最长持续时间分量504处于失败状态(例如,输入已经超过预定义的阈值时间量,有时称为最长阈值持续时间)时,选通组合器510处于失败状态。当最长持续时间分量504处于除失败状态之外的状态(例如,活动状态)时,选通组合器510传递从前导暂停分量508接收的输入处理结果(例如,状态和参数值)。类似地,选通组合器512由选通组合器510和距离分量506控制。当距离分量506处于失败状态时,选通组合器512处于失败状态。当距离分量506处于除失败状态之外的状态(例如,活动状态)时,选通组合器512传递从选通组合器510接收的输入处理结果(例如,状态和参数值)。更一般地,当选通组合器的右手侧子分量手势识别器处于失败状态时,选通组合器处于失败状态,并且当选通组合器的右手侧子分量手势识别器处于除失败状态之外的状态时,选通组合器传递从其左手侧子分量手势识别器接收的输入处理结果。
虽然图5A至图5F仅示出前导暂停分量508具有作为子分量的空间事件监听器502,但是在一些实施例中,最长持续时间分量504和/或距离分量506也具有作为子分量的空间事件监听器(例如,空间事件监听器502的附加实例),或者另选地具有也耦接到空间事件监听器502的输入端口。
图5B示出了响应于在设备处接收到触摸输入,在轻击手势识别器500处(例如,从事件分配器模块174)接收到输入事件。具体地讲,在选通组合器512处接收到输入事件,该选通组合器是轻击手势识别器500的根节点。在手势识别器处接收的输入事件有时被描述为“沿树向下流动”,即输入事件从树中的较高层级处的每个相应节点传送到树中的下一个较低层级处的其相关联的节点。在一些情况下,具有多个子节点的组合器基于预定义的信息传送规则将输入事件传送到其子节点,如本文更详细地描述的。在图5B所示的示例中,选通组合器512将输入事件传送到其子节点即选通组合器510和距离分量506两者。类似地,选通组合器510将输入事件传送到其子节点即前导暂停分量508和最长持续时间分量504两者。此外,前导暂停分量508将输入事件传送到其子节点,即空间事件监听器502。
图5C示出了由轻击手势识别器500中的分量手势识别器处理图5B中所示的输入事件的结果。处理在手势识别器处接收的输入事件的结果有时被描述为“沿树向上”传递,即输入事件从树中的较低层级处的每个相应节点传送到树中的下一个较高层级处的其关联节点。在树中的较高层级处的具有在树中下一较低层级处的多个关联节点的相应节点基于来自其多个关联节点的结果的组合确定其自己的结果。
在图5B至图5C所示的示例中,所接收的输入事件是“空间事件”,即包括所接收的触摸输入的位置(有关其的信息)并且包括触摸输入的初始位置pi的事件。所接收的输入事件也是新接收的触摸输入的第一输入事件,并且因此具有阶段值“触摸开始”和指示触摸输入被第一次接收或检测到的时间的初始时间戳ti。如图5C所示,空间事件监听器502已经将输入事件识别为正在进行的触摸输入的空间事件(如由“触摸开始”阶段值所指示的),并且因此处于“活动”状态。空间事件监听器502将其当前“活动”状态和空间输入事件传送到其父节点,即前导暂停508。
在图5C所示的示例中,前导暂停分量508处于“活动”状态,因为轻击手势识别器500不具有活动的前导手势识别器(因为没有其他手势识别器具有高于轻击手势识别器500的优先级,或者因为具有高于轻击手势识别器500的优先级的每个手势识别器都已经失败)。前导暂停分量508将其当前“活动”状态和空间输入事件传送到其父节点,即选通组合器510。在一些实施例中,在另一手势识别器(诸如双击手势识别器)具有高于轻击手势识别器500的优先级的情况下(例如,通过使用排他性组合器,如本文所述),轻击手势识别器500接收与输入事件包括在一起或附加的关于前导手势识别器是否活动的指示。在此类情况下,前导暂停分量508输出指示,即轻击手势识别器500对轻击手势的识别应当被中止或“暂停”,直到接收到前导手势识别器已经失败的指示。如果未接收到此类指示,则轻击手势识别器保持在中止状态并且不能成功地识别轻击手势(例如,即使在双击手势识别器具有高于轻击手势识别器的优先级并且识别到双击手势的情况下,双击手势的第一轻击手势也将被轻击手势识别器识别)。
最长持续时间分量504已识别输入事件的当前时间戳ti。此外,最长持续时间分量504已将输入事件识别为具有阶段值“触摸开始”的事件。因此,最长持续时间分量504已将所识别的当前时间戳ti存储为与触摸输入相关联的初始时间戳。最长持续时间分量504使用初始时间戳来确定触摸输入是否已在触敏表面上保持超过预定义的阈值时间量Tth。在初始检测到触摸输入时,当时间戳是初始时间戳ti时,触摸输入还没有在触敏表面上保持超过预定义的阈值时间量Tth,因此最长持续时间分量504处于“活动”状态。最长持续时间分量504将其当前“活动”状态传送到其父节点,即选通组合器510。
如上所述,选通组合器510由前导暂停分量508和最长持续时间分量504控制。由于最长持续时间分量504处于“活动”状态并且因此不处于“失败”状态,因此选通组合器510传递从前导暂停分量508接收的输入处理结果。因此,选通组合器510将“活动”状态和空间事件传送到其父节点,即选通组合器512。
距离分量506已经从输入事件识别出触摸输入的当前位置pi。此外,距离分量506已经将输入事件识别为具有阶段值“触摸开始”的事件。因此,距离分量506已将所识别的当前位置pi存储为触摸输入的初始位置。一般来讲,距离分量使用初始位置来确定触摸输入的移动(如果有的话)是否满足最小移动量和/或最大移动量。在一些实施例中,距离分量用于要求触摸输入的移动来定义最小阈值移动量的手势识别器中。在一些实施例中,距离分量用于要求限制触摸输入的移动量以定义最大阈值移动量的手势识别器中。在一些实施例中,最小阈值移动量和最大阈值移动量两者可被定义为要求触摸输入的移动在预定义范围内。
在图5C所示的示例中,距离分量506使用初始位置来确定触摸输入是否已经在触敏表面上移动超过预定义的最大阈值量Dmax,th。在初始检测到触摸输入时,当位置为初始位置pi时,触摸输入尚未在触敏表面移动,因此距离分量506处于“活动”状态。距离分量506将其当前“活动”状态传送到其父节点,即选通组合器512。
如上所述,选通组合器512由选通组合器510和距离分量506控制。由于距离分量506处于“活动”状态并且因此不处于“失败”状态,因此选通组合器512传递从选通组合器510接收的输入处理结果。因此,选通组合器512传送从选通组合器510接收的“活动”状态和空间事件。由于选通组合器512是轻击手势识别器500的根节点,因此轻击手势识别器500的总体状态是“活动”状态,并且轻击手势识别器500的总体输出值是空间事件的总体输出值。在一些实施例中,组装的手势识别器(诸如轻击手势识别器500)的总体状态和输出值由手势识别器传送到手势识别器的父节点,其中手势识别器被用作另一手势识别器的一部分。例如,如本文参考图5G至图5L所述,双击手势识别器520包括作为分量的组装的轻击手势识别器524,并且因此轻击手势识别器524的总体状态和输出值被传送到双击手势识别器520中的其他分量(例如,图5G的重复器522)。在一些实施例中,组装的手势识别器的总体状态和输出值由手势识别器传送到手势识别器的父节点,其中手势识别器是手势识别分级结构中的子节点。例如,如本文参考图6A所述,手势识别分级结构640包括作为子节点的组装的轻击手势识别器614,并且因此轻击手势识别器614的总体状态和输出值被传送到手势识别分级结构640中的其他分量(例如,图6A的排他性组合器642)。在一些实施例中,组装的手势识别器的总体状态和输出值由手势识别器传送到在设备上执行的并且包括手势识别器的应用程序(例如,图1B的应用程序136-1)。
图5D示出了成功识别轻击手势的示例。具体地讲,图5D示出了在满足轻击手势500的所有手势识别要求的情况下,处理与相对于图5B至图5C描述的触摸输入的抬离相关联的第二输入事件的结果。在已经接收(如图5B所示)和处理(如图5C所示)相对于图5B至图5C描述的(第一)输入事件之后,接收第二输入事件。第二输入事件是另一个“空间事件”,但是具有阶段值“触摸结束”,并且包括抬离时触摸输入的位置pc和指示抬离时间的时间戳tc。如图5D所示,空间事件监听器502已经将输入事件识别为完成的触摸输入的空间事件(如由“触摸结束”阶段值所指示的),并且因此处于“结束”状态。空间事件监听器502将其当前“结束”状态和空间输入事件传送到其父节点,即前导暂停508。
在图5D所示的示例中,前导暂停分量508处于“结束”状态,因为轻击手势识别器500没有活动的前导手势识别器。前导暂停分量508将其当前“结束”状态和空间输入事件传送到其父节点,即选通组合器510。
最长持续时间分量504已识别输入事件的当前时间戳tc。最长持续时间分量已将当前时间戳tc与所存储的初始时间戳ti进行比较,以确定触摸输入已保持在触敏表面上的时间量(tc–ti)小于预定义阈值时间量Tth。因此,最长持续时间分量504尚未转变到“失败”状态。相反,最长持续时间分量504已将输入事件识别为具有阶段值“触摸结束”的事件,并且由于任何原因尚未转变到“失败”状态,因此已经转变到“结束”状态。最长持续时间分量504将其当前“结束”状态传送到其父节点,即选通组合器510。
如上所述,选通组合器510由前导暂停分量508和最长持续时间分量504控制。由于最长持续时间分量504处于“结束”状态并且因此不处于“失败”状态,因此选通组合器510传递从前导暂停分量508接收的输入处理结果。因此,选通组合器510将“结束”状态和空间事件传送到其父节点,即选通组合器512。
距离分量506已经从输入事件识别出触摸输入的当前位置pc。距离分量506将当前位置pc与所存储的初始位置pi进行比较,以确定触摸输入行进的距离(pc–pi,|pc–pi|的绝对值)小于预定义的最大阈值距离Dmax,th。因此,距离分量506尚未转变到“失败”状态。相反,距离分量506已将输入事件识别为具有阶段值“触摸结束”的事件,并且由于任何原因尚未转变到“失败”状态,因此已经转变到“结束”状态。距离分量506将其当前“结束”状态传送到其父节点,即选通组合器512。
如上所述,选通组合器512由选通组合器510和距离分量506控制。由于距离分量506处于“结束”状态并且因此不处于“失败”状态,因此选通组合器512传递从选通组合器510接收的输入处理结果。因此,选通组合器512传送从选通组合器510接收的“结束”状态和空间事件。由于选通组合器512是轻击手势识别器500的根节点,因此轻击手势识别器500的总体状态是“结束”状态,并且轻击手势识别器500的总体输出值是空间事件的总体输出值。随着选通组合器512转变到“结束”状态,轻击手势识别器500已经成功地将触摸输入识别为轻击手势。
图5E示出了轻击手势识别器500未能识别触摸输入的示例。具体地讲,图5E示出了处理第三输入事件的结果,该第三输入事件与相对于图5B至图5C所述的触摸输入的移动相关联,并且代替相对于图5D描述的第二输入事件而被接收。在已经接收(如图5B所示)和处理(如图5C所示)相对于图5B至图5C描述的(第一)输入事件之后,接收第三输入事件。第三输入事件是另一个“空间事件”,但具有阶段值“触摸移动”(或者在一些实施例中,“触摸改变”),并且包括触摸输入的当前位置pc和指示与第三输入事件相关联的时间的时间戳tc。如图5E所示,空间事件监听器502已经将输入事件识别为正在进行的触摸输入的空间事件(如由“触摸移动”阶段值所指示的),并且因此处于“活动”状态。空间事件监听器502将其当前“活动”状态和空间输入事件传送到前导暂停508。
在图5D所示的示例中,前导暂停分量508处于“活动”状态,因为轻击手势识别器500没有活动的前导手势识别器。前导暂停分量508将其当前“活动”状态和空间输入事件传送到选通组合器510。
最长持续时间分量504已识别输入事件的当前时间戳tc。最长持续时间分量已将当前时间戳tc与所存储的初始时间戳ti进行比较,以确定触摸输入已保持在触敏表面上的时间量(tc–ti)小于预定义阈值时间量Tth。因此,最长持续时间分量504尚未转变到“失败”状态,并且由于输入事件具有阶段值“触摸移动”而不是“触摸结束”,因此保持在“活动”状态。最长持续时间分量504将其当前“活动”状态传送到选通组合器510。
由于最长持续时间分量504处于“活动”状态并且因此不处于“失败”状态,因此选通组合器510将从前导暂停分量508接收的“活动”状态和空间事件传递到选通组合器512。
距离分量506已经识别触摸输入的当前位置pc,并且将当前位置pc与存储的初始位置pi进行比较,以确定触摸输入行进的距离(|pc–pi|)大于预定义的最大阈值距离Dmax,th。因此,距离分量506已经转变到“失败”状态。距离分量506将其当前“失败”状态传送到选通组合器512。
选通组合器512由距离分量506的“失败”状态控制,使得选通分量512也处于“失败”状态。由于选通组合器512是轻击手势识别器500的根节点,因此轻击手势识别器500的总体状态是“失败”状态,并且没有轻击手势被轻击手势识别器500识别。
图5F示出了轻击手势识别器500未能识别触摸输入的另一示例。具体地讲,图5F示出了处理第四输入事件的结果,该第四输入事件与相对于图5B至图5C所述的保持在触敏表面上的触摸输入相关联,并且代替相对于图5D至图5E描述的第二输入事件和第三输入事件而被接收。在已经接收(如图5B所示)和处理(如图5C所示)相对于图5B至图5C描述的(第一)输入事件之后,接收第四输入事件。第四输入事件是另一个“空间事件”,但是具有阶段值“触摸静止”,并且包括触摸输入的当前位置pc和指示与第三输入事件相关联的时间的时间戳tc。
最长持续时间分量504已经识别了输入事件的当前时间戳tc,并且将当前时间戳tc与所存储的初始时间戳ti进行比较,以确定触摸输入在触敏表面上保持的时间量(tc–ti)已经超过了预定义的阈值时间量Tth。因此,最长持续时间分量504已经转变到“失败”状态。最长持续时间分量504将其当前“失败”状态传送到选通组合器510,该选通组合器控制选通组合器510也处于“失败”状态(例如,引起选通组合器510转变到“失败”状态)。
距离分量506已经识别触摸输入的当前位置pc,并且将当前位置pc与存储的初始位置pi进行比较,以确定触摸输入行进的距离(|pc–pi|)小于预定义的最大阈值距离Dmax,th。因此,距离分量506尚未转变到“失败”状态,并且由于输入事件具有阶段值“触摸静止”而不是“触摸结束”,因此保持在“活动”状态。距离分量506将其当前“活动”状态传送到选通组合器512。
由于距离分量506处于“活动”状态并且因此不处于“失败”状态,因此选通组合器512传递从选通组合器510接收的“失败”状态和空间事件。由于选通组合器512是轻击手势识别器500的根节点,因此轻击手势识别器500的总体状态是“失败”状态,并且没有轻击手势被轻击手势识别器500识别。在一些实施例中,由于轻击手势识别器500已失败,因此忽略由轻击手势识别器500输出的传递性空间事件。
图5G至图5L示出了示例性双击手势识别器520及其在处理输入时的操作。图5G示出了双击手势识别器520包括定义对双击手势的要求的多个分量手势识别器,包括:
·重复器522,其要求其子分量手势识别器或子手势识别器重复成功(至少)由重复计数值(“count重复”)定义的预定义次数,任选地经受超时周期(“T超时”),使得每个附加的成功必须在自最近的先前成功以来所经过的时间量达到(或超过)预定义超时周期之前发生;和
·轻击手势识别器524,其是如本文参考图5A至图5F中的示例性轻击手势识别器500所述的轻击手势识别器的各种分量手势识别器的高级表示。
在图5G所示的示例中,为了使双击手势识别器520成功,重复器522要求识别在彼此的0.5秒内(通过将T超时设置为值“0.5s”)的两个成功的轻击手势(通过将count重复设置为值“2”)。在一些实施例中,如图5G至图5L所示,重复器522使用轻击手势识别器的第一实例524a来监视第一所需轻击手势,并且使用轻击手势识别器的第二实例524b监视第二所需轻击手势(在识别到第一所需轻击手势之后)。更一般地,在一些实施例中,使用重复器的子(分量)手势识别器的新的/不同实例来监视子(分量)手势识别器的手势识别要求被满足的每个连续出现。在一些实施例中,每当满足子(分量)手势识别器的手势识别要求时,手势识别器中的重复器通过重置子(分量)手势识别器的状态和值来重用单个子(分量)手势识别器(例如,子(分量)手势识别器的相同实例)。在一些实施例中,重复器追踪其子(分量)手势识别器成功的次数。
图5G还示出了响应于在设备处接收到第一触摸输入,在双击手势识别器520处(例如,从事件分配器模块174)接收到第一输入事件(“事件1”)。具体地讲,在重复器522处接收到第一输入事件,该重复器是双击手势识别器520的根节点。重复器522将第一输入事件传送到其子节点,即轻击手势识别器524a。更具体地,由于轻击手势识别器524a本身是树结构,所以重复器522将第一输入事件传送到轻击手势识别器524a的根节点(例如,选通组合器,诸如图5B的选通组合器512),该根节点继而将第一输入事件传送到轻击手势识别器524a中的其他节点(例如,如本文参考图5B所述)。在一些实施例中,响应于接收到第一输入事件,重复器532将轻击手势识别器的第一实例524a添加到双击手势识别器520,然后将第一输入事件传送到轻击手势识别器524a的根节点以进行处理。在一些实施例中,将第一手势识别器(例如,轻击手势识别器)或第一分量手势识别器的实例“添加”到第二手势识别器(例如,双击手势识别器)包括创建或生成第一手势识别器或第一分量手势识别器的实例,设置或初始化所生成的实例的一个或多个参数(例如,设置阈值,以及/或者设置一个或多个配置参数以控制所生成的实例如何操作),以及将所生成的实例连接到第二手势识别器(例如,将第一手势识别器或第一分量手势识别器的端口连接到第二手势识别器的端口)。
图5H示出了由双击手势识别器520中的分量手势识别器处理图5G中所示的第一输入事件的结果。在图5H所示的示例中,第一输入事件已经(例如,由轻击手势识别器524a的空间事件监听器)确定为空间事件。第一输入事件描述正在进行的触摸输入(例如,第一输入事件具有阶段值“触摸开始”或“触摸静止”)并且包括所接收的第一触摸输入的位置。轻击手势识别器524a已处理第一输入事件(例如,如本文参考图5C所述),并且因此已转变到“活动”状态。此外,轻击手势识别器524a已经将其当前“活动”状态和第一输入事件(“空间事件1”)沿树向上传送到重复器522。
重复器522包括输入计数值(“count输入”)526,该输入计数值追踪轻击手势识别器524(或轻击手势识别器524的相应实例)已成功的次数。由于轻击手势识别器(实例1)524a尚未成功(例如,轻击手势识别器524a尚未转变到“结束”状态),因此输入计数值526具有为零的值。此外,重复器522已经响应于接收到(但尚未结束)第一触摸输入而转变到“活动”状态。重复器522传送其当前“活动”状态和从轻击手势识别器524a接收的第一空间事件(“空间事件1”)作为其输出。由于重复器522是双击手势识别器520的根节点,因此双击手势识别器520的总体状态是“活动”状态,并且双击手势识别器520的总体输出值是第一空间事件的总体输出值。
图5I示出了处理第二输入事件(“事件2”)的结果,该第二输入事件已经在双击手势识别器520处被接收,并且与相对于图5G至图5H描述的第一触摸输入的抬离相关联。在接收并处理第一输入事件之后接收第二输入事件(例如,如本文相对于图5G至图5H所述的)。第二输入事件已被确定为类似于第一输入事件的空间事件(“空间事件2”),不同的是第二输入事件具有阶段值“触摸结束”。如图5I所示,轻击手势识别器524a已处理第二输入事件(例如,如本文参考图5D所述)并且将第一触摸输入识别为第一轻击手势。轻击手势识别器524a相应地已经转变到“结束”状态并且已经将其当前“结束”状态和第二输入事件传送到重复器522。根据轻击手势识别器524a成功识别第一轻击手势,重复器522将输入计数值526增加到值1。
在一些实施例中,在重复器522响应于接收到触摸输入而转变到“活动”状态之后,重复器522保持在“活动”状态,直到轻击手势识别器524(或轻击手势识别器524的相应实例)转变到“失败”状态,或者直到轻击手势识别器524已经成功了重复计数值(“count重复”)要求的预定义次数。在图5I中,由于轻击手势识别器524a尚未转变到“失败”状态,并且由于仅检测到一个轻击输入,因此重复器522保持在“活动”状态。重复器522传送其当前“活动”状态和从轻击手势识别器524a接收的第二空间事件(“空间事件2”)作为其输出。因此,双击手势识别器520的总体状态是“活动”状态,并且双击手势识别器520的总体输出值是第二空间事件的总体输出值。
图5J示出了响应于在设备处接收到第二触摸输入,在双击手势识别器520处接收到第三输入事件(“事件3”)。由于双击手势识别器520(并且具体地讲,轻击手势识别器(实例1)524a)已识别第一轻击输入,因此轻击手势识别器的第一实例524a已被轻击手势识别器的第二实例524b(例如,图5B的轻击手势识别器500的第二实例)所替换。在一些实施例中,响应于从第一实例524a接收到经处理的输入,重复器532从双击手势识别器520移除轻击手势识别器的第一实例524a,指示第一轻击手势已经被识别,并且响应于接收到第三输入事件,重复器532将轻击手势识别器的第二实例524b添加到双击手势识别器520。重复器522将第三输入事件传送到轻击手势识别器(实例2)524b以进行处理(例如,如本文参考图5C所述),从而确定第二触摸输入是否是轻击手势。
图5K示出了由双击手势识别器520中的分量手势识别器处理图5J中所示的第三输入事件的结果。在图5J至图5K所示的示例中,第三输入事件已经(例如,由轻击手势识别器524b的空间事件监听器)确定为空间事件。第三输入事件描述正在进行的触摸输入(例如,第三输入事件具有阶段值“触摸开始”或“触摸静止”),并且包括所接收的第二触摸输入的位置和与第三输入事件相关联的当前时间戳tc。轻击手势识别器524b已处理第三输入事件(例如,如本文参考图5C所述),并且因此已转变到“活动”状态。此外,轻击手势识别器524b已经将其当前“活动”状态和第三输入事件(“空间事件3”)传送到重复器522。由于轻击手势识别器(实例2)524b尚未成功(例如,轻击手势识别器524b尚未转变到“结束”状态),因此重复器522的输入计数值526保持为具有值1。
此外,重复器522监视自对应于最近识别的轻击手势的时间以来所经过的时间量。在一些实施例中,重复器522监视从被识别为最近识别的轻击手势的触摸输入的开始所经过的时间量(例如,通过识别和存储与该触摸输入的“触摸开始”事件相关联的初始时间戳)。在一些实施例中,重复器522监视从该触摸输入的结束所经过的时间量(例如,通过识别和存储与该触摸输入的“触摸结束”事件相关联的结束时间戳)。例如,在图5K中,重复器522监视从由轻击手势识别器524a(图5I)最近成功识别的第一轻击手势的结束(“t轻击1结束”)到与第三输入事件相关联的当前时间(“tc”)所经过的时间。由于从第一轻击手势结束(“t轻击1结束”)到与第三输入事件相关联的当前时间(“tc”)所经过的时间量小于预定义超时周期(“T超时”),并且由于轻击手势识别器524b既没有转变到“结束”状态也没有转变到“失败”状态,因此重复器522保持在“活动”状态。重复器522传送其当前“活动”状态和从轻击手势识别器524b接收的第三空间事件(“空间事件3”)作为其自己的输出并作为双击手势识别器520的总体输出两者。
图5L示出了处理第四输入事件(“事件4”)的结果,该第四输入事件已经在双击手势识别器520处被接收,并且与相对于图5J至图5K描述的第二触摸输入的抬离相关联。在接收并处理第三输入事件之后接收第四输入事件(例如,如本文相对于图5J至图5K所述的)。第四输入事件已被确定为类似于第三输入事件的空间事件(“空间事件4”),不同的是第四输入事件具有阶段值“触摸结束”。如图5L所示,轻击手势识别器524b已处理第四输入事件(例如,如本文参考图5D所述)并且将第二触摸输入识别为第二轻击手势。轻击手势识别器524b相应地已经转变到“结束”状态并且已经将其当前“结束”状态和第四输入事件传送到重复器522。根据轻击手势识别器524b成功识别第二轻击手势,重复器522将输入计数值526增加到值2。
此外,从第一轻击手势结束(“t轻击1结束”)到第二轻击手势结束(“t轻击2结束”)所经过的时间量小于预定义超时周期(“T超时”)。由于定时要求仍然得到满足,并且由于轻击手势识别器524b已经转变到“结束”状态,因此重复器522转变到“结束”状态。重复器传送其当前“结束”状态和从轻击手势识别器524b接收的第四空间事件(“空间事件4”)作为其自己的输出并作为双击手势识别器520的总体输出两者。由重复器522输出“结束”指示双击手势识别器520已成功识别双击手势。
在一些实施例中,如果轻击手势识别器524的任一实例已经转变到“失败”状态,则重复器522将转变到“失败”状态,并且将不会识别到双击手势。此外,如果自第一识别的轻击手势以来经过预定义的超时周期(“T超时”)之前未接收到第二轻击手势的结束,则重复器522将转变到“失败”状态,并且将不会识别到双击手势。
图5M至图5Q示出了示例性(双输入)捏合手势识别器530及其在处理输入时的操作。在一些实施例中,捏合手势识别器530或其实例被包括在用户界面的特定视图中,并且用于识别使用用户界面的特定视图中的触摸输入执行的双输入捏合手势。图5M示出了捏合手势识别器530包括定义对捏合手势的要求的多个分量手势识别器,包括:
·第一拖动分量(“拖动1”)532,其要求通过监视包括位置信息的输入事件(类似于空间事件监听器)来知道在触敏表面上接收的触摸输入的位置,不同的是拖动分量还监视触摸输入的移动量;和
·第二拖动分量(“拖动2”)534,其行为类似于第一拖动分量532,但是是与第一拖动分量532不同的拖动分量(或拖动分量的不同实例)。
捏合手势识别器530还包括并行组合器536。并行组合器536控制输入事件到第一拖动分量532和第二拖动分量534的传送。具体地讲,并行组合器向每个拖动分量分配不同的触摸输入,使得每个拖动分量仅针对其分配的触摸输入接收和处理输入事件。并行组合器536的状态取决于拖动分量的相应状态,并且并行组合器536的输出值是拖动分量的输出值,如本文更详细地描述。
此外,捏合手势识别器530包括捏合分量538。捏合分量536确定缩放(例如,其用于在检测到捏合手势时控制所显示的用户界面或用户界面元素的缩放),以及任选地确定缩放速度(例如,其用于在检测到的捏合手势已经结束之后继续调整用户界面或用户界面元素的缩放)。
图5M还示出了响应于在设备处接收到多个触摸输入,在捏合手势识别器530处(例如,从事件分配器模块174)接收两个输入事件。具体地讲,捏合手势识别器530响应于第一接收的触摸输入(“输入1”)接收第一输入事件(“事件1”),并且响应于第二接收的触摸输入(“输入2”)接收第二输入事件(“事件2”)。作为捏合手势识别器530的根节点的捏合分量538接收输入事件并将两个输入事件传送到并行组合器536。并行组合器536将第一触摸输入分配给第一拖动分量532,并且将第一触摸输入的第一输入事件传送到第一拖动分量532。此外,并行组合器536将第二触摸输入分配给第二拖动分量532,并且将第二触摸输入的第二输入事件传送到第二拖动分量532。
图5N示出了由捏合手势识别器530中的分量手势识别器处理图5M中所示的输入事件的结果。在图5N所示的示例中,第一输入事件是描述第一触摸输入的空间事件,该第一触摸输入是新接收的触摸输入(例如,第一输入事件具有阶段值“触摸开始”)。第一拖动分量532已识别并存储第一触摸输入的初始位置540(“p1i”)。此外,第一拖动分量532通过确定第一触摸输入的当前位置(“p1c”)和第一触摸输入的初始位置(“p1i”)之间的距离来监视第一触摸输入在触敏表面上的移动量。在初始检测到第一触摸输入时,在当前位置(“p1c”)等于初始位置(“p1i”)时,触摸输入尚未在触敏表面上移动,因此移动量(“|p1c–p1i|”)为零。由于移动量小于最小阈值量(“Dmin,th”),因此第一拖动分量532处于“可能”状态以指示拖动行为(例如,包括输入的移动)可能发生但尚未被检测到。在一些实施例中,“可能”状态是手势识别分量的要求触摸输入的最小阈值移动量的可用状态。在连续检测到输入时并且在检测到的输入已经移动最小阈值量之前(例如,对于具有阶段值“触摸静止”的后续输入事件),此类分量保持在“可能”状态,并且当检测的输入已经移动最小阈值量(经受分量的其他要求,如果有,也得到满足)时则转变到“活动”状态。
第一拖动分量532向并行组合器536传送第一拖动分量532的当前“可能”状态和从第一输入事件识别的(或基于第一输入事件中的信息确定的)多个值,包括第一触摸输入的初始时间戳(“t1i”)、第一触摸输入的瞬时速度(“v1i”)、第一触摸输入的初始位置(“p1i”)和第一触摸输入的当前位置(在初始检测到第一触摸输入时为“p1i”)。
类似地,第二输入事件也是描述正在进行的触摸输入的空间事件。第二拖动分量已识别并存储第二触摸输入的初始位置542(“p2i”)。由于第二触摸输入的移动量(“|p2c–p2i|”)小于最小阈值量(“Dmin,th”),因此第二拖动分量534处于“可能”状态。第二拖动分量534向并行组合器536传送第二拖动分量532的当前“可能”状态和从第二输入事件识别的(或基于第二输入事件中的信息确定的)多个值,包括第二触摸输入的初始时间戳(“t2i”)、第二触摸输入的瞬时速度(“v2i”)、第二触摸输入的初始位置(“p2i”)和第二触摸输入的当前位置(在初始检测到第二触摸输入时为“p2i”)。
并行组合器536从第一拖动分量532和第二拖动分量534接收“可能”状态和值。由于两个拖动分量都处于“可能”状态,因此并行组合器536也处于“可能”状态。并行组合器536将其当前“可能”状态以及从第一拖动分量532和第二拖动分量534接收的所有值传送到捏合分量538。在一些实施例中,并行组合器536从每个拖动分量接收来自该拖动分量的值的阵列。在一些实施例中,并行组合器536将所接收的阵列组合成包括从拖动分量接收的所有值的较大阵列。
捏合分量538从并行组合器536接收“可能”状态和值。由于并行组合器536处于“可能”状态,因此捏合分量538也处于“可能”状态。捏合分量538基于从并行组合器536接收的值(例如,基于每个触摸输入相对于其初始位置的位置)确定和传送缩放值,并且任选地确定和传送缩放速度。由于捏合分量538是捏合手势识别器530的根节点,因此捏合手势识别器530的总体状态是“可能”状态,并且捏合手势识别器530的总体输出值是捏合分量538的总体输出值。
图5O示出了捏合手势的成功识别的示例。具体地讲,图5O示出了处理在相对于图5M至图5N所述的第一输入事件和第二输入事件之后接收的第二对输入事件的结果。第二对输入事件包括与第一触摸输入被保持在触敏表面上并在触敏表面上移动至少最小阈值距离相关联的第三输入事件和与第二触摸输入被保持在触敏表面上并在触敏表面上移动至少最小阈值距离相关联的第四输入事件。在图5O所示的示例中,第三输入事件和第四输入事件是具有阶段值“触摸移动”的空间事件。第一拖动分量532已将第三输入事件识别为正在进行的第一触摸输入的空间事件(如“触摸移动”阶段值所指示的),并且已确定第一触摸输入的移动量(“p1c–p1i”)大于最小阈值量(“Dmin,th”)。因此,第一拖动分量532已转变到“活动”状态。第一拖动分量532向并行组合器536传送第一拖动分量532的当前“活动”状态和从第三输入事件识别的(或基于第三输入事件中的信息确定的)值,包括第一触摸输入的当前时间戳(“t1c”)、第一触摸输入的当前瞬时速度(“v1c”)、第一触摸输入的初始位置(“p1i”)和第一触摸输入的当前位置(“p1c”)。
类似地,第二拖动分量534已将第四输入事件识别为正在进行的第二触摸输入的空间事件(如“触摸移动”阶段值所指示的),并且已确定第二触摸输入的移动量(“p2c–p2i”)大于最小阈值量(“Dmin,th”)。因此,第二拖动分量534已转变到“活动”状态。第二拖动分量534向并行组合器536传送第二拖动分量534的当前“活动”状态和从第四输入事件识别的(或基于第四输入事件中的信息确定的)值,包括第二触摸输入的当前时间戳(“t2c”)、第二触摸输入的当前瞬时速度(“v2c”)、第二触摸输入的初始位置(“p2i”)和第二触摸输入的当前位置(“p2c”)。
由于两个拖动分量都已经转变到“活动”状态,因此并行组合器536也已经转变到“活动”状态。在一些实施例中,捏合手势可通过仅移动一个触摸输入而另一个触摸输入保持静止来执行。因此,在一些实施例中,并行组合器536响应于其子拖动分量中的至少一个转变到“活动”状态(例如,即使另一个子拖动分量保持在“可能”状态)而转变到“活动”状态。在图5O中,并行组合器536将其当前“活动”状态和从第一拖动分量532和第二拖动分量534接收所有值传送到捏合分量538。
由于并行组合器536处于“活动”状态,因此捏合分量538也处于“活动”状态。捏合分量538基于从并行组合器536接收的值(例如,基于每个触摸输入相对于其初始位置的当前位置)确定和传送(当前)缩放值,并且任选地确定和传送(当前)缩放速度。因此,捏合手势识别器530的总体状态是“活动”状态,并且捏合手势识别器530的总体输出值是捏合分量538的总体输出值。
图5P示出了图5O中所识别的捏合手势的连续成功识别的示例。具体地讲,图5P示出了在相对于图5O描述的第二对输入事件之后接收的第三对输入事件的处理结果。第三对输入事件包括与第一触摸输入被保持在触敏表面上距其初始位置至少最小阈值距离的位置处相关联的空间事件,以及与第二触摸输入从触敏表面抬离相关联的空间事件(例如,具有阶段值“触摸结束”)。因此,第一拖动分量532保持在“活动”状态并且向并行组合器536传送当前“活动”状态和相关联的值,如相对于图5O所述的。
第二拖动分量534已将空间事件识别为与完成的触摸输入相关联(如由“触摸结束”阶段值所指示的),并且因此已转变到“结束”状态。第二拖动分量534传送其当前“结束”状态和从“触摸结束”输入事件识别的(或基于“触摸结束”输入事件中的信息确定的)相关联的值,包括第二触摸输入的结束时间戳(“t2e”)、第二触摸输入抬离时的瞬时速度(“v2e”)、第二触摸输入的初始位置(“p2i”)和第二触摸输入抬离时的结束位置(“p2e”)。
在一些实施例中,只要一个触摸输入保持“活动”,即使另一个触摸输入已“结束”,则捏合手势识别器保持“活动”状态。也就是说,在用户使用与触敏表面接触的两根手指执行捏合手势时“活动”的捏合手势识别器即使在用户从触敏表面抬离一根手指(只要另一根手指保持在触敏表面上)之后仍保持“活动”。用户可将抬起的手指放回到触敏表面上,以恢复捏合手势。因此,尽管第二拖动分量534已转变到图5P中的“结束”状态,但并行组合器536保持在“活动”状态。并行组合器536将其当前“活动”状态和从第一拖动分量532和第二拖动分量534接收所有值传送到捏合分量538。
由于并行组合器536保持在“活动”状态,捏合分量538也保持在“活动”状态,并且基于从并行组合器536接收的值确定和传送(当前)缩放值,并且任选地确定和传送(当前)缩放速度。因此,捏合手势识别器530的总体状态保持在“活动”状态,并且捏合手势识别器530的总体输出值是捏合分量538的总体输出值。
图5Q示出了图5O至图5P中所识别的捏合手势的完成的示例。具体地讲,图5Q示出了处理附加输入事件的结果,该附加输入事件是在相对于图5所述的第三对输入事件之后接收的并且与第一触摸输入从触敏表面的抬离相关联(例如,具有阶段值“触摸结束”)。因此,第一拖动分量534已转变到“结束”状态。第一拖动分量534传送其当前“结束”状态和从“触摸结束”输入事件识别的(或基于“触摸结束”输入事件中的信息确定的)相关联的值,包括第一触摸输入的结束时间戳(“t1e”)、第一触摸输入抬离时的瞬时速度(“v1e”)、第一触摸输入的初始位置(“p1i”)和第一触摸输入抬离时的结束位置(“p1e”)。
由于两个拖动分量都已经转变到“结束”状态,因此并行组合器536也已经转变到“结束”状态。并行组合器536将其当前“结束”状态和从第一拖动分量532和第二拖动分量534接收的所有值传送到捏合分量538。因此,捏合手势识别器530的总体状态是“结束”状态,指示捏合手势已被识别并已结束,并且捏合手势识别器530的总体输出值是捏合分量538的总体输出值。即使在捏合手势已经结束之后,缩放速度任选地用于继续调整捏合手势所指向的用户界面或用户界面元素的缩放。
在一些实施例中,用户界面的相应视图包括旋转手势识别器,该旋转手势识别器具有与上述捏合手势识别器530相同的分量手势识别器,不同的是捏合分量538被旋转分量(未示出)所替换。此外,旋转手势识别器及其分量识别器的操作与上文针对捏合手势识别器530所述的操作相同,不同的是旋转分量根据(当旋转手势识别器的拖动分量532中的至少一个拖动分量处于活动状态时)从并行分量536接收的位置值和任选地速度值确定角度或旋转量,以及任选地角速度或旋转速度。
图6A至图6C示出了基于所接收的输入从用户界面中的视图的视图分级结构生成的手势识别分级结构的示例。
图6A示出了显示用户界面600的设备100。用户界面600包括多个视图602(标记为“视图A”)、606(标记为“视图B”)、612(标记为“视图C”)和616(标记为“视图D”)。视图602是视图分级结构630中的最高视图并且包括长按压手势识别器604。视图606是视图分级结构630中的视图602的子视图,并且包括滚动手势识别器608和捏合手势识别器610(例如,类似于图5M的捏合手势识别器530)。视图612是视图分级结构630中的视图606的第一子视图,并且包括第一轻击手势识别器614(例如,类似于图5A的轻击手势识别器500)。视图616是视图分级结构630中的视图606的第二子视图,并且包括第二轻击手势识别器618(例如,类似于图5A的轻击手势识别器500)。在一些实施例中,第二轻击手势识别器618包括相同分量手势识别器和第一轻击手势识别器614的实例,并且因此那些分量手势识别器在同时实例化的手势识别器中被重用两次或更多次。更一般地,在一些实施例中,相应(或第一)分量手势识别器的两个或更多个实例被包括在同时实例化的手势识别器中;并且在一些实施例中,多个分量手势识别器中的每个分量手势识别器的两个或更多个实例被包括在同时实例化的手势识别器中(例如,在下文针对相应用户界面600所讨论的手势识别分级结构中)。
图6A还示出了在设备100处接收的触摸输入620。设备100(例如,使用命中视图确定模块172)确定视图612是触摸输入620的命中视图(例如,视图612是视图分级结构630中已经发生触摸输入620的最低视图,并且因此应当接收用于处理与触摸输入620相关联的输入事件的优先级)。因此,视图612在视图分级结构630中被突出显示。在一些实施例中,手势识别器604、608、610、614和618在设备100上被创建(例如,实例化)和执行,而不考虑用户输入是否已被接收到。在一些实施例中,响应于设备接收到用户输入(例如,触摸输入620),在设备上创建并执行手势识别器604、608、610、614和618中的一个或多个手势识别器。
响应于接收到触摸输入620,设备100基于视图分级结构630生成手势识别分级结构640。在一些实施例中,如图6A所示,所生成的手势识别分级结构仅包括对应于触摸输入的位置的视图(例如,命中视图及其在视图分级结构中的所有前导视图)的手势识别器。因此,手势识别分级结构640仅包括命中视图612、视图612的父视图606和视图612的祖父视图602的手势识别器——即命中视图612的第一轻击手势识别器614、视图606的滚动手势识别器608和捏合手势识别器610、以及视图602的长按压手势识别器604。在一些实施例中,所生成的手势识别分级结构包括视图分级结构中的所有视图的手势识别器(例如,此类手势识别分级结构还将包括视图616的第二轻击手势识别器618,该视图不对应于触摸输入620的位置)。
此外,由于视图612已被确定为命中视图,命中视图612的手势识别器比视图分级结构中的其他视图的手势识别器具有用于处理触摸输入620的最高优先级。因此,手势识别分级结构640使用排他性组合器642将最高优先级分配给第一轻击手势识别器614。排他性组合器通过要求左手侧子手势识别器失败以便使右手侧子手势识别器成功来定义多个子(分量)手势识别器之间的关系。对于具有两个以上子手势识别器的排他性组合器,只有当其左侧的每个子手势识别器都失败时,才允许相应的子手势识别器成功。因此,由于手势识别分级结构640中除了轻击手势识别器614之外的所有手势识别器都在排他性组合器542的右手侧,因此手势识别分级结构要求第一轻击手势识别器614失败以便使分级结构640中的任何其他手势识别器成功。应当注意,本讨论中的术语“右”和“左”是不同的但可互换的,并且类似地,本讨论中的术语“右手”和“左手”是不同的但可互换的。更一般地,在一些实施例中,排他性组合器642或644的每个不同的输入位置被分配相应的优先级,并且只有当连接到排他性组合器642或644的较低优先级输入的所有子手势识别器已经失败时,才允许连接到排他性组合器642或644的特定输入的子手势识别器成功。
由于视图606是命中视图的父视图(例如,视图分级结构630中对应于触摸输入620的第二低视图),因此视图606的手势识别器具有用于处理触摸输入620的第二高优先级。因此,视图606的两个手势识别器(例如,滚动手势识别器608和捏合手势识别器610)两者均具有由排他性组合器644定义的高于手势识别分级结构640中的其他手势识别器(例如,长按手势识别器604)的优先级。在一些实施例中,当单个视图包括多个手势识别器时,使用组合器来定义多个手势识别器之间的优先级或其他关系。在图6A所示的示例中,同时组合器646用于定义视图606的滚动手势识别器608和捏合手势识别器610之间的关系,使得允许滚动手势识别器608和捏合手势识别器610同时成功。
图6B类似于图6A,不同的是图6B示出了在设备100处接收的触摸输入622,使得视图616被确定为命中视图(而不是如图6A中的视图612)。因此,视图616在视图分级结构630中被突出显示。响应于接收到触摸输入622,设备100基于视图分级结构630生成手势识别分级结构650。手势识别分级结构650包括命中视图616、视图616的父视图606和视图616的祖父视图602的手势识别器——即命中视图616的第二轻击手势识别器618(而不是视图612的第一轻击手势识别器614)、视图606的滚动手势识别器608和捏合手势识别器610、以及视图602的长按压手势识别器604。由于视图616已被确定为命中视图,因此第二轻击手势识别器618具有高于视图分级结构中的其他视图的手势识别器的用于处理触摸输入622的最高优先级。因此,手势识别分级结构650类似于手势识别分级结构640(图A),不同的是视图616的第二轻击手势识别器618替换视图612的第一轻击手势识别器614。
图6C类似于图6A,不同的是图6C示出了在设备100处接收的双接触触摸输入624。在一些实施例中,基于多个接触的形心来确定多点接触触摸输入的命中视图。在图6C所示的示例中,针对触摸输入624确定的命中视图是视图606(该视图对应于触摸输入624的两个接触之间的大约一半的位置)。因此,视图606在视图分级结构630中被突出显示。响应于接收到触摸输入624,设备100生成手势识别分级结构660。由于视图606已被确定为命中视图,因此视图606的滚动手势识别器608和捏合手势识别器610(同时组合器664允许其同时成功)两者均具有高于视图分级结构中的其他视图的手势识别器(例如,长按压手势识别器604)的用于处理触摸输入624的最高优先级。因此,同时组合器在排他性组合器662的左手侧,而长按压手势识别器604在右手侧。换句话讲,手势识别分级结构660类似于手势识别分级结构640(图A),不同的是省略了第一轻击手势识别器614及其相关联的排他性组合器642。
在一些实施例中,触摸输入624的命中视图被确定为视图612,因为触摸输入624的至少一个接触对应于视图612,并且因为视图612低于视图606。在一些此类实施例中,手势识别分级结构660还包括第一轻击手势识别器614(例如,手势识别分级结构与图6A的手势识别分级结构640相同)。
图7A至图7E是示出根据一些实施例的使用由分量手势识别器组装的手势识别器来处理输入的方法700的流程图。方法700在电子设备(例如,图3的设备300或图1A的便携式多功能设备100)处执行,该电子设备具有输入设备(例如,图1A的触摸屏112、图3的触控板355或键盘/鼠标350)、任选的显示器(例如,图1A的触摸屏112或图3的显示器340)、以及任选的用于检测与包括触敏表面的输入设备的接触强度的一个或多个传感器(例如,图1A的接触强度传感器165)。在一些实施例中,显示器是触摸屏显示器,该触摸屏显示器具有在显示器上或与显示器集成的触敏表面。在一些实施例中,显示器与触敏表面是分开的。方法700中的一些操作任选地被组合,并且/或者一些操作的次序任选地被改变。
如下所述,方法700为电子设备提供了使用模块化方法处理检测到的输入的直观方式,该模块化方法将较大的输入事件处理要求集合划分为与构成手势识别器的分量手势识别器相关联并使用分量手势识别器来处理的较小事件处理要求子集,使得较小事件处理要求子集可以比较大集合更快地被处理。这种模块化方法增加了可以潜在地识别的手势的数量、程度和复杂性。跨多个手势识别器重用模块(的实例)提供了手势识别能力的一致性。此外,与使用单片手势识别器(即不是模块化的手势识别器)处理输入的方法相比,该模块化方法提供了设计灵活性,因为模块可被添加到手势识别器或从手势识别器中移除,或者手势识别器中的各个模块可被修改版本替代,而无需设计全新的单片手势识别器。模块化方法还减少了通过触摸以及其他输入和手势施加在电子设备上的计算负荷,这继而改善了设备响应性并减少了延迟。减少响应输入的延迟还减少了在操作设备/与设备交互时的用户错误,诸如在等待设备响应用户的较早输入时由用户做出的重复或无关的输入。减少来自用户的输入的数量和/或程度增强了设备的可操作性,并且使得用户-设备界面更加有效,这又通过使用户能够更快速并有效地使用设备而减少了电力使用并且改善了设备的电池寿命。
设备经由输入设备检测(702)输入(例如,触敏表面上的触摸输入、使用鼠标的一个或多个按钮的鼠标输入等)。
响应于检测到输入,设备使用手势识别器来监视(704)输入。手势识别器包括(706)多个分量手势识别器,所述多个分量手势识别器定义用于识别手势的要求(例如,手势识别器是组装的手势识别器,其使用来自可用分量手势识别器的集合的多个分量手势识别器组装)。来自所述多个分量手势识别器的第一分量手势识别器定义用于识别手势的第一要求(例如,相对于位置、接触强度、最短持续时间、最长持续时间、距离(任选地具有最小和/或最大距离要求)等的要求),并且来自所述多个分量手势识别器的第二分量手势识别器定义用于识别手势的第二要求(例如,相对于位置、接触强度、最短持续时间、最长持续时间、距离(任选地具有最小和/或最大距离要求)等的要求)。在一些实施例中,响应于检测到输入形成(例如,创建或实例化)手势识别器。在一些实施例中,手势识别器与在电子设备上执行的软件应用程序的多个视图中的视图相关联,并且根据确定检测到的输入的位置对应于手势识别器与之关联的视图来形成手势识别器。在一些实施例中,手势识别器具体地对应于前述视图,或者包括响应于前述视图中的触摸输入的应用程序的组件。本文相对于图5A至图5Q示出并描述了由多个分量手势识别器组装的示例性手势识别器。
根据确定输入满足包括第一分量手势识别器的第一要求和第二分量手势识别器的第二要求的第一手势识别标准,设备使用手势识别器识别(708)第一手势。在一些实施例中,可用分量手势识别器的集合包括识别具有特定属性(例如,包括位置信息和/或平动(移动)信息)的输入事件(例如,触摸事件、鼠标事件等)的分量手势识别器。识别输入事件的分量手势识别器的示例包括空间事件监听器(诸如图5A的空间事件监听器502)、平移事件监听器和拖动事件监听器(诸如图5M的拖动事件监听器532和534等)。
在一些实施例中,可用分量手势识别器的集合包括用于确定输入的特定属性(例如,当前位置、当前时间戳、当前强度等,任选地结合一个或多个先前确定的属性诸如起始位置、起始时间戳等)是否满足用于识别手势的特定要求(例如,距离要求(参见图5A的距离分量506的讨论)、(定时)持续时间要求(参见图5A的最长持续时间分量504的讨论)或强度阈值要求等)的分量手势识别器。在一些实施例中,可用分量手势识别器的集合包括封装器,该封装器包括一个或多个其他分量手势识别器,并且封装器的输出取决于所包括的分量手势识别器(例如,如本文更详细描述的重复分量手势识别器(诸如图5G的重复器522))的结果和/或取决于具有比所包括的分量手势识别器(例如,如本文更详细描述的暂停分量手势识别器(诸如图5A的前导暂停508))更高优先级的其他手势识别器或分量手势识别器的结果。
在一些实施例中,可用分量手势识别器的集合包括组合器,其中相应的组合器组合由两个或更多个分量手势识别器生成的结果(有时称为分量手势识别器输出或识别结果,或组合器输入),并且基于其结果使用组合器组合的分量手势识别器(例如,选通分量手势识别器(诸如图5A的选通组合器510和512)、同时分量手势识别器(诸如图6A的同时组合器646)、排他性分量手势识别器(诸如图6A的排他性组合器642和644)、顺序分量手势识别器或并行分量手势识别器(诸如图5M的并行组合器536)等,如本文更详细描述的)之间的关系定义用于识别手势的要求。
在一些实施例中,确定输入是否满足第一手势识别标准包括:使用第一分量手势识别器确定输入是否满足由第一分量手势识别器定义的第一要求;使用第二分量手势识别器确定输入是否满足由第一分量手势识别器定义的第二要求;以及基于使用第一分量手势识别器和第二分量手势识别器进行的相应确定来确定输入是否满足第一手势识别标准。
在一些实施例中,第一分量手势识别器具有(710)多个可用状态中的当前状态(例如,基于输入是否满足第一分量手势识别器的第一要求确定);并且第二分量手势识别器具有多个可用状态中的当前状态(例如,基于输入是否满足第二分量手势识别器的第二要求确定)。在一些实施例中,相应分量手势识别器的可用状态包括“可能”、“活动”、“结束”和“失败”。分量手势识别器在可用状态之间的转换的示例在本文相对于图5A至图5Q示出和描述。具有用于不同分量手势识别器的独立状态与手势识别器的模块化设计相一致,这简化了事件处理并减少了处理输入时设备上的计算负荷。这提高了设备响应性并减少了延迟,从而增强了设备的可操作性,并且使用户-设备界面更加有效(例如,通过帮助用户实现预期结果,并且通过减少操作设备/与设备进行交互时的用户错误)。
在一些实施例中,设备基于第一分量手势识别器的当前状态和第二分量手势识别器的当前状态确定(712)手势识别器的当前状态(例如,所述多个可用状态(例如,“可能”、“活动”、“结束”和“失败”)中的当前状态)。在一些实施例中,手势识别器的总体状态基于组合器规则来确定。在一个示例中,手势识别器包括使用选通分量手势识别器(也称为选通组合器)相关联的第一分量手势识别器和第二分量手势识别器。在该示例中,当第二分量手势识别器处于失败状态时,选通组合器处于失败状态;并且当第二分量手势识别器未处于失败状态时,选通组合器传递第一分量手势识别器的状态(例如,选通组合器类似于逻辑与门进行操作)。如本文参考图5A至图5F所述,轻击手势识别器500的当前总体状态基于选通组合器512的当前状态确定(选通组合器的状态继而基于轻击手势识别器500中的其他分量手势识别器502、504、506、508和510确定)。又如,如本文参考图5G所述,双击手势识别器520的当前总体状态基于其分量手势识别器522和524的当前状态确定。基于分量手势识别器的状态确定手势识别器的总体状态与手势识别器的模块化设计相一致,这简化了事件处理并减少了处理输入时设备上的计算负荷。这提高了设备响应性并减少了延迟,从而增强了设备的可操作性,并且使用户-设备界面更加有效(例如,通过帮助用户实现预期结果,并且通过减少操作设备/与设备进行交互时的用户错误)。
在一些实施例中,使用手势识别器监视输入包括(714):在手势识别器处接收描述在第一时间点的输入的第一信息(例如,对应于第一时间点的触摸事件);使用第一分量手势识别器处理第一信息,以确定针对所述第一时间点的所述多个可用状态中的所述第一分量手势识别器的当前状态;以及使用第二分量手势识别器处理第一信息,以确定针对所述第一时间点的所述多个可用状态中的所述第二分量手势识别器的当前状态,如本文参考如图5C所示的第一输入事件的处理结果所述。在一些实施例中,使用手势识别器监视输入还包括在手势识别器处接收描述在晚于第一时间点的第二时间点的输入的变化的第二信息。在一些实施例中,在手势识别器已经接收和处理第一信息之后,手势识别器接收和处理第二时间点的第二信息。在一些实施例中,使用手势识别器监视输入还包括:使用第一分量手势识别器处理第二信息,以确定针对所述第二时间点的所述多个可用状态中的所述第一分量手势识别器的当前状态(例如,从先前状态诸如第一分量手势识别器在第一时间点的状态更新其状态);以及使用第二分量手势识别器处理第二信息,以确定针对所述第二时间点的所述多个可用状态中的所述第二分量手势识别器的当前状态(例如,从先前状态诸如第二分量手势识别器在第一时间点的状态更新其状态),如本文参考分别如图5D至图5F所示的第二输入事件、第三输入事件或第四输入事件的处理结果所述。使用状态随时间演变的独立分量手势识别器来随时间监视输入与手势识别器的模块化设计相一致,这简化了事件处理并减少了处理输入时设备上的计算负荷。这提高了设备响应性并减少了延迟,从而增强了设备的可操作性,并且使用户-设备界面更加有效(例如,通过帮助用户实现预期结果,并且通过减少操作设备/与设备进行交互时的用户错误)。
在一些实施例中,手势识别器中的一个或多个分量手势识别器包括(716)描述输入的一个或多个参数(例如,描述输入的位置的点值,或描述与输入相关联的时间的时间戳)(例如,图5C的初始位置516或初始时间514)。在一些实施例中,使用手势识别器监视输入包括使用手势识别器中的所述一个或多个分量手势识别器确定所述一个或多个参数的值。在一些实施例中,第一手势识别标准包括相应参数满足相应阈值以便识别第一手势的要求。例如,第一手势识别标准包括输入行进的距离(例如,触摸输入在触敏表面上的移动量)满足相应距离阈值(例如,输入必须移动至少第一阈值量,输入必须移动不超过第二阈值量,或者输入必须移动至少第一阈值量但不超过第二阈值量)的要求(由相应分量手势识别器定义)。
在一些实施例中,手势识别器根据所述一个或多个参数的变化生成事件/向软件应用程序发送事件。在一些实施例中,手势识别器在确定输入是否满足第一手势识别标准之前生成一个或多个事件/向软件应用程序发送一个或多个事件。在一些实施例中,所述一个或多个事件中的相应事件包括对应于手势识别器的当前状态(例如,“可能”、“活动”、“结束”或“失败”)的阶段值。使用手势识别器中的分量手势识别器确定描述输入的参数的值为手势识别器提供处理输入所需的关于输入的信息,这简化了事件处理并减少了处理输入时设备上的计算负荷。这提高了设备响应性并减少了延迟,从而增强了设备的可操作性,并且使用户-设备界面更加有效(例如,通过帮助用户实现预期结果,并且通过减少操作设备/与设备进行交互时的用户错误)。
在一些实施例中,手势识别器是(718)具有多个节点的手势识别树(例如,树数据结构),并且手势识别树的每个节点包括相应的分量手势识别器(例如,如本文参考图5A至图5Q所述)。在一些实施例中,使用手势识别器监视输入包括将描述在相应时间点的输入的信息从手势识别树中具有子节点的相应节点处的分量手势识别器传送到手势识别树中的子节点处的分量手势识别器(例如,如本文参考图5B、图5G、图5J和图5M所述)。在一些实施例中,具有多个子节点的(父)分量手势识别器(例如,组合器)基于(父)分量手势识别器的属性将描述输入的信息(例如,输入事件)传送到其子分量手势识别器。一些组合器诸如同时组合器和排他性组合器将关于输入的信息(例如,输入事件)传送到其所有子分量手势识别器(例如,如本文参考图6A的同时组合器646和排他性组合器642和644所述)。在一些实施例中,组合器(例如,排他性组合器)通过一次将特定输入事件发送到一个子分量手势识别器以由每个子分量手势识别器依次处理输入事件来将特定输入事件发送到组合器的所有子分量手势识别器。
一些组合器诸如顺序组合器和并行组合器将关于输入的信息仅传送到其子分量手势识别器的子集。例如,顺序组合器将关于输入的相应信息(例如,相应的输入事件)(仅)传送到一个相应的子分量手势识别器。在检测到相应输入时,顺序组合器首先将关于相应输入的输入事件发送到其第一子分量手势识别器。在第一子分量手势识别器成功之后,顺序组合器向其第二子分量手势识别器发送后续输入事件,对于每个附加子分量手势识别器依此类推。如果任何子分量手势识别器失败,则顺序组合器失败。在另一个示例中,并行组合器将其子分量手势识别器中的一个或多个子分量手势识别器与一个或多个相应输入相关联,并且将关于相应输入的信息仅传送到相关联的子手势识别器。在触敏表面上检测到多个触摸的情况下,并行组合器的第一子手势识别器与多个触摸中的第一触摸相关联,并行组合器的第二子手势识别器与多个触摸中的第二触摸相关联,并且对于多个触摸中的每个触摸依此类推。在该示例中,描述第一触摸的输入事件由并行组合器发送到第一子手势识别器(并且不发送到第二子手势识别器或任何其他子手势识别器);类似地,描述第二触摸的输入事件由并行组合器发送到第二子手势识别器(并且不发送到第一子手势识别器或任何其他子手势识别器)。本文参考图5M至图5Q的并行组合器536描述并行组合器行为的示例。
在一些实施例中,使用手势识别器监视输入还包括基于描述在相应时间点的输入的信息,并且根据确定相应节点具有一个或多个子节点,基于在所述一个或多个子节点处的相应分量手势识别器的相应状态,相应状态是基于描述在相应时间点的输入的信息确定的来确定在手势识别树中的相应节点处的分量手势识别器的状态。在一些实施例中,相应分量手势识别器的状态进一步基于使用所述一个或多个子节点处的相应分量手势识别器确定的相应值。也就是说,相应分量手势识别器的状态是基于以下各项中的一者或多者确定的:关于输入的信息(例如,输入事件)、其子分量手势识别器的(基于关于输入的信息)所确定的状态(如果有的话)和/或其子分量手势识别器的所确定的值(如果有的话)。
通过定义分量手势识别器之间的关系,包括例如设置分量手势识别器之间的优先级,以树结构布置分量手势识别器使得输入事件的有组织和有序流动能够被处理,这简化了输入事件处理并减少了处理输入时设备上的计算负荷。这提高了设备响应性并减少了延迟,从而增强了设备的可操作性,并且使用户-设备界面更加有效(例如,通过帮助用户实现预期结果,并且通过减少操作设备/与设备进行交互时的用户错误)。
在一些实施例中,使用手势识别器监视输入还包括(720)将手势识别树中的子节点处的分量手势识别器的所确定的状态传送到手势识别树中该子节点的父节点处的分量手势识别器。在一些实施例中,确定输入是否满足用于识别第一手势的第一手势识别标准包括基于手势识别树中的分量手势识别器的所确定的状态确定手势识别树的状态(例如,如本文中参考图5C至图5F、图5H至图5I、图5K至图5L和图5N至图5Q所述)。基于子分量手势识别器的状态确定父分量手势识别器的状态使得能够进行更复杂的输入处理,而不增加在父分量手势识别器处所需的处理量。将较大的处理要求集合划分为较小的处理要求子集简化了事件处理并减少了处理输入时设备上的计算负荷。这提高了设备响应性并减少了延迟,从而增强了设备的可操作性,并且使用户-设备界面更加有效(例如,通过帮助用户实现预期结果,并且通过减少操作设备/与设备进行交互时的用户错误)。
在一些实施例中,使用手势识别器监视输入包括(722)基于描述在相应时间点的输入的信息确定手势识别树中的相应节点处的一个或多个分量手势识别器的值。在一些实施例中,基于子分量手势识别器的状态和/或值确定这些值。在一些实施例中,根据确定子节点处的分量手势识别器具有确定的值,确定相应节点处的相应分量手势识别器的状态进一步基于相应节点的子节点处的分量手势识别器的确定的值。
例如,定义参数的阈值要求的分量手势识别器具有确定参数的值的子分量手势识别器,并且(父)分量手势识别器基于来自子分量手势识别器的所确定的值是否满足阈值要求来确定其状态。在一些实施例中,(父)分量手势识别器还确定参数的值,并且在此类情况下,分量手势识别器基于其子分量手势识别器的确定的值(或基于两个或更多个子分量手势识别器的相应值)确定其值。又如,分量手势识别器(例如,图5N的捏合分量538)基于(直接或间接)从第一子分量手势识别器(例如,图5N的第一拖动分量532)接收的第一位置值和从第二子分量手势识别器(例如,图5N的第二拖动分量534)接收的第二位置值来确定缩放值。在一些实施例中,第一子分量手势识别器是第一平移手势识别器的根节点,并且第二子分量手势识别器是第二平移手势识别器的根节点。
基于由子分量手势识别器确定的关于输入的信息(例如,描述输入的参数的值)确定父分量手势识别器的状态使得能够进行更复杂的输入处理,而不增加在父分量手势识别器处所需的处理量。将较大的处理要求集合划分为较小的处理要求子集简化了事件处理并减少了处理输入时设备上的计算负荷。这提高了设备响应性并减少了延迟,从而增强了设备的可操作性,并且使用户-设备界面更加有效(例如,通过帮助用户实现预期结果,并且通过减少操作设备/与设备进行交互时的用户错误)。
在一些实施例中,手势识别器中的所述多个分量手势识别器(724)选自多个可用分量手势识别器,所述多个可用分量手势识别器包括:组合器,该组合器组合来自两个或更多个分量手势识别器的信息并且基于使用组合器组合的分量手势识别器之间的关系定义用于识别手势的要求;以及输入参数识别器,该输入参数识别器确定描述输入的参数(例如,位置、时间戳、强度)的值和/或定义描述输入的参数的阈值(例如,下限和/或上限)要求(例如,输入行进的阈值距离、输入的阈值持续时间、输入的阈值接触强度)。使用组合器定义和监视分量手势识别器和输入参数识别器之间的关系,以监视关于输入的信息(例如,描述输入的参数的值)并定义输入的阈值要求,这使得能够进行更复杂的输入处理,同时将较大的处理要求集合划分为与较大集合相比可更快处理的较小处理要求子集。这提高了设备响应性并减少了延迟,从而增强了设备的可操作性,并且使用户-设备界面更加有效(例如,通过帮助用户实现预期结果,并且通过减少操作设备/与设备进行交互时的用户错误)。
在一些实施例中,手势识别器与应用程序(例如,图1B的应用程序136-1)相关联(726),并且手势识别器中的所述多个分量手势识别器是由独立于应用程序的模块(例如,由设备上的操作系统或应用编程接口(API)提供的分量手势识别器的应用程序无关的库,诸如图1B的应用程序无关的软件模块195)提供的多个可用分量手势识别器中的相应分量手势识别器的实例(例如,应用程序特定的实例)。提供可用分量手势识别器的框架,使得可用分量手势识别器的实例可用于形成手势识别器,这减轻了设备跨不同应用程序支持和执行不同手势识别过程的负担,并且改善了手势识别功能的一致性。这减少了施加在设备上的计算负荷,这继而提高了设备响应性并减少了延迟,从而增强了设备的可操作性,并且使用户-设备界面更加有效(例如,通过帮助用户实现预期结果,并且通过减少操作设备/与设备进行交互时的用户错误)。
在一些实施例中,手势识别器包括(728)第三分量手势识别器(例如,组合器),该第三分量手势识别器基于第一分量手势识别器和第二分量手势识别器(例如,排他性组合器、同时组合器、顺序组合器、并行组合器或选通组合器)之间的关系定义用于识别手势的第三要求。在一些实施例中,使用手势识别器监视输入包括使用第三分量手势识别器监视第一分量手势识别器的状态和第二分量手势识别器的状态,以确定第一分量手势识别器(例如,第一分量手势识别器的状态)和第二分量手势识别器(例如,第二分量手势识别器的状态)是否满足第三要求。在一些实施例中,第一手势识别标准包括基于第一分量手势识别器和第二分量手势识别器之间的预定义关系的第三要求。本文参考图5A至图5Q和图6A至图6C描述了示例性组合器及其要求/用途。使用第三分量手势识别器来定义和监视第一分量手势识别器和第二分量手势识别器之间的关系增加了可以潜在地被识别的手势的复杂性,而不增加第一分量手势识别器和第二分量手势识别器上的计算负荷,其中第一分量手势识别器和第二分量手势识别器中的每一个定义和监视用于识别手势的事件处理要求的相应子集。这提高了设备响应性并减少了延迟,从而增强了设备的可操作性,并且使用户-设备界面更加有效(例如,通过帮助用户实现预期结果,并且通过减少操作设备/与设备进行交互时的用户错误)。
在一些实施例中,第三分量手势识别器是(730)排他性组合器,并且第三要求指定第一分量手势识别器必须失败以便使第二分量手势识别器成功。在一些实施例中,在第一分量手势识别器未处于失败状态或取消状态时,第三分量手势识别器的状态基于第一分量手势识别器的状态(例如,不考虑第二分量手势识别器的状态)。在一些实施例中,在第一分量手势识别器处于失败状态或取消状态时,第三分量手势识别器的状态基于第二分量手势识别器的状态。例如,当第一分量手势识别器处于除失败状态或取消状态之外的状态时,第三分量手势识别器的状态基于第一分量手势识别器的状态,并且第三分量手势识别器还包括第三分量手势识别器的状态对应于第一分量手势识别器的指示。在另一个示例中,当第一分量手势识别器处于失败状态或取消状态时,第三分量手势识别器的状态基于第二分量手势识别器的状态,并且第三分量手势识别器还包括第三分量手势识别器的状态对应于第二分量手势识别器的指示。本文还参考图6A至图6C描述了示例性排他性组合器。提供要求其第一(子)分量手势识别器失败以便使其第二(子)分量手势识别器成功的排他性组合器允许将不同优先级分配给不同的手势识别器或分量手势识别器,而不增加被分配优先级的手势识别器或分量手势识别器的计算负荷。这提高了可以识别的手势的多样性同时减少了通常由单片手势识别器针对越来越多样化和复杂的手势施加的附加计算负荷,这继而提高了设备响应性并减少了延迟,从而增强了设备的可操作性,并且使用户-设备界面更加有效(例如,通过帮助用户实现预期结果,并且通过减少操作设备/与设备进行交互时的用户错误)。
在一些实施例中,第三分量手势识别器是(732)同时组合器,并且第三要求要求在相应的时间点第一分量手势识别器和第二分量手势识别器中的至少一个分量手势识别器的成功,以便使第三分量手势识别器成功。在一些实施例中,同时组合器允许第一分量手势识别器和第二分量手势识别器两者同时成功。例如,组合轻击手势识别器和双击手势识别器的同时手势识别器允许轻击手势识别器在轻击输入(例如,具有小于预定义阈值持续时间的持续时间和小于预定义阈值移动量的移动量的输入)被识别时成功,并且还允许双击手势识别器在完成双击手势的第二轻击输入被识别时成功。提供要求至少一个(子)手势识别器或分量手势识别器成功但允许多个(子)手势识别器或分量手势识别器成功的同时组合器提高了设备同时识别和处理多个手势的能力,并且因此向用户提供附加控制选项,而不需要附加输入或用附加显示的控件使用户界面杂乱。这减少了通常通过使用单片手势识别器同时处理多个手势而施加的附加计算负荷,这提高了设备响应性并减少了延迟,并且还增强了设备的可操作性,并且使用户-设备界面更加有效(例如,通过帮助用户实现预期结果,并且通过减少操作设备/与设备进行交互时的用户错误)。
在一些实施例中,第三分量手势识别器是选通组合器,并且第三要求要求在相应的时间点第一分量手势的成功和第二分量手势识别器的成功,以便使第三分量手势识别器成功。换句话讲,选通组合器要求第一分量手势识别器和第二分量手势识别器两者至少在一个时间点成功(例如,一个分量手势识别器可以先于另一个分量手势识别器成功,但是必须存在两者都成功的至少一个重叠时刻)(例如,选通组合器作为逻辑与门操作)。本文还参考图5A至图5F描述了示例性选通组合器。
在一些实施例中,当相应的分量手势识别器用于识别手势的相应要求被满足时,相应的分量手势识别器被视为成功。例如,如以上相对于图5A至图5F所讨论的,轻击手势识别器要求:(a)输入行进的距离(例如,输入在触摸敏感表面上的移动量)满足预定义阈值距离(例如,在预定义阈值距离内),以及(b)输入的持续时间(例如,在触摸敏感表面上的任何地方检测到输入的时间量)满足(例如,小于)预定义阈值持续时间。在轻击手势识别器示例中,选通组合器(例如,选通组合器512)用于要求满足要求(a)和(b)两者以便识别轻击手势。换句话说,如果第二分量手势识别器(例如,距离分量识别器506)失败,则选通组合器(例如,选通组合器51)失败,并且如果第二分量手势识别器尚未失败,则选通组合器将第一分量手势识别器(例如,选通组合器510)输出的状态和任何值作为其输出传递。
在一些实施例中,第三分量手势识别器是并行组合器,其在相应时间点要求第一分量手势识别器的成功和第二分量手势的成功。在一个示例中,在捏合手势识别器中使用并行组合器来定义作为第一拖动分量手势识别器的第一分量手势识别器和作为第二拖动分量手势识别器的第二分量手势识别器之间的关系,每个拖动分量手势识别器监视相应输入的移动。在捏合手势识别器示例中,并行组合器要求第一平移手势识别器的成功(例如,基于检测到的第一触摸输入)与第二平移手势识别器的成功(例如,基于与第一触摸输入同时检测到的第二触摸输入)同时发生。本文参考图5M至图5Q描述了示例性并行组合器。
在一些实施例中,第三分量手势识别器是(734)顺序组合器,并且为了使第三分量手势识别器成功,第三要求要求第一分量手势识别器的成功,并且在第一分量手势识别器成功之后,要求第二分量手势识别器的成功。换句话讲,顺序组合器要求其子分量手势识别器一个接一个地成功,以便使顺序分量手势识别器成功。例如,可以使用顺序组合器组装用于识别要求长按压然后移动输入的拖动手势识别器,该顺序组合器具有长按压手势识别器作为其第一子分量手势识别器并且具有平移手势识别器作为其第二子分量手势识别器。在一些实施例中,顺序组合器的成功要求较晚分量手势识别器在较早分量手势识别器已成功并结束之后成功。在一些实施例中,顺序组合器的成功仍然发生在较晚分量手势识别器在较早分量手势识别器成功之后但在较早分量手势识别器已经结束之前成功的情况下。在一些实施例中,第三要求进一步要求第二分量手势识别器在从第一分量手势识别器的结束开始的预定义时间量(例如,超时周期)内成功。
在一些实施例中,重复分量手势识别器在要求其子手势识别器顺序成功方面类似于顺序分量手势识别器,不同的是重复分量手势识别器具有被重用或重新实例化的单个子分量手势识别器。在一些实施例中,顺序地创建重复组合器的子分量手势识别器(例如,由于两个子分量手势识别器是相同类型的分量手势识别器(例如,相同分量手势识别器的不同实例))。在一些实施例中,重复组合器的第一子分量手势识别器被创建并且与重复组合器相关联,并且用于处理输入,并且在第一子分量手势识别器成功且结束之后,第一子分量手势识别器被破坏或从手势识别器中移除,并且第二子分量手势识别器(例如,与第一子分量手势识别器相同类型的分量手势识别器的第二实例)被创建并且与重复组合器相关联,并且随后用于处理输入)。上文参考图5G至图5L的双击手势识别器520中的重复器522描述了示例性重复分量手势识别器。
提供要求多个(子)手势识别器或分量手势识别器的依次成功的顺序或重复组合器允许通过重用此类手势识别器或分量手势识别器(或使用其实例)来形成复合手势。这提高了可以识别的手势的多样性同时减少了通常由单片手势识别器针对越来越多样化和复杂的手势施加的附加计算负荷。这继而提高了设备响应性并减少了延迟,从而增强了设备的可操作性,并且使用户-设备界面更加有效(例如,通过帮助用户实现预期结果,并且通过减少操作设备/与设备进行交互时的用户错误)。
在一些实施例中,第一分量手势识别器的第一要求要求(736)描述输入的参数(例如,位置、移动的距离、时间戳、持续时间、强度中的任何一个)的值满足指定的阈值(例如,第一要求要求参数值不超过最大阈值,以及/或者第一要求要求参数值满足最小阈值,如本文参考图5A至图5F所述)。在一些实施例中,手势识别器包括确定描述输入的参数的值的第四分量手势识别器。在一些实施例中,使用手势识别器监视输入包括使用第四分量手势识别器监视输入以确定与第四分量手势识别器相关联的参数的值,并且该方法包括将使用第四分量手势识别器确定的参数值传送到第一分量手势识别器以确定是否满足第一要求。使用提取关于输入的特定信息并将所提取的信息传送到(例如,基于参数值)确定是否满足用于识别手势的相应要求的另一分量手势识别器使得处理输入所需的信息可用,而不增加负责确定其相应要求是否被满足的分量手势识别器上的计算负荷。这提高了设备响应性并减少了延迟,从而增强了设备的可操作性,并且使用户-设备界面更加有效(例如,通过帮助用户实现预期结果,并且通过减少操作设备/与设备进行交互时的用户错误)。
在一些实施例中,手势识别器是(738)轻击手势识别器(例如,图5A的轻击手势识别器500,其在本文中相对于图5A至图5F更详细地描述)。在一些实施例中,第一分量手势识别器是距离分量手势识别器,该距离分量手势识别器存储对应于输入被第一次检测到时的时间点的输入的初始位置,并且接收在相应时间点的输入的当前位置。在一些实施例中,距离分量手势识别器从分量手势识别器接收输入的当前位置,该分量手势识别器识别包括位置信息的关于输入的信息(例如,输入事件)。在一些实施例中,距离分量手势识别器从传送到距离分量手势识别器的关于输入的信息(例如,输入事件)中提取输入的当前位置。在一些实施例中,由第一分量手势识别器定义的第一要求要求输入的初始位置和输入的当前位置之间的距离在阈值距离内。在一些实施例中,第一分量手势识别器确定输入是否满足第一要求。
在一些实施例中,第二分量手势识别器是(最大)持续时间分量手势识别器,该持续时间分量手势识别器存储对应于输入被第一次检测到时的时间点的初始时间戳,并且接收对应于相应(例如,当前)时间点的当前时间戳。在一些实施例中,持续时间分量手势识别器从分量手势识别器接收输入的当前时间戳,该分量手势识别器识别包括时间戳信息的关于输入的信息(例如,输入事件)。在一些实施例中,持续时间分量手势识别器从传送到持续时间分量手势识别器的关于输入的信息(例如,输入事件)中提取输入的当前时间戳。在一些实施例中,由第二分量手势识别器定义的第二要求要求初始时间戳与当前时间戳之间的时间量在阈值(例如,预定义阈值)时间量内。在一些实施例中,第二分量手势识别器确定输入是否满足第二要求。
在一些实施例中,轻击手势识别器还包括位置分量手势识别器(例如,空间事件监听器),该位置分量手势识别器确定输入在相应时间点具有当前位置。在一些实施例中,轻击手势识别器还包括第一选通组合器,该第一选通组合器要求第二分量手势识别器的成功和位置分量手势识别器的成功以便成功。在一些实施例中,轻击手势识别器还包括第二选通组合器,该第二选通组合器要求第一选通组合器的成功以及第一分量手势识别器的成功以便成功。在一些实施例中,轻击手势识别器还包括暂停分量手势识别器,该暂停分量手势识别器在具有比轻击手势识别器更高优先级的任何其他手势识别器或分量手势识别器主动处理输入(并且尚未失败)时阻止轻击手势识别器的成功。
在一些实施例中,手势识别器是双击手势识别器。在一些实施例中,双击手势识别器包括重复分量手势识别器,该重复分量手势识别器包括轻击手势识别器(例如,轻击手势识别器的所有分量手势识别器,如本文所述)。在一些实施例中,重复分量手势识别器向轻击手势识别器的根节点分量手势识别器传送信息并从其接收处理结果。在一些实施例中,重复分量手势识别器要求所包括的手势识别器或分量手势识别器的重复成功。在一些实施例中,重复分量手势识别器定义所包括的手势识别器或分量手势识别器必须成功以便重复分量手势识别器成功的次数(例如,两次、三次、四次等)。在一些实施例中,重复分量手势识别器定义定时要求,诸如所包括的手势识别器的成功之间的最大允许延迟。在一个示例中,双击手势识别器中的重复分量手势识别器要求所包括的轻击手势识别器成功两次;在此类示例中,重复分量手势识别器可任选地要求轻击手势识别器在自轻击手势识别器第一次成功以来的预定义时间内第二次成功。
在一些实施例中,手势识别器是平移手势识别器,其中平移手势识别器包括平移事件监听器(例如,识别指示输入已经移动的关于输入的信息的分量手势识别器(例如,不要求关于输入的信息指示输入的当前位置))。
在一些实施例中,手势识别器是长按压手势识别器。在一些实施例中,长按压手势识别器类似于轻击手势识别器,不同的是长按压手势识别器包括最短持续时间分量手势识别器而不是最长持续时间分量手势识别器。具体地讲,在一些实施例中,长按压手势识别器包括如本文所述的位置分量手势识别器(例如,空间事件监听器)。在一些实施例中,长按压手势识别器还包括距离分量手势识别器,该距离分量手势识别器存储对应于输入被第一次检测到时的时间点的输入的初始位置,并且接收在相应时间点的输入的当前位置。距离分量手势识别器定义用于识别长按压手势的要求,即输入的初始位置与输入的当前位置之间的距离在阈值距离内。
在一些实施例中,长按压手势识别器还包括最短持续时间分量手势识别器,该最短持续时间分量手势识别器存储对应于输入被第一次检测到时的时间点的初始时间戳,并且接收对应于相应时间点的当前时间戳。在一些实施例中,最短持续时间分量手势识别器从分量手势识别器接收输入的当前时间戳,该分量手势识别器识别包括时间戳信息的关于输入的信息。在一些实施例中,最短持续时间分量手势识别器从传送到最短持续时间分量手势识别器的关于输入的信息提取输入的当前时间戳。最短持续时间分量手势识别器定义用于识别长按手势的要求,即初始时间戳和当前时间戳之间的时间量至少是阈值(例如,预定义阈值)时间量。
在一些实施例中,长按压手势识别器包括第一选通组合器,该第一选通组合器要求位置手势识别器的成功和最短持续时间分量手势识别器的成功以便成功。在一些实施例中,长按压手势识别器包括第二选通组合器,该第二选通组合器要求第一选通组合器的成功以及距离分量手势识别器的成功以便成功。
在一些实施例中,手势识别器是捏合手势识别器,其中该捏合手势识别器包括:第一拖动分量手势识别器,该第一拖动分量手势识别器监听具有位置信息的事件并且基于该位置信息确定移动信息;以及第二拖动分量手势识别器,该第二拖动分量手势识别器监听具有位置信息的事件并且基于该位置信息确定移动信息。在一些实施例中,捏合手势识别器包括将第一拖动分量手势识别器与第一输入(例如,触敏表面上的第一接触)相关联并且将第二拖动分量手势识别器与第二输入(例如,触敏表面上的第二接触)相关联的并行组合器。在一些实施例中,并行组合器将关于第一输入的信息传送到第一拖动分量手势识别器而不是第二拖动分量手势识别器,并且从第一拖动分量手势识别器接收描述第一输入的状态信息和参数值。在一些实施例中,并行组合器将关于第二输入的信息传送到第二拖动分量手势识别器而不是第一拖动分量手势识别器,并且从第二拖动分量手势识别器接收描述第二输入的状态信息和参数值。在一些实施例中,捏合手势识别器包括捏合分量手势识别器,该捏合分量手势识别器接收第一输入和第二输入两者的状态信息和参数值,并且基于状态信息和参数值确定(例如,用于缩放所显示的用户界面元素的)缩放值。本文参考图5M至图5Q示出并描述了示例性捏合手势识别器。
在一些实施例中,手势识别器是旋转手势识别器。在一些实施例中,旋转手势识别器类似于捏合手势识别器,不同的是旋转手势识别器包括旋转分量手势识别器而不是捏合分量手势识别器。在一些实施例中,旋转分量手势识别器接收第一输入和第二输入两者的状态信息和参数值(例如,位置和移动信息),并且基于状态信息和参数值确定(例如,用于旋转所显示的用户界面元素的)角度而不是缩放。类似于捏合手势识别器,旋转手势识别器还包括:第一拖动分量手势识别器,该第一拖动分量手势识别器监听具有位置信息的事件并且基于该位置信息确定移动信息;第二拖动分量手势识别器,该第二拖动分量手势识别器监听具有位置信息的事件并且基于该位置信息确定移动信息;以及并行组合器,该并行组合器将第一拖动分量手势识别器与第一输入(例如,触敏表面上的第一接触)相关联并且将第二拖动分量手势识别器与第二输入(例如,触敏表面上的第二接触)相关联。
相对于任何手势识别器,包括前述示例性手势识别器中的任何手势识别器,用户(例如,应用程序开发者)可向手势识别器添加模块或从手势识别器移除模块,或者开发手势识别器中的任何相应分量手势识别器的修改版本,并且用修改版本替换相应分量手势识别器,以便定制手势识别器,从而定制手势识别器识别手势的要求。
应当理解,对图7A至图7E中的操作进行描述的具体次序仅仅是示例性的,并非旨在表明所述次序是可以执行这些操作的唯一次序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当注意,本文相对于本文所述的其他方法(例如,方法800和方法900)描述的其他过程的细节同样以类似的方式适用于上文相对于图7A至图7E描述的方法700。例如,上面参考方法700描述的输入、状态、值、用户界面、分量手势识别器、手势识别器、视图和视图分级结构任选地具有本文参考本文描述的其他方法(例如,方法800和900)描述的输入、状态、值、用户界面、分量手势识别器、手势识别器、视图和视图分级结构的特性的一个或多个特性。为了简明起见,此处不再重复这些细节。
图8A至图8C是示出根据一些实施例的用于从用户界面中的视图的视图分级结构生成手势识别分级结构的方法800的流程图。方法800在电子设备(例如,图3的设备300或图1A的便携式多功能设备100)处执行,该电子设备具有显示器(例如,图1A的触摸屏112或图3的显示器340)、输入设备(例如,图1A的触摸屏112、图3的触控板355或键盘/鼠标350)、以及任选的用于检测与包括触敏表面的输入设备的接触强度的一个或多个传感器(例如,图1A的接触强度传感器165)。在一些实施例中,显示器是触摸屏显示器,该触摸屏显示器具有在显示器上或与显示器集成的触敏表面。在一些实施例中,显示器与触敏表面是分开的。方法800中的一些操作任选地被组合,并且/或者一些操作的次序任选地被改变。
如下所述,方法800为电子设备提供了基于视图分级结构来区分手势识别器的优先级以在处理定向到应用程序的用户界面的输入中使用的直观方式,其中该视图分级结构定义手势识别器所关联的用户界面中的视图之间的关系。基于如在视图分级结构中定义的其相关联的视图之间的关系在手势识别器之间形成手势识别分级结构促进以与所显示的用户界面一致的方式处理输入,并且改善设备的响应性,这继而减少延迟。减少响应输入的延迟减少了在操作设备/与设备交互时的用户错误,诸如在等待设备响应用户的较早输入时由用户做出的重复或无关的输入。减少来自用户的输入的数量和/或程度增强了设备的可操作性,并且使得用户-设备界面更加有效,这又通过使用户能够更快速并有效地使用设备而减少了电力使用并且改善了设备的电池寿命。
设备在显示器上显示(802)应用程序的用户界面(例如,图6A的用户界面600)。用户界面包括(804)以视图分级结构(例如,图6A的视图分级结构630)布置的多个视图(例如,图6A的视图602、606、612和616),在一些实施例中,该视图分级结构定义视图分级结构中的所述多个视图之间的一个或多个关系,诸如父-子关系。视图分级结构定义第一视图(例如,图6A的视图612)和第二视图(例如,图6A的视图606)之间的第一关系(例如,视图分级结构关系)(例如,第一视图是第二视图的子视图,第一视图是第二视图的父视图,第一视图和第二视图是兄弟视图(相同父视图的两个子视图)等)。第一视图包括第一手势识别器(例如,图6A的第一轻击手势识别器614),并且第二视图包括第二手势识别器(例如,图6A的滚动手势识别器608)。
设备经由输入设备检测(806)对应于所显示的用户界面的第一位置处的输入(例如,触敏表面上的触摸输入)。
设备使用包括第一手势识别器和第二手势识别器的手势识别分级结构(例如,手势识别分级结构640)处理(808)输入。基于视图分级结构中的第一视图和第二视图之间的第一关系确定(手势识别分级结构中的)第一手势识别器和第二手势识别器之间的第二关系(例如,手势依赖性关系)。在一些实施例中,响应于检测到输入(例如,触摸输入620),并且基于关于视图分级结构中的哪个视图是命中视图的确定(例如,基于视图612是命中视图的确定),形成手势识别分级结构。在一些实施例中,基于视图分级结构中的视图(对应于每个手势识别器)相对于命中视图之间的关系定义手势识别分级结构中的手势识别器之间的关系,如本文参考图6A所述。
在一些实施例中,视图分级结构中除了第一视图和第二视图之外的一个或多个视图包括(810)相应手势识别器,并且手势识别分级结构包括所述一个或多个其他视图的相应手势识别器。具体地讲,在一些实施例中,视图分级结构包括具有第三手势识别器的第三视图(例如,具有长按压手势识别器604的视图602,图6A),并且手势识别分级结构包括第三手势识别器(例如,手势识别分级结构640包括长按压手势识别器604,图6A)。在一些实施例中,手势识别分级结构包括视图分级结构中的相应视图的相应手势识别器,而不考虑相应视图是否对应于第一位置(例如,如本文参考图6A的视图616的第二轻击手势识别器618所述)。在一些实施例中,视图分级结构包括基于第一位置确定的命中视图和作为命中视图的父视图的一组视图,并且手势识别分级结构包括(仅在一些实施例中)命中视图和命中视图的父视图中的相应手势识别器。在一些实施例中,手势识别分级结构包括视图分级结构中所有视图的手势识别器。在手势识别分级结构中包括视图分级结构中的(所有)其他视图的手势识别器促进全面的手势处理,该手势处理在处理对设备的输入时考虑与设备上的应用程序的所显示的用户界面相关联的所有可能的手势。这提高了设备响应性并减少了延迟,从而增强了设备的可操作性,并且使用户-设备界面更加有效(例如,通过帮助用户实现预期结果,并且通过减少操作设备/与设备进行交互时的用户错误)。
在一些实施例中,设备识别(812)视图分级结构中对应于第一位置的视图的子集,其中所识别的子集包括第一视图和第二视图,并且其中手势识别分级结构包括所识别的视图的子集的相应手势识别器(例如,如本文参考图6A的手势识别分级结构640所述)。具体地讲,在一些实施例中,视图分级结构包括具有第三手势识别器的第三视图,其中第三视图不对应于第一位置,并且手势识别分级结构不包括第三视图的第三手势识别器。在一些实施例中,只有视图分级结构中对应于第一位置的视图的手势识别器是用于识别在第一位置检测到的输入的候选。在一些实施例中,手势识别分级结构包括对应于第一位置的视图的手势识别器,并且不包括不对应于第一位置的视图的手势识别器。在一些实施例中,对应于第一位置的视图包括命中视图,该命中视图是视图分级结构中对应于第一位置的最低水平视图,并且任选地满足预定义的标准(例如,包括至少一个手势识别器,或者包括能够识别输入的至少一个手势识别器)。在一些实施例中,对应于第一位置的视图还包括命中视图的一个或多个父视图,并且在一些实施例中,包括命中视图的所有父视图。在手势识别分级结构中包括(仅)视图分级结构中与检测到输入的位置相关联的视图的子集的手势识别器促进考虑更可能与检测到的输入相关的手势处理,而不施加考虑不与位置相关联并且因此不太可能与检测到的输入相关的手势的附加负担。这减少了处理输入时设备上的计算负荷,这提高了设备响应性并减少了延迟,从而增强了设备的可操作性,并且使用户-设备界面更加有效(例如,通过帮助用户实现预期结果,并且通过减少操作设备/与设备进行交互时的用户错误)。
在一些实施例中,视图分级结构包括(814)不对应于第一位置的一个或多个视图,其中所述一个或多个视图包括一个或多个手势识别器,并且手势识别分级结构不包括不对应于第一位置的所述一个或多个视图的所述一个或多个手势识别器(例如,如本文中参考图6A的视图616的第二轻击手势识别器618所描述的)。在手势识别分级结构中包括(仅)视图分级结构中与检测到输入的位置相关联的视图的子集的手势识别器促进考虑更可能与检测到的输入相关的手势处理,而不施加考虑不与位置相关联并且因此不太可能与检测到的输入相关的手势的附加负担。这减少了处理输入时设备上的计算负荷,这提高了设备响应性并减少了延迟,从而增强了设备的可操作性,并且使用户-设备界面更加有效(例如,通过帮助用户实现预期结果,并且通过减少操作设备/与设备进行交互时的用户错误)。
在一些实施例中,手势识别分级结构(有时称为手势识别树)包括(816)分量手势识别器(例如,排他性组合器,诸如图6A的排他性组合器642),该分量手势识别器通过要求第一手势识别器失败以便使第二手势识别器成功来定义第一手势识别器和第二手势识别器之间的第二关系。使用独立分量手势识别器(例如,组合器)定义和监视手势识别分级结构中的第一手势识别器和第二手势识别器之间的关系提高了电子设备区分不同手势的能力,而不会增加第一手势识别器和第二手势识别器上的计算负荷,这提高了设备响应性并减少了延迟。此外,使用独立分量手势识别器减少了对第一手势识别器和第二手势识别器的逐个修改的需要,这提供了手势识别中的一致性。这些益处增强了设备的可操作性并使得用户-设备界面更高效(例如,通过帮助用户实现预期结果,并且通过减少操作设备/与设备进行交互时的用户错误)。
在一些实施例中,手势识别分级结构包括(818)分量手势识别器,该分量手势识别器定义手势识别分级结构中的第一手势识别器和第二手势识别器之间的第二关系。在一些实施例中,使用手势识别分级结构处理输入包括:在手势识别分级结构处接收描述输入的信息;将描述输入的信息传送到分量手势识别器;以及基于第一手势识别器和第二手势识别器之间的第二关系将描述输入的信息从分量手势识别器传送到第一手势识别器和第二手势识别器中的至少一者。在一些实施例中,使用手势识别分级结构处理输入还包括:根据确定描述输入的信息被传送到第一手势识别器,使用第一手势识别器处理描述输入的信息。在一些实施例中,使用手势识别分级结构处理输入还包括:根据确定描述输入的信息被传送到第二手势识别器,使用第二手势识别器处理描述输入的信息。
另选地,在一些实施例中,设备在第一时间将描述输入的信息从分量手势识别器传送到第一手势识别器而不是第二手势识别器,并且在第一时间之后的第二时间,根据确定第一手势识别器未能识别输入,设备将描述输入的信息从分量手势识别器传送到第二手势识别器。例如,如上文相对于方法700的操作718所解释的,一些组合器基于针对该组合器或组合器类型的信息传送规则将描述输入的信息(例如,一个或多个输入事件)传送到其所有子分量手势识别器。其他组合器基于针对该组合器或组合器类型的信息传送规则,通过仅向第一子分量手势识别器传送关于多个输入中的第一输入的信息并且仅向第二子分量手势识别器传送关于多个输入中的第二输入的信息,或者通过仅在第一子分量手势识别器成功或以其他方式完成处理信息之后向第二子分量手势识别器传送关于一个或多个输入的信息,从而将信息仅传送到其子分量手势识别器中的一些子分量手势识别器。
基于由组合器定义的第一手势识别器和第二手势识别器之间的关系将信息从手势识别分级结构中的组合器传送到第一手势识别器和第二手势识别器中的至少一个手势识别器减少了当前与输入不相关的手势识别器对输入的不必要的处理。这减少了设备上的计算负荷,这提高了设备响应性并减少了延迟,从而增强了设备的可操作性,并且使用户-设备界面更加有效(例如,通过帮助用户实现预期结果,并且通过减少操作设备/与设备进行交互时的用户错误)。
在一些实施例中,使用第一手势识别器处理描述输入的信息确定(820)第一手势识别器的当前状态,并且使用第二手势识别器处理描述输入的信息确定第二手势识别器的当前状态。在一些实施例中,设备将第一手势识别器的当前状态从第一手势识别器传送到分量手势识别器;将第二手势识别器的当前状态从第二手势识别器传送到分量手势识别器;以及使用分量手势识别器处理描述输入的信息、第一手势识别器的当前状态和第二手势识别器的当前状态,以确定分量手势识别器的当前状态。在一些实施例中,不同分量手势识别器具有不同的信息处理规则,并且因此如何处理状态以确定当前状态由针对分量手势识别器的分量手势识别器类型的处理规则确定。本文参考图5A至图5Q描述了基于分量手势识别器的状态确定手势识别器的状态的示例。基于手势识别器的状态确定定义两个手势识别器之间的关系的分量手势识别器的状态使得能够进行更复杂的输入处理,而不增加手势识别器处所需的处理量,这简化了事件处理并减少了处理输入时设备上的计算负荷。这提高了设备响应性并减少了延迟,从而增强了设备的可操作性,并且使用户-设备界面更加有效(例如,通过帮助用户实现预期结果,并且通过减少操作设备/与设备进行交互时的用户错误)。
在一些实施例中,第一视图包括(822)第三手势识别器,并且手势识别分级结构包括第三手势识别器和分量手势识别器,该分量手势识别器定义手势识别分级结构中的第一手势识别器和第三手势识别器之间的第三关系。在一些实施例中,设备通过执行多个操作确定第一视图的手势识别状态。在一些实施例中,这些操作包括将描述输入的信息传送到分量手势识别器、第一手势识别器和第三手势识别器。在一些实施例中,这些操作包括使用第一手势识别器处理描述输入的信息以确定第一手势识别器的当前状态,并且将第一手势识别器的当前状态从第一手势识别器传送到分量手势识别器。在一些实施例中,这些操作还包括使用第三手势识别器处理描述输入的信息以确定第三手势识别器的当前状态,并且将第三手势识别器的当前状态从第三手势识别器传送到分量手势识别器。在一些实施例中,这些操作还包括使用分量手势识别器处理描述输入的信息、第一手势识别器的当前状态和第三手势识别器的当前状态,以确定第一视图的手势识别状态。例如,基于手势识别分级结构640的(总体)处理结果确定图6A中的命中视图612的手势识别状态。
在一些实施例中,如果视图仅具有一个手势识别器,则视图的(当前)手势识别状态是所述一个手势识别器的(当前)手势识别状态。在一些实施例中,如果视图具有两个或更多个手势识别器,则使用定义所述两个或更多个手势识别器之间的优先级或同时性的一个或多个组合器将所述两个或更多个手势识别器布置在手势识别分级结构(例如,还包括其他视图的手势识别器的较大手势识别分级结构的分支)中。在一些实施例中,视图的手势识别状态由所述一个或多个组合器(例如,由视图的手势识别分级结构的最高(根)节点处的组合器)基于所述两个或更多个手势识别器的(当前)状态确定(例如,相应节点基于其在手势识别分级结构中的子节点的相应状态确定其当前状态)。例如,图6A中视图606的手势识别状态是基于同时组合器646的处理结果确定的,该同时组合器定义视图616的两个手势识别器,即滚动手势识别器608和捏合手势识别器610之间的关系。
基于定义视图中的两个手势识别器之间的关系的分量手势识别器的状态确定视图的手势识别状态,其中分量手势识别器的状态又基于手势识别器的状态,这使得能够进行更复杂的输入处理,并且提高设备区分不同手势的能力,而不增加手势识别器处所需的处理量。这简化了事件处理并减少了处理输入时设备上的计算负荷,这继而提高了设备响应性并减少了延迟,从而增强了设备的可操作性,并且使用户-设备界面更加有效(例如,通过帮助用户实现预期结果,并且通过减少操作设备/与设备进行交互时的用户错误)。
应当理解,对图8A至图8C中的操作进行描述的具体次序仅仅是示例性的,并非旨在表明所述次序是可以执行这些操作的唯一次序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文结合本文所述的其他方法(例如,方法700和方法900)所述的其他过程的细节同样以类似的方式适用于上文相对于图8A至图8C所述的方法800。例如,上面参考方法800描述的输入、状态、值、用户界面、分量手势识别器、手势识别器、视图和视图分级结构任选地具有本文参考本文描述的其他方法(例如,方法700和900)描述的输入、状态、值、用户界面、分量手势识别器、手势识别器、视图和视图分级结构的特性的一个或多个特性。为了简明起见,此处不再重复这些细节。
图9A至图9B是示出根据一些实施例的使用手势识别器处理输入的方法900的流程图,其中描述该输入的参数的值已关联到该手势识别器。方法900在电子设备(例如,图3的设备300或图1A的便携式多功能设备100)处执行,该电子设备具有输入设备(例如,图1A的触摸屏112、图3的触控板355或键盘/鼠标350)、任选的显示器(例如,图1A的触摸屏112或图3的显示器340)、以及任选的用于检测与包括触敏表面的输入设备的接触强度的一个或多个传感器(例如,图1A的接触强度传感器165)。在一些实施例中,显示器是触摸屏显示器,该触摸屏显示器具有在显示器上或与显示器集成的触敏表面。在一些实施例中,显示器与触敏表面是分开的。方法900中的一些操作任选地被组合,并且/或者一些操作的次序任选地被改变。
如下所述,方法900为电子设备提供了使用其中布置有多个手势识别器的手势识别树(有时称为手势识别分级结构)来监视输入的直观方式。在树中的手势识别器之间传输描述输入的参数值为手势识别器提供了处理输入所需的关于输入的信息,而不需要每个手势识别器单独确定信息,这减少了处理输入时设备上的计算负荷,从而提高了设备响应性并减少了延迟。减少响应输入的延迟减少了在操作设备/与设备交互时的用户错误,诸如在等待设备响应用户的较早输入时由用户做出的重复或无关的输入。减少来自用户的输入的数量和/或程度增强了设备的可操作性,并且使得用户-设备界面更加有效,这又通过使用户能够更快速并有效地使用设备而减少了电力使用并且改善了设备的电池寿命。
设备经由输入设备检测(902)输入(例如,触敏表面上的触摸输入)。
响应于检测到输入,设备使用具有多个节点的手势识别树(例如,由多个分量手势识别器组装的手势识别器)(例如,本文参考图5A至图5Q和图6A至图6C所述的任何手势识别器或手势识别分级结构)监视(904)输入。手势识别树的每个相应节点对应于(906)相应手势识别器(例如,包括多个分量手势识别器的手势识别器)或相应分量手势识别器(例如,组合器)。此外,一个或多个节点包括(例如,存储)描述输入的一个或多个参数(例如,输入的初始检测的位置、当前位置、行进的距离(基于当前位置和初始位置确定)、速度、接触强度、初始时间戳(例如,当第一次检测到输入时)、当前时间戳)。
使用手势识别树监视输入包括(908):使用所述多个节点中的第一节点处理输入,包括确定所述一个或多个参数中的第一参数的值;将第一参数从第一节点传送到所述多个节点中的第二节点;以及使用第二节点处理输入,包括基于第一参数确定输入是否满足由第二节点定义的手势识别要求。在一些实施例中,由第二节点定义的手势识别要求是由手势识别树(例如,手势识别器)定义的一组手势识别标准中的一个手势识别标准。本文参考图5M至图5Q描述了处理输入以确定描述输入的参数的值并将这些值传送到其他节点以进一步处理输入的示例。
在一些实施例中,描述输入的所述一个或多个参数包括(910)以下各项中的一者或多者:初始检测到输入的位置、输入的当前位置、输入(例如,触摸敏感表面上的接触)行进的距离、输入的速度(例如,瞬时速度,无论是直接检测到的还是从位置和时间信息导出的)、(例如,触摸输入的)接触强度、与第一次检测到所述输入的时间对应的初始时间戳以及当前时间戳。例如,图5M至图5Q示出了包括当前时间戳、当前速度、初始位置和当前位置的所传送的参数的示例。
在一些实施例中,第一参数是(912)输入的位置,并且由第二节点定义的手势识别要求要求输入的初始位置和输入的当前位置之间的距离满足阈值距离。在一些实施例中,当初始位置和当前位置之间的距离超过阈值距离时,满足阈值距离(例如,输入必须移动至少最小距离以便满足由第二节点定义的手势识别要求,并且以便识别与第二节点相关联的手势)。在一些实施例中,当初始位置和当前位置之间的距离在阈值距离内时,满足阈值距离(例如,输入不得移动超过最大距离,以便满足由第二节点定义的手势识别要求,并且以便识别与第二节点相关联的手势)。在一些实施例中,使用第一节点处理输入包括使用第一节点确定输入的当前位置。在一些实施例中,使用第二节点处理输入包括使用第二节点确定输入的初始位置(例如,由第二节点存储)与从第一节点传送的输入的当前位置之间的距离是否满足阈值距离。
在一些实施例中,第一参数是(914)对应于检测到输入的相应时间点的时间戳,并且由第二节点定义的手势识别要求要求与第一次检测到输入的第一时间点对应的初始时间戳与与检测到输入的第二时间点对应的当前时间戳之间的时间量满足阈值时间量。在一些实施例中,当初始时间戳与当前时间戳之间的时间量超过阈值时间量时,满足阈值时间量(例如,必须连续检测到输入(例如,对于触摸输入,保持在触敏表面上)持续至少最短时间量,以便满足由第二节点定义的手势识别要求,并且以便识别与第二节点相关联的手势)。在一些实施例中,当初始时间戳与当前时间戳之间的时间量在阈值时间量内时,满足阈值时间量(例如,不得连续检测到输入(例如,保持在触敏表面上)持续超过最长时间量,以便满足由第二节点定义的手势识别要求,并且以便识别与第二节点相关联的手势)。在一些实施例中,使用第一节点处理输入包括使用第一节点确定与检测到输入的第二时间点对应的当前时间戳。在一些实施例中,使用第二节点处理输入包括使用第二节点确定(例如,由第二节点存储的)输入的初始时间戳与从第一节点传送的输入的当前时间戳之间的时间量是否满足阈值时间量。
在一些实施例中,设备使用手势识别树中的所述多个节点中的一个或多个节点处理(916)输入以确定所述一个或多个参数的值,而不考虑手势是否已被手势识别树识别(例如,如本文参考图5N所述,其示出了在已经识别捏合手势之前捏合手势识别器530的状态和值)。在一些实施例中,在通过手势识别树识别手势之前确定所述一个或多个参数的值。例如,即使当手势识别器树的状态(例如,基于手势识别树中的节点的相应状态确定的总体状态,如以上参考方法700所述)是除手势识别状态(例如,预定义的“可能”状态,其指示要由手势识别器识别的特定手势是可能的)之外的状态时,也确定这些值。在处理输入时确定描述输入的参数的值,而不考虑手势是否已被识别,这减少了处理输入的延迟,并且帮助设备更快地识别手势。提高设备的响应性增强了设备的可操作性并使得用户-设备界面更高效(例如,通过帮助用户更快地实现预期结果,并且通过减少操作设备/与设备进行交互时的用户错误)。
在一些实施例中,响应于检测到输入,设备在手势识别树处接收(918)描述输入的第一信息,其中第一参数的值根据第一信息确定,并且其中确定输入是否满足由第二节点定义的手势识别要求包括将第一参数的值与根据在接收第一信息之前在手势识别树处接收的第二信息确定的先前值进行比较(例如,如这里参考图5M至图5Q所述,捏合手势识别器530将相应输入的当前位置与初始位置进行比较,以确定输入是否满足捏合手势要求)。通过将描述输入的参数的当前值与参数的先前(例如,初始)值进行比较来确定输入是否满足特定手势识别要求提供了一种随时间监视输入的有效方式,这减少了处理输入时设备上的计算负荷。这提高了设备响应性并减少了延迟,从而增强了设备的可操作性,并且使用户-设备界面更加有效(例如,通过帮助用户实现预期结果,并且通过减少操作设备/与设备进行交互时的用户错误)。
应当理解,对图9A至图9B中的操作进行描述的特定次序仅仅是示例性的,并非旨在表明所述顺序是可以执行这些操作的唯一次序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文结合本文所述的其他方法(例如,方法700和800)所述的其他过程的细节同样以类似的方式适用于上文相对于图9A至图9B所述的方法900。例如,上面参考方法900描述的输入、状态、值、用户界面、分量手势识别器、手势识别器、视图和视图分级结构任选地具有本文参考本文描述的其他方法(例如,方法700和800)描述的输入、状态、值、用户界面、分量手势识别器、手势识别器、视图和视图分级结构的特性的一个或多个特性。为了简明起见,此处不再重复这些细节。
上文参考图7A至图7E、图8A至图8C以及图9A至图9B描述的操作任选地由图1A至图1B所描绘的部件来实现。例如,检测操作702、806、902、监视操作704、904、识别操作708和处理操作806任选地由事件分类器170、事件识别器180和事件处理程序190实施。事件分类器170中的事件监视器171检测触敏显示器112上的接触,并且事件分配器模块174将事件信息递送到应用程序136-1。应用程序136-1的相应事件识别器180和一个或多个分量事件识别器181将事件信息与相应事件定义184进行比较,并且确定触敏表面上第一位置处的第一接触是否(或该设备的旋转是否)对应于预定义的事件或子事件,诸如对用户界面上的对象的选择、或该设备从一个取向到另一个取向的旋转。当检测到相应的预定义的事件或子事件时,事件识别器180激活与对该事件或子事件的检测相关联的事件处理程序190。事件处理程序190任选地使用或调用数据更新器176或对象更新器177来更新应用程序内部状态192。在一些实施例中,事件处理程序190访问相应GUI更新器178来更新应用程序所显示的内容。类似地,本领域的技术人员会清楚地知道基于在图1A-图1B中所描绘的部件可如何实现其他过程。
出于解释的目的,前面的描述是通过参考具体实施例来描述的。然而,上面的例示性论述并非旨在是穷尽的或将本发明限制为所公开的精确形式。根据以上教导内容,很多修改形式和变型形式都是可能的。选择和描述实施例是为了最佳地阐明本发明的原理及其实际应用,以便由此使得本领域的其他技术人员能够最佳地使用具有适合于所构想的特定用途的各种修改的本发明以及各种所描述的实施例。
Claims (57)
1.一种方法,包括:
在具有输入设备的电子设备处:
经由所述输入设备检测输入;
响应于检测到所述输入,使用手势识别器监视所述输入,其中所述手势识别器包括多个分量手势识别器,所述多个分量手势识别器定义用于识别手势的要求,其中来自所述多个分量手势识别器的第一分量手势识别器定义用于识别所述手势的第一要求,并且来自所述多个分量手势识别器的第二分量手势识别器定义用于识别所述手势的第二要求;以及
根据确定所述输入满足包括所述第一分量手势识别器的所述第一要求和所述第二分量手势识别器的所述第二要求的第一手势识别标准,使用所述手势识别器识别第一手势。
2.根据权利要求1所述的方法,其中:
所述第一分量手势识别器具有多个可用状态中的当前状态;以及
所述第二分量手势识别器具有所述多个可用状态中的当前状态。
3.根据权利要求2所述的方法,包括基于所述第一分量手势识别器的所述当前状态和所述第二分量手势识别器的所述当前状态确定所述手势识别器的当前状态。
4.根据权利要求2所述的方法,其中使用所述手势识别器监视所述输入包括:
在所述手势识别器处接收描述在第一时间点的所述输入的第一信息;
使用所述第一分量手势识别器处理所述第一信息,以确定针对所述第一时间点的所述多个可用状态中的所述第一分量手势识别器的当前状态;
使用所述第二分量手势识别器处理所述第一信息,以确定针对所述第一时间点的所述多个可用状态中的所述第二分量手势识别器的当前状态;
在所述手势识别器处接收描述在晚于所述第一时间点的第二时间点的所述输入的变化的第二信息;
使用所述第一分量手势识别器处理所述第二信息,以确定针对所述第二时间点的所述多个可用状态中的所述第一分量手势识别器的当前状态;以及
使用所述第二分量手势识别器处理所述第二信息,以确定针对所述第二时间点的所述多个可用状态中的所述第二分量手势识别器的当前状态。
5.根据权利要求1至4中任一项所述的方法,其中所述手势识别器中的一个或多个分量手势识别器包括描述所述输入的一个或多个参数;并且使用所述手势识别器监视所述输入包括使用所述手势识别器中的所述一个或多个分量手势识别器确定所述一个或多个参数的值。
6.根据权利要求1至5中任一项所述的方法,其中所述手势识别器是具有多个节点的手势识别树,其中所述手势识别树的每个节点包括相应的分量手势识别器,并且其中使用所述手势识别器监视所述输入包括:
将描述在相应时间点的所述输入的信息从所述手势识别树中具有子节点的相应节点处的分量手势识别器传送到所述手势识别树中的所述子节点处的分量手势识别器;以及
基于描述在所述相应时间点的所述输入的所述信息,并且根据确定相应节点具有一个或多个子节点,基于在所述一个或多个子节点处的相应分量手势识别器的相应状态来确定在所述手势识别树中的相应节点处的分量手势识别器的状态,所述相应状态是基于描述在所述相应时间点的所述输入的所述信息确定的。
7.根据权利要求6所述的方法,其中使用所述手势识别器监视所述输入还包括:
将所述手势识别树中的子节点处的所述分量手势识别器的所确定的状态传送到所述手势识别树中的所述子节点的父节点处的分量手势识别器;
其中确定所述输入是否满足用于识别所述第一手势的所述第一手势识别标准包括基于所述手势识别树中的所述分量手势识别器的所确定的状态确定所述手势识别树的状态。
8.根据权利要求6或7所述的方法,其中使用所述手势识别器监视所述输入包括:
基于描述在所述相应时间点的所述输入的信息确定所述手势识别树中的相应节点处的一个或多个分量手势识别器的值;
其中根据确定所述相应节点的子节点处的分量手势识别器具有确定的值,确定相应节点处的相应分量手势识别器的状态进一步基于所述子节点处的所述分量手势识别器的确定的值。
9.根据权利要求1至8中任一项所述的方法,其中所述手势识别器中的所述多个分量手势识别器选自多个可用分量手势识别器,所述多个可用分量手势识别器包括:
组合器,所述组合器组合来自两个或更多个分量手势识别器的信息并且基于使用所述组合器组合的所述分量手势识别器之间的关系定义用于识别手势的要求;以及
输入参数识别器,所述输入参数识别器确定描述所述输入的参数的值和/或定义描述所述输入的参数的阈值要求。
10.根据权利要求1至9中任一项所述的方法,其中所述手势识别器与应用程序相关联,并且所述手势识别器中的所述多个分量手势识别器是由独立于应用程序的模块提供的多个可用分量手势识别器中的相应分量手势识别器的实例。
11.根据权利要求1至10中任一项所述的方法,其中:
所述手势识别器包括第三分量手势识别器,所述第三分量手势识别器基于所述第一分量手势识别器和所述第二分量手势识别器之间的关系定义用于识别手势的第三要求;
使用所述手势识别器监视所述输入包括使用所述第三分量手势识别器监视所述第一分量手势识别器的状态和所述第二分量手势识别器的状态,以确定所述第一分量手势识别器和所述第二分量手势识别器是否满足所述第三要求;以及
所述第一手势识别标准包括基于所述第一分量手势识别器和所述第二分量手势识别器之间的预定义关系的所述第三要求。
12.根据权利要求11所述的方法,其中所述第三分量手势识别器是排他性组合器,并且所述第三要求指定所述第一分量手势识别器必须失败以便使所述第二分量手势识别器成功。
13.根据权利要求11所述的方法,其中所述第三分量手势识别器是同时组合器,并且所述第三要求要求在相应的时间点所述第一分量手势识别器和所述第二分量手势识别器中的至少一个分量手势识别器的成功,以便使所述第三分量手势识别器成功。
14.根据权利要求11所述的方法,其中所述第三分量手势识别器是顺序组合器,并且为了使所述第三分量手势识别器成功,所述第三要求要求所述第一分量手势识别器的成功,并且在所述第一分量手势识别器成功之后,要求所述第二分量手势识别器的成功。
15.根据权利要求1至14中任一项所述的方法,其中所述第一分量手势识别器的所述第一要求要求描述所述输入的参数的值满足指定的阈值。
16.根据权利要求1至10中任一项所述的方法,其中所述手势识别器是轻击手势识别器,其中:
所述第一分量手势识别器是距离分量手势识别器,所述距离分量手势识别器存储与所述输入被第一次检测到时的时间点对应的所述输入的初始位置,并且接收在相应时间点的所述输入的当前位置,其中由所述第一分量手势识别器定义的所述第一要求要求所述输入的所述初始位置和所述输入的所述当前位置之间的距离在阈值距离内;以及
所述第二分量手势识别器是持续时间分量手势识别器,所述持续时间分量手势识别器存储与所述输入被第一次检测到时的所述时间点对应的初始时间戳,并且接收与所述相应时间点对应的当前时间戳,其中由所述第二分量手势识别器定义的所述第二要求要求所述初始时间戳与所述当前时间戳之间的时间量在阈值时间量内;
其中所述轻击手势识别器还包括:
位置分量手势识别器,所述位置分量手势识别器确定所述输入在所述相应时间点具有当前位置;
第一选通组合器,所述第一选通组合器要求所述第二分量手势识别器的成功和所述位置分量手势识别器的成功以便成功;和
第二选通组合器,所述第二选通组合器要求所述第一选通组合器的成功以及所述第一分量手势识别器的成功以便成功。
17.一种电子设备,包括:
输入设备;
一个或多个处理器;和
存储器,所述存储器存储一个或多个程序,其中所述一个或多个程序被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于进行以下操作的指令:
经由所述输入设备检测输入;
响应于检测到所述输入,使用手势识别器监视所述输入,其中所述手势识别器包括多个分量手势识别器,所述多个分量手势识别器定义用于识别手势的要求,其中来自所述多个分量手势识别器的第一分量手势识别器定义用于识别所述手势的第一要求,并且来自所述多个分量手势识别器的第二分量手势识别器定义用于识别所述手势的第二要求;以及
根据确定所述输入满足包括所述第一分量手势识别器的所述第一要求和所述第二分量手势识别器的所述第二要求的第一手势识别标准,使用所述手势识别器识别第一手势。
18.一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由具有输入设备的电子设备执行时使得所述电子设备:
经由所述输入设备检测输入;
响应于检测到所述输入,使用手势识别器监视所述输入,其中所述手势识别器包括多个分量手势识别器,所述多个分量手势识别器定义用于识别手势的要求,其中来自所述多个分量手势识别器的第一分量手势识别器定义用于识别所述手势的第一要求,并且来自所述多个分量手势识别器的第二分量手势识别器定义用于识别所述手势的第二要求;以及
根据确定所述输入满足包括所述第一分量手势识别器的所述第一要求和所述第二分量手势识别器的所述第二要求的第一手势识别标准,使用所述手势识别器识别第一手势。
19.一种电子设备,包括:
输入设备;
用于经由所述输入设备检测输入的装置;
响应于检测到所述输入而启用的用于使用手势识别器监视所述输入的装置,其中所述手势识别器包括多个分量手势识别器,所述多个分量手势识别器定义用于识别手势的要求,其中来自所述多个分量手势识别器的第一分量手势识别器定义用于识别所述手势的第一要求,并且来自所述多个分量手势识别器的第二分量手势识别器定义用于识别所述手势的第二要求;以及
根据确定所述输入满足包括所述第一分量手势识别器的所述第一要求和所述第二分量手势识别器的所述第二要求的第一手势识别标准而启用的用于使用所述手势识别器识别第一手势的装置。
20.一种信息处理装置,所述信息处理装置用于在具有输入设备的电子设备中使用,包括:
用于经由所述输入设备检测输入的装置;
响应于检测到所述输入而启用的用于使用手势识别器监视所述输入的装置,其中所述手势识别器包括多个分量手势识别器,所述多个分量手势识别器定义用于识别手势的要求,其中来自所述多个分量手势识别器的第一分量手势识别器定义用于识别所述手势的第一要求,并且来自所述多个分量手势识别器的第二分量手势识别器定义用于识别所述手势的第二要求;以及
根据确定所述输入满足包括所述第一分量手势识别器的所述第一要求和所述第二分量手势识别器的所述第二要求的第一手势识别标准而启用的用于使用所述手势识别器识别第一手势的装置。
21.一种电子设备,包括:
输入设备;
一个或多个处理器;和
存储器,所述存储器存储一个或多个程序,其中所述一个或多个程序被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行根据权利要求1至16中的任一项所述的方法的指令。
22.一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由具有显示器、触敏表面、[用于检测与所述触敏表面的接触的强度的一个或多个传感器]和[一个或多个触觉输出发生器]的电子设备执行时,使得所述设备执行根据权利要求1至16中的任一项所述的方法。
23.一种在电子设备上的图形用户界面,所述电子设备具有输入设备、存储器、以及执行存储在所述存储器中的一个或多个程序的一个或多个处理器,所述图形用户界面包括根据权利要求1至16中的任一项所述的方法所显示的用户界面。
24.一种电子设备,包括:
输入设备;和
用于执行根据权利要求1至16中的任一项所述的方法的装置。
25.一种信息处理装置,所述信息处理装置用于在具有输入设备的电子设备中使用,包括:
用于执行根据权利要求1至16中的任一项所述的方法的装置。
26.一种方法,包括:
在具有显示器和输入设备的电子设备处:
在所述显示器上显示应用程序的用户界面,其中所述用户界面包括以视图分级结构布置的多个视图,其中所述视图分级结构定义第一视图和第二视图之间的第一关系,并且其中所述第一视图包括第一手势识别器,并且所述第二视图包括第二手势识别器;
经由所述输入设备检测在对应于所显示的用户界面的第一位置处的输入;以及
使用包括所述第一手势识别器和所述第二手势识别器的手势识别分级结构来处理所述输入,其中基于所述视图分级结构中的所述第一视图和所述第二视图之间的所述第一关系来确定所述第一手势识别器和所述第二手势识别器之间的第二关系。
27.根据权利要求26所述的方法,其中所述视图分级结构中除了所述第一视图和所述第二视图之外的一个或多个视图包括相应手势识别器,并且其中所述手势识别分级结构包括所述一个或多个其他视图的相应手势识别器。
28.根据权利要求26所述的方法,包括识别所述视图分级结构中对应于所述第一位置的视图的子集,其中所识别的子集包括所述第一视图和所述第二视图,并且其中所述手势识别分级结构包括所识别的视图的子集的相应手势识别器。
29.根据权利要求28所述的方法,其中所述视图分级结构包括不对应于所述第一位置的一个或多个视图,其中所述一个或多个视图包括一个或多个手势识别器,并且其中所述手势识别分级结构不包括不对应于所述第一位置的所述一个或多个视图的所述一个或多个手势识别器。
30.根据权利要求26至29中任一项所述的方法,其中所述手势识别分级结构包括分量手势识别器,所述分量手势识别器通过要求所述第一手势识别器失败以便使所述第二手势识别器成功来定义所述第一手势识别器和所述第二手势识别器之间的所述第二关系。
31.根据权利要求26至29中任一项所述的方法,其中所述手势识别分级结构包括分量手势识别器,所述分量手势识别器定义所述手势识别分级结构中的所述第一手势识别器和所述第二手势识别器之间的所述第二关系,并且其中使用所述手势识别分级结构处理所述输入包括:
在手势识别分级结构处接收描述所述输入的信息;
将描述所述输入的信息传送到所述分量手势识别器;
基于所述第一手势识别器和所述第二手势识别器之间的所述第二关系将描述所述输入的所述信息从所述分量手势识别器传送到所述第一手势识别器和所述第二手势识别器中的至少一者;
根据确定描述所述输入的所述信息被传送到所述第一手势识别器,使用所述第一手势识别器处理描述所述输入的所述信息;以及
根据确定描述所述输入的所述信息被传送到所述第二手势识别器,使用所述第二手势识别器处理描述所述输入的所述信息。
32.根据权利要求31所述的方法,其中使用所述第一手势识别器处理描述所述输入的所述信息确定所述第一手势识别器的当前状态,使用所述第二手势识别器处理描述所述输入的所述信息确定所述第二手势识别器的当前状态,并且所述方法包括:
将所述第一手势识别器的所述当前状态从所述第一手势识别器传送到所述分量手势识别器;
将所述第二手势识别器的所述当前状态从所述第二手势识别器传送到所述分量手势识别器;
使用所述分量手势识别器处理描述所述输入的所述信息、所述第一手势识别器的所述当前状态和所述第二手势识别器的所述当前状态,以确定所述分量手势识别器的当前状态。
33.根据权利要求26至29中任一项所述的方法,其中:
所述第一视图包括第三手势识别器;
所述手势识别分级结构包括所述第三手势识别器和分量手势识别器,所述分量手势识别器定义所述手势识别分级结构中的所述第一手势识别器和所述第三手势识别器之间的第三关系;以及
所述方法包括确定所述第一视图的手势识别状态,包括:
将描述所述输入的所述信息传送到所述分量手势识别器、所述第一手势识别器和所述第三手势识别器;
使用所述第一手势识别器处理描述所述输入的所述信息以确定所述第一手势识别器的当前状态,并且将所述第一手势识别器的所述当前状态从所述第一手势识别器传送到所述分量手势识别器;
使用所述第三手势识别器处理描述所述输入的所述信息以确定所述第三手势识别器的当前状态,并且将所述第三手势识别器的所述当前状态从所述第三手势识别器传送到所述分量手势识别器;
使用所述分量手势识别器处理描述所述输入的所述信息、所述第一手势识别器的所述当前状态和所述第三手势识别器的所述当前状态,以确定所述第一视图的所述手势识别状态。
34.一种电子设备,包括:
显示器;
输入设备;
一个或多个处理器;和
存储器,所述存储器存储一个或多个程序,其中所述一个或多个程序被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于进行以下操作的指令:
在所述显示器上显示应用程序的用户界面,其中所述用户界面包括以视图分级结构布置的多个视图,其中所述视图分级结构定义第一视图和第二视图之间的第一关系,并且其中所述第一视图包括第一手势识别器,并且所述第二视图包括第二手势识别器;
经由所述输入设备检测在对应于所显示的用户界面的第一位置处的输入;以及
使用包括所述第一手势识别器和所述第二手势识别器的手势识别分级结构来处理所述输入,其中基于所述视图分级结构中的所述第一视图和所述第二视图之间的所述第一关系来确定所述第一手势识别器和所述第二手势识别器之间的第二关系。
35.一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由具有显示器和输入设备的电子设备执行时,使得所述设备:
在所述显示器上显示应用程序的用户界面,其中所述用户界面包括以视图分级结构布置的多个视图,其中所述视图分级结构定义第一视图和第二视图之间的第一关系,并且其中所述第一视图包括第一手势识别器,并且所述第二视图包括第二手势识别器;
经由所述输入设备检测在对应于所显示的用户界面的第一位置处的输入;以及
使用包括所述第一手势识别器和所述第二手势识别器的手势识别分级结构来处理所述输入,其中基于所述视图分级结构中的所述第一视图和所述第二视图之间的所述第一关系来确定所述第一手势识别器和所述第二手势识别器之间的第二关系。
36.一种电子设备,包括:
显示器;
输入设备;
用于在所述显示器上显示应用程序的用户界面的装置,其中所述用户界面包括以视图分级结构布置的多个视图,其中所述视图分级结构定义第一视图和第二视图之间的第一关系,并且其中所述第一视图包括第一手势识别器,并且所述第二视图包括第二手势识别器;
用于经由所述输入设备检测在对应于所显示的用户界面的第一位置处的输入的装置;以及
用于使用包括所述第一手势识别器和所述第二手势识别器的手势识别分级结构来处理所述输入的装置,其中基于所述视图分级结构中的所述第一视图和所述第二视图之间的所述第一关系来确定所述第一手势识别器和所述第二手势识别器之间的第二关系。
37.一种信息处理装置,所述信息处理装置用于在具有显示器和输入设备的电子设备中使用,包括:
用于在所述显示器上显示应用程序的用户界面的装置,其中所述用户界面包括以视图分级结构布置的多个视图,其中所述视图分级结构定义第一视图和第二视图之间的第一关系,并且其中所述第一视图包括第一手势识别器,并且所述第二视图包括第二手势识别器;
用于经由所述输入设备检测在对应于所显示的用户界面的第一位置处的输入的装置;以及
用于使用包括所述第一手势识别器和所述第二手势识别器的手势识别分级结构来处理所述输入的装置,其中基于所述视图分级结构中的所述第一视图和所述第二视图之间的所述第一关系来确定所述第一手势识别器和所述第二手势识别器之间的第二关系。
38.一种电子设备,包括:
显示器;
输入设备;
一个或多个处理器;和
存储器,所述存储器存储一个或多个程序,其中所述一个或多个程序被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行根据权利要求26至33中的任一项所述的方法的指令。
39.一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由具有显示器和输入设备的电子设备执行时,使得所述设备执行根据权利要求26至33中的任一项所述的方法。
40.一种在电子设备上的图形用户界面,所述电子设备具有显示器、输入设备、存储器、以及执行存储在所述存储器中的一个或多个程序的一个或多个处理器,所述图形用户界面包括根据权利要求26至33中的任一项所述的方法所显示的用户界面。
41.一种电子设备,包括:
显示器;
输入设备;和
用于执行根据权利要求26至33中的任一项所述的方法的装置。
42.一种信息处理装置,所述信息处理装置用于在具有显示器和输入设备的电子设备中使用,包括:
用于执行根据权利要求26至33中的任一项所述的方法的装置。
43.一种方法,包括:
在具有输入设备的电子设备处:
经由所述输入设备检测输入;以及
响应于检测到所述输入,使用具有多个节点的手势识别树监视所述输入,其中所述手势识别树的每个相应节点对应于相应手势识别器或相应分量手势识别器,其中一个或多个节点包括描述所述输入的一个或多个参数,并且其中使用所述手势识别树监视所述输入包括:
使用所述多个节点中的第一节点处理所述输入,包括确定所述一个或多个参数中的第一参数的值;
将所述第一参数从所述第一节点传送到所述多个节点中的第二节点;以及
使用所述第二节点处理所述输入,包括基于所述第一参数确定所述输入是否满足由所述第二节点定义的手势识别要求。
44.根据权利要求43所述的方法,其中描述所述输入的所述一个或多个参数包括以下各项中的一者或多者:初始检测到所述输入的位置、所述输入的当前位置、所述输入行进的距离、所述输入的速度、接触强度、与第一次检测到所述输入的时间对应的初始时间戳以及当前时间戳。
45.根据权利要求43所述的方法,其中:
所述第一参数是所述输入的位置;
由所述第二节点定义的所述手势识别要求要求所述输入的初始位置和所述输入的当前位置之间的距离满足阈值距离;
使用所述第一节点处理所述输入包括使用所述第一节点确定所述输入的所述当前位置;以及
使用所述第二节点处理所述输入包括使用所述第二节点确定所述输入的所述初始位置与从所述第一节点传送的所述输入的所述当前位置之间的所述距离是否满足所述阈值距离。
46.根据权利要求43所述的方法,其中:
所述第一参数是与检测到所述输入的相应时间点对应的时间戳;
由所述第二节点定义的所述手势识别要求要求与第一次检测到所述输入的第一时间点对应的初始时间戳与与检测到所述输入的第二时间点对应的当前时间戳之间的时间量满足阈值时间量;
使用所述第一节点处理所述输入包括使用所述第一节点确定与检测到所述输入的所述第二时间点对应的所述当前时间戳;以及
使用所述第二节点处理所述输入包括使用所述第二节点确定所述输入的所述初始时间戳与从所述第一节点传送的所述输入的所述当前时间戳之间的所述时间量是否满足所述阈值时间量。
47.根据权利要求43至46中任一项所述的方法,包括使用所述手势识别树中的所述多个节点中的一个或多个节点处理所述输入以确定所述一个或多个参数的值,而不考虑手势是否已被所述手势识别树识别。
48.根据权利要求43至47中任一项所述的方法,包括响应于检测到所述输入,在所述手势识别树处接收描述所述输入的第一信息,其中所述第一参数的值根据所述第一信息确定,并且其中确定所述输入是否满足由所述第二节点定义的所述手势识别要求包括将所述第一参数的所述值与根据在接收所述第一信息之前在所述手势识别树处接收的第二信息确定的先前值进行比较。
49.一种电子设备,包括:
输入设备;
一个或多个处理器;和
存储器,所述存储器存储一个或多个程序,其中所述一个或多个程序被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于进行以下操作的指令:
经由所述输入设备检测输入;以及
响应于检测到所述输入,使用具有多个节点的手势识别树监视所述输入,其中所述手势识别树的每个相应节点对应于相应手势识别器或相应分量手势识别器,其中一个或多个节点包括描述所述输入的一个或多个参数,并且其中使用所述手势识别树监视所述输入包括:
使用所述多个节点中的第一节点处理所述输入,包括确定所述一个或多个参数中的第一参数的值;
将所述第一参数从所述第一节点传送到所述多个节点中的第二节点;以及
使用所述第二节点处理所述输入,包括基于所述第一参数确定所述输入是否满足由所述第二节点定义的手势识别要求。
50.一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由具有输入设备的电子设备执行时使得所述电子设备:
经由所述输入设备检测输入;以及
响应于检测到所述输入,使用具有多个节点的手势识别树监视所述输入,其中所述手势识别树的每个相应节点对应于相应手势识别器或相应分量手势识别器,其中一个或多个节点包括描述所述输入的一个或多个参数,并且其中使用所述手势识别树监视所述输入包括:
使用所述多个节点中的第一节点处理所述输入,包括确定所述一个或多个参数中的第一参数的值;
将所述第一参数从所述第一节点传送到所述多个节点中的第二节点;并且
使用所述第二节点处理所述输入,包括基于所述第一参数确定所述输入是否满足由所述第二节点定义的手势识别要求。
51.一种电子设备,包括:
输入设备;
用于经由所述输入设备检测输入的装置;以及
响应于检测到所述输入而启用的用于使用具有多个节点的手势识别树监视所述输入的装置,其中所述手势识别树的每个相应节点对应于相应手势识别器或相应分量手势识别器,其中一个或多个节点包括描述所述输入的一个或多个参数,并且其中用于使用所述手势识别树监视所述输入的所述装置包括:
用于使用所述多个节点中的第一节点处理所述输入的装置,包括用于确定所述一个或多个参数中的第一参数的值的装置;
用于将所述第一参数从所述第一节点传送到所述多个节点中的第二节点的装置;以及
用于使用所述第二节点处理所述输入的装置,包括用于基于所述第一参数确定所述输入是否满足由所述第二节点定义的手势识别要求的装置。
52.一种信息处理装置,所述信息处理装置用于在具有输入设备的电子设备中使用,包括:
用于经由所述输入设备检测输入的装置;和
响应于检测到所述输入而启用的用于使用具有多个节点的手势识别树监视所述输入的装置,其中所述手势识别树的每个相应节点对应于相应手势识别器或相应分量手势识别器,其中一个或多个节点包括描述所述输入的一个或多个参数,并且其中用于使用所述手势识别树监视所述输入的所述装置包括:
用于使用所述多个节点中的第一节点处理所述输入的装置,包括用于确定所述一个或多个参数中的第一参数的值的装置;
用于将所述第一参数从所述第一节点传送到所述多个节点中的第二节点的装置;以及
用于使用所述第二节点处理所述输入的装置,包括用于基于所述第一参数确定所述输入是否满足由所述第二节点定义的手势识别要求的装置。
53.一种电子设备,包括:
输入设备;
一个或多个处理器;和
存储器,所述存储器存储一个或多个程序,其中所述一个或多个程序被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行根据权利要求43至48中的任一项所述的方法的指令。
54.一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由具有输入设备的电子设备执行时,使得所述设备执行根据权利要求43至48中的任一项所述的方法。
55.一种在电子设备上的图形用户界面,所述电子设备具有输入设备、存储器、以及执行存储在所述存储器中的一个或多个程序的一个或多个处理器,所述图形用户界面包括根据权利要求43至48中的任一项所述的方法所显示的用户界面。
56.一种电子设备,包括:
输入设备;和
用于执行根据权利要求43至48中的任一项所述的方法的装置。
57.一种信息处理装置,所述信息处理装置用于在具有输入设备的电子设备中使用,包括:
用于执行根据权利要求43至48中的任一项所述的方法的装置。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862679970P | 2018-06-03 | 2018-06-03 | |
US62/679,970 | 2018-06-03 | ||
US16/427,203 | 2019-05-30 | ||
US16/427,203 US10877660B2 (en) | 2018-06-03 | 2019-05-30 | Devices and methods for processing inputs using gesture recognizers |
PCT/US2019/034839 WO2019236403A1 (en) | 2018-06-03 | 2019-05-31 | Devices and methods for processing inputs using gesture recognizers |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112166402A true CN112166402A (zh) | 2021-01-01 |
Family
ID=68694740
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980035070.1A Pending CN112166402A (zh) | 2018-06-03 | 2019-05-31 | 用于使用手势识别器处理输入的设备和方法 |
Country Status (4)
Country | Link |
---|---|
US (3) | US10877660B2 (zh) |
EP (1) | EP3803555A1 (zh) |
CN (1) | CN112166402A (zh) |
WO (1) | WO2019236403A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10877660B2 (en) | 2018-06-03 | 2020-12-29 | Apple Inc. | Devices and methods for processing inputs using gesture recognizers |
CN112181264A (zh) * | 2019-07-03 | 2021-01-05 | 中兴通讯股份有限公司 | 一种手势识别方法和装置 |
DE102020107752A1 (de) * | 2020-03-20 | 2021-09-23 | Daimler Ag | Verfahren und Vorrichtung zur Auswahl von auf einem Bildschirm angezeigten Eingabefeldern und/oder zur Aktivierung von auf dem Bildschirm in einem ausgewählten Eingabefeld angezeigten Eingabeinhalten durch manuelle Eingaben |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110179387A1 (en) * | 2009-03-16 | 2011-07-21 | Shaffer Joshua L | Event Recognition |
CN105339900A (zh) * | 2013-06-09 | 2016-02-17 | 苹果公司 | 代理手势识别器 |
CN107924277A (zh) * | 2015-08-10 | 2018-04-17 | 苹果公司 | 用于通过物理手势操纵用户界面的设备、方法和图形用户界面 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8285499B2 (en) * | 2009-03-16 | 2012-10-09 | Apple Inc. | Event recognition |
US8566044B2 (en) * | 2009-03-16 | 2013-10-22 | Apple Inc. | Event recognition |
US9311112B2 (en) * | 2009-03-16 | 2016-04-12 | Apple Inc. | Event recognition |
EP2577436A4 (en) * | 2010-06-01 | 2016-03-30 | Nokia Technologies Oy | METHOD, DEVICE AND SYSTEM FOR RECEIVING USER DEVICES |
US9710154B2 (en) | 2010-09-03 | 2017-07-18 | Microsoft Technology Licensing, Llc | Dynamic gesture parameters |
US20120133579A1 (en) * | 2010-11-30 | 2012-05-31 | Microsoft Corporation | Gesture recognition management |
EP3258366B1 (en) * | 2010-12-20 | 2021-12-08 | Apple Inc. | Event recognition |
US10120561B2 (en) | 2011-05-05 | 2018-11-06 | Lenovo (Singapore) Pte. Ltd. | Maximum speed criterion for a velocity gesture |
US9703477B2 (en) * | 2013-02-19 | 2017-07-11 | Facebook, Inc. | Handling overloaded gestures |
US10684740B2 (en) * | 2013-11-04 | 2020-06-16 | Facebook, Inc. | Intervention conditions |
US20170045981A1 (en) | 2015-08-10 | 2017-02-16 | Apple Inc. | Devices and Methods for Processing Touch Inputs Based on Their Intensities |
DK179979B1 (en) * | 2017-05-16 | 2019-11-27 | Apple Inc. | DEVICES, METHODS, AND GRAPHICAL USER INTERFACES FOR TOUCH INPUT PROCESSING |
EP3593235A1 (en) * | 2017-05-16 | 2020-01-15 | Apple Inc. | Devices, methods, and graphical user interfaces for touch input processing |
US10877660B2 (en) | 2018-06-03 | 2020-12-29 | Apple Inc. | Devices and methods for processing inputs using gesture recognizers |
-
2019
- 2019-05-30 US US16/427,203 patent/US10877660B2/en active Active
- 2019-05-31 EP EP19733598.7A patent/EP3803555A1/en active Pending
- 2019-05-31 CN CN201980035070.1A patent/CN112166402A/zh active Pending
- 2019-05-31 WO PCT/US2019/034839 patent/WO2019236403A1/en unknown
-
2020
- 2020-11-19 US US16/953,284 patent/US11294564B2/en active Active
-
2022
- 2022-03-22 US US17/701,529 patent/US11567658B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110179387A1 (en) * | 2009-03-16 | 2011-07-21 | Shaffer Joshua L | Event Recognition |
CN105339900A (zh) * | 2013-06-09 | 2016-02-17 | 苹果公司 | 代理手势识别器 |
CN107924277A (zh) * | 2015-08-10 | 2018-04-17 | 苹果公司 | 用于通过物理手势操纵用户界面的设备、方法和图形用户界面 |
Also Published As
Publication number | Publication date |
---|---|
US11567658B2 (en) | 2023-01-31 |
US10877660B2 (en) | 2020-12-29 |
US20220229547A1 (en) | 2022-07-21 |
WO2019236403A1 (en) | 2019-12-12 |
US11294564B2 (en) | 2022-04-05 |
EP3803555A1 (en) | 2021-04-14 |
US20210072891A1 (en) | 2021-03-11 |
US20190369864A1 (en) | 2019-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11954323B2 (en) | Devices, methods, and graphical user interfaces for initiating a payment action in a messaging session | |
AU2021204178B2 (en) | Devices and methods for interacting with an application switching user interface | |
EP3335103B1 (en) | Devices, methods, and graphical user interfaces for manipulating user interfaces with physical gestures | |
US20220179535A1 (en) | Devices, Methods, and Graphical User Interfaces for Touch Input Processing | |
US11567658B2 (en) | Devices and methods for processing inputs using gesture recognizers | |
US11966578B2 (en) | Devices and methods for integrating video with user interface navigation | |
US11893228B2 (en) | Devices and methods for interacting with an application switching user interface | |
CN111026306B (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 |