CN112119370A - 用于传送基于接近度和基于接触的输入事件的设备、方法和用户界面 - Google Patents
用于传送基于接近度和基于接触的输入事件的设备、方法和用户界面 Download PDFInfo
- Publication number
- CN112119370A CN112119370A CN201980032190.6A CN201980032190A CN112119370A CN 112119370 A CN112119370 A CN 112119370A CN 201980032190 A CN201980032190 A CN 201980032190A CN 112119370 A CN112119370 A CN 112119370A
- Authority
- CN
- China
- Prior art keywords
- event
- input
- touch
- display
- application
- 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
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/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/0416—Control or interface arrangements specially adapted for digitisers
-
- 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/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/038—Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
-
- 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/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
-
- 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/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- 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/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0485—Scrolling or panning
-
- 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
-
- 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
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/038—Indexing scheme relating to G06F3/038
- G06F2203/0381—Multimodal input, i.e. interface arrangements enabling the user to issue commands by simultaneous use of input devices of different nature, e.g. voice plus gesture on digitizer
-
- 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/04806—Zoom, i.e. interaction techniques or interactors for controlling the zooming operation
-
- 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)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- User Interface Of Digital Computer (AREA)
- Position Input By Displaying (AREA)
Abstract
一种具有显示器和与该显示器分开的输入设备的电子设备,该电子设备显示包括第一应用程序的表示和指针对象的用户界面。该设备在该输入设备处接收用户输入事件,所述该用户输入事件指向该用户界面中显示该指针对象的位置。响应于该用户输入事件,当该用户界面中显示该指针对象的该相应位置在该述第一应用程序的表示上方时,该设备向第一应用程序提供描述模拟触摸事件的信息,该信息包括描述该用户界面中的一个或多个模拟触摸的位置的信息;并且在该显示器上显示由该第一应用程序响应于描述该模拟触摸事件的该信息而确定的该第一应用程序的表示的变化。
Description
技术领域
本公开总体涉及具有输入设备的电子设备,包括但不限于具有促进并且传送基于接近度和基于接触的输入事件的触敏表面的电子设备。
背景技术
触敏表面作为计算机和其他电子计算设备的输入设备的使用在近年来显著增长。示例性触敏表面包括触控板和触摸屏显示器。此类表面广泛地用于操纵显示器上的用户界面对象。
一些触敏表面还包括检测由对象(例如,触笔)提供的输入的传感器,该对象不与触敏表面直接接触,但是非常接近触敏表面。基于接近度的输入为在显示器上操纵用户界面对象提供了额外的途径。然而,基于接触的输入和基于接近度的输入通常不能无缝地协同工作并且可能彼此干扰,并给用户带来困惑和沮丧。
发明内容
因此,需要促进基于接触和基于接近度的用户输入以及基于对适当的应用程序和此类应用程序内的视图的接触和接近度来传送输入事件的方法。此外,需要平移其他用户输入(例如,不基于与触敏表面的接触或接近度的用户输入,诸如基于鼠标或轨迹球的输入)到基于接触和基于接近度的输入事件中,使得期望此类输入事件的应用程序可与不同操作***以及不同***输入设备兼容。此类方法和界面任选地补充或替换用于处理基于接触和基于接近度的用户输入的常规方法。
通过所公开的设备减少或消除了与电子设备的事件处理相关联的上述缺陷和其他问题。在一些实施例中,该设备是台式计算机。在一些实施例中,该设备是便携式的(例如,笔记本电脑、平板电脑或手持设备)。在一些实施例中,该设备具有触控板。在一些实施例中,所述设备具有触敏显示器(也称为“触摸屏”或“触摸屏显示器”)。在一些实施例中,该设备具有图形用户界面(GUI)、一个或多个处理器、存储器和一个或多个模块、被存储在存储器中以用于执行多个功能的程序或指令集。在一些实施例中,用户主要通过触笔和/或手指接触以及触敏表面上的手势来与GUI进行交互。用于执行这些功能的可执行指令任选地被包括在被配置用于由一个或多个处理器执行的非暂态计算机可读存储介质或其他计算机程序产品中。
根据一些实施例,在具有显示器和与所述显示器分开的输入设备的电子设备处执行一种方法。所述方法包括在所述显示器上同时显示包括以下各项的用户界面:包括多个用户界面对象的第一应用程序的表示;以及指针对象。所述方法还包括,在同时显示所述第一应用程序的所述表示和所述指针对象时,在与所述显示器分开的所述输入设备处接收指向所述用户界面中显示所述指针对象的相应位置的用户输入事件。所述方法还包括:响应于检测到所述用户输入事件,根据确定所述用户界面中显示所述指针对象的所述相应位置在所述第一应用程序的所述表示上方:向所述第一应用程序提供描述模拟触摸事件的信息,所述信息包括描述所述用户界面中的一个或多个模拟触摸的位置的信息;以及在所述显示器上显示由所述第一应用程序响应于描述所述模拟触摸事件的所述信息而确定的所述第一应用程序的所述表示的变化。
根据一些实施例,在具有显示器和与所述显示器分开的一个或多个输入设备的电子设备处执行一种方法。所述方法包括在所述显示器上显示应用程序的用户界面。所述方法还包括在与所述显示器分开的所述一个或多个输入设备处接收用户输入事件。所述方法还包括根据所述用户输入事件生成多个独立事件流。所述方法还包括合并来自所述多个独立事件流的信息以生成合并的用户输入事件流;向所述应用程序提供描述所述合并的用户输入事件流的信息;以及在显示器上显示所述应用程序的响应,所述响应至少部分地基于描述所述合并的用户输入事件流的所述信息。
根据一些实施例,在具有显示器和输入设备的电子设备处执行一种方法。所述方法包括在所述显示器上显示包括多个用户界面对象的应用程序的用户界面。所述方法还包括在显示所述应用程序的所述用户界面时,在所述输入设备处接收用户输入。所述方法还包括响应于所述用户输入,向所述应用程序提供具有带有第一阶段值的阶段字段的第一输入事件,所述第一输入事件对应于接近但不接触触敏表面的输入。所述方法还包括,在提供所述第一输入事件之后,向所述应用程序提供具有带有第二阶段值的阶段字段的第二输入事件,所述第二输入事件对应于所述用户输入接触所述触敏表面。所述方法还包括在所述显示器上显示对所述应用程序的所述用户界面的更新,所述更新至少部分地基于所述第一输入事件和所述第二输入事件。
根据一些实施例,电子设备包括显示器、输入设备(例如,任选的触敏表面)、用于检测所述触敏表面上方的输入对象的接近度的任选的一个或多个传感器、用于检测与所述触敏表面的接触强度的任选的一个或多个传感器、一个或多个处理器、存储器以及一个或多个程序;一个或多个程序被存储在存储器中并且被配置为由一个或多个处理器执行,并且一个或多个程序包括用于执行或导致执行任何本文所述的方法的操作的指令。根据一些实施例,计算机可读存储介质在其中存储有指令,所述指令当由具有显示器、输入设备(例如,任选的触敏表面)、用于检测所述触敏表面上方的输入对象的接近度的任选的一个或多个传感器以及用于检测接触强度的任选的一个或多个传感器的电子设备执行时,使得所述设备执行本文所述方法中的任一种方法的操作或使得本文所述方法中的任一种方法的操作被执行。根据一些实施例,电子设备包括:显示器、输入设备(例如,任选的触敏表面)、用于检测所述触敏表面上方的输入对象的接近度的任选的一个或多个传感器、用于检测接触强度的任选的一个或多个传感器,以及用于执行本文所述方法中的任一种方法的操作或使得本文所述方法中的任一种方法的操作被执行的装置。根据一些实施例,用于具有显示器和输入设备(例如,任选的触敏表面)的电子设备中的信息处理装置,任选地包括用于检测所述触敏表面上方的输入对象的接近度的一个或多个传感器、任选地包括用于检测接触强度的一个或多个传感器,并且包括用于执行本文所述方法中的任一种方法的操作或使得本文所述方法中的任一种方法的操作被执行的装置。
因此,向具有显示器、输入设备(例如,任选的触敏表面)、用于检测所述触敏表面上方的输入对象的接近度的任选的传感器以及用于检测接触强度的任选的传感器提供了促进基于接近度和基于接触的用户输入并基于此类用户输入传送输入事件的改进的方法,从而提高此类设备的有效性和效率,并提高用户对此类设备的满意度。此类方法可补充或替换用于处理基于接近度和基于接触的输入的常规方法。
附图说明
为了更好地理解各种所述实施例,应结合以下附图参考下面的具体实施方式,其中类似的附图标号在所有附图中指示对应的部分。
图1A是示出根据一些实施例的具有触敏显示器的便携式多功能设备的框图。
图1B是示出根据一些实施例的用于事件处理的示例性部件的框图。
图2示出了根据一些实施例的具有触摸屏的便携式多功能设备。
图3是根据一些实施例的具有显示器和触敏表面的示例性多功能设备的框图。
图4是根据一些实施例的示例性电子触笔的框图。
图5A至图5B示出了根据一些实施例的触笔相对于触敏表面的位置状态。
图6A示出了根据一些实施例的便携式多功能设备上的应用程序菜单的示例性用户界面。
图6B示出了根据一些实施例的用于具有与显示器分开的触敏表面的多功能设备的示例性用户界面。
图7A至图7Q示出了根据一些实施例的用于通过基于接近度(例如,基于悬停)和基于接触的输入(例如,移动光标和选择文本)与用户界面对象进行交互的示例性用户界面。
图8是根据一些实施例的具有显示器和独立输入设备的示例性设备的输入/输出处理栈的图示。
图9A至图9B示出了根据一些实施例的用于向应用程序提供触摸输入事件(包括基于悬停和基于接触的输入事件)的示例性数据结构。
图10是根据一些实施例的合并来自独立事件流的输入事件(例如,解复用)然后向应用程序提供合并的用户输入事件的输入/输出处理栈的图示。
图11A至图11D示出了根据一些实施例的用于向应用程序提供模拟触摸事件的方法的流程图。
图12A至图12C示出了根据一些实施例的合并来自独立事件流的输入事件并向应用程序提供合并的输入事件的方法的流程图。
图13A至图13E示出了根据一些实施例的向应用程序提供基于悬停的输入事件的方法的流程图。
具体实施方式
便携式多功能设备和膝上型计算机通常使用完全不同的输入设备。例如,便携式多功能设备(例如,智能电话)可包括触摸屏,而膝上型计算机可包括或耦接到与显示器分开的物理键盘、鼠标和/或触敏表面。结果是设备的操作***向设备的应用程序提供的输入事件在很大程度上取决于设备所包括的输入设备的类型。为此,通常为特定类型的设备(例如,具有触摸屏的便携式多功能设备)开发软件应用程序,并且不容易将其移植到不同的操作***上。相反,应用程序开发人员必须为在不同类型的设备上运行的不同操作***重新编写软件。
本文所述的一些实施例允许为第一操作***框架(例如,触摸屏框架)开发的应用程序解释来自第二操作***框架(例如,其中在与显示器分开的输入设备处接收用户输入的框架)的输入事件。为此,将来自与显示器分开的设备的输入事件转换为应用程序能够解释的模拟触摸事件。在一些实施例中,该转换发生在第二操作***框架本地的第二应用程序处。第二应用程序是充当第一应用程序的主机的输入事件转换器。这样,第二应用程序充当输入/输出处理栈中的添加层。
通过使用不同手势,具有触敏显示器(例如,触摸屏)的设备能够解释广泛范围的用户输入。例如,触摸屏上的单指或双指轻扫可被解释为滚动手势,而双指捏合可被解释为缩放手势。包括与显示器分开的输入设备的设备(例如,***设备)同样能够消除广泛范围的用户输入的歧义,但这样做会带来附加挑战。例如,虽然手势的消歧通常限于解释来自单个输入设备(例如,触摸屏)的用户输入,但是来自一个***输入设备(例如,与显示器分开的鼠标、键盘或触摸板)的用户输入通常由来自不同***输入设备的用户输入进行修改。例如,鼠标的滚轮的致动在独立键盘上的“control”按钮被按下时可导致缩放,并且在键盘上的“control”按钮没有被按下时可导致滚动。
来自一个输入设备的用户输入可被来自不同用户输入设备的用户输入进行修改的事实提出了知道输入事件何时相关并且应一起解释的问题。由于触摸屏设备很少面临这一挑战,所以对于已经为触摸屏开发但仍然在具有与显示器分开的一个或多个输入设备的设备上执行的应用程序,此问题尤为严重(例如,如上所述)。本文所述的一些实施例通过在向应用程序提供输入事件之前合并(例如,解复用)来自独立事件流的输入事件为单个合并的输入事件来解决该问题。因此,在一些实施例中,确定哪些输入事件相关的过程从软件应用程序(其可能已由第三方开发)移动(例如,委托)到主机或操作***,该主机或操作***更适于确定哪些输入事件相关。以这种方式合并输入事件的结果是第三方应用程序以更高的一致性来解释输入事件。对于为触摸屏框架开发的应用程序,这些实施例通过解决触摸屏应用程序(即,被配置为从触摸屏接收输入的应用程序)的开发人员很少在其本地框架中必须考虑的问题来增加跨平台兼容性。
一些触敏表面能够检测触敏表面上方的输入对象(例如,手指或触笔)的接近度。这些所谓的“悬停”输入可用于操纵用户界面对象。然而,尽管悬停在触敏表面上方的事实可以被视为与后续或先前接触相同手势的一部分,但悬停输入通常被视为与其他用户输入(例如,基于接触的用户输入)分开。将基于接近度的输入事件和基于接触的输入事件视为来自不同的用户输入导致用户界面对于用户来说是麻烦且非直观的。
一些实施例通过以具有与用于表示基于接触的触摸事件的数据结构相同数据结构的归一化触摸输入事件格式提供悬停输入事件来解决该问题。这些触摸输入事件包括呈现值的阶段字段,该值描述了输入事件是悬停事件还是基于接触的事件等(该阶段值还可指示事件是先前检测到的事件的变化还是结束)。在一些实施例中,与基于接触的输入事件相关的悬停输入事件被分配相同的输入标识符,因此当这些事件被提供给手势识别器时,它们可被解释为相同手势的一部分。为了帮助跨平台兼容性,如上所述,一些实施例还基于来自不检测触敏表面上方的接触的接近度的输入设备的用户输入来提供模拟悬停事件。例如,进入窗口的鼠标指针可被解释为该窗口上方的悬停事件,而当指针在窗口上方时的鼠标左键点击可被解释为该窗口中的接触。
如下所述,图1A至图1B、图2和图3示出了示例性设备。图4示出了示例性电子触笔。图5A至图5B示出了触笔相对于触敏表面的位置状态。图6A至图6B和图7A至图7Q示出了用于通过用户输入与用户界面对象进行交互的示例性用户界面。图8和图10示出了用于基于图6A至图6B和图7A至图7Q所示的输入向应用程序提供输入事件的示例性输入/输出处理栈。图9A至图9B示出了用于基于图6A至图6B和图7A至图7Q所示的输入向应用程序提供基于触摸的输入事件的示例性数据结构。图11A至图11D、图12A至图12C和图13A至图13E示出了基于图6A至图6B和图7A至图7Q所示的输入向应用程序提供输入事件的方法。
示例性设备
现在将详细地参考实施例,这些实施例的示例在附图中示出。下面的详细描述中示出许多具体细节,以便提供对各种所描述的实施例的充分理解。但是,对本领域的普通技术人员将显而易见的是,各种所描述的实施例可以在没有这些具体细节的情况下被实践。在其他情况下,没有详细地描述众所周知的方法、过程、部件、电路和网络,从而不会不必要地使实施例的各个方面晦涩难懂。
还将理解的是,虽然在一些情况下,术语“第一”、“第二”等在本文中用于描述各种元件,但是这些元件不应受到这些术语限制。这些术语只是用于将一个元件与另一元件区分开。例如,第一接触可被命名为第二接触,并且类似地,第二接触可被命名为第一接触,而不脱离各种所描述的实施例的范围。第一接触和第二接触均为接触,但它们不是同一个接触,除非上下文另外明确指示。
在本文中对各种所述实施例的描述中所使用的术语只是为了描述特定实施例的目的,而并非旨在进行限制。如在对各种所述实施例中的描述和所附权利要求书中所使用的那样,单数形式“一个”和“该”旨在也包括复数形式,除非上下文另外明确地指示。还将理解的是,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语“包括”(“includes”、“including”、“comprises”和/或“comprising”)在本说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元件和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件和/或其分组。
如本文中所使用,根据上下文,术语“如果”任选地被解释为意思是“当……时”后“在……时”或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“如果确定……”或“如果检测到[所陈述的条件或事件]”任选地被解释为是指“在确定……时”或“响应于确定……”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
本文描述了电子设备、此类设备的用户界面和使用此类设备的相关过程的实施例。在一些实施例中,该设备为还包含其他功能诸如PDA和/或音乐播放器功能的便携式通信设备,诸如移动电话。便携式多功能设备的示例性实施例包括但不限于来自Apple Inc.(Cupertino,California)的设备、iPod设备、和设备。任选地使用其他便携式电子设备,诸如具有触敏表面(例如,触摸屏显示器和/或触控板)的膝上型电脑或平板电脑。还应当理解的是,在一些实施例中,该设备并非便携式通信设备,而是具有触敏表面(例如,触摸屏显示器和/或触控板)的台式计算机。
在下面的讨论中,描述了一种包括显示器和触敏表面的电子设备。然而,应当理解,该电子设备任选地包括一个或多个其他物理用户接口设备,诸如物理键盘、鼠标、轨迹球和/或操纵杆。
该设备通常支持各种应用程序,诸如以下中的一者或多者:绘图应用程序、呈现应用程序、文字处理应用程序、网站创建应用程序、盘编辑应用程序、电子表格应用程序、游戏应用程序、电话应用程序、视频会议应用程序、电子邮件应用程序、即时消息应用程序、健身支持应用程序、照片管理应用程序、数字相机应用程序、数字视频摄像机应用程序、网页浏览应用程序、数字音乐播放器应用程序和/或数字视频播放器应用程序。
在设备上执行的各种应用程序任选地使用至少一个通用的物理用户界面设备,诸如触敏表面。触敏表面的一种或多种功能以及被显示在设备上的对应信息任选地对于不同应用程序被调整和/或变化,和/或在相应应用程序内被调整和/或变化。这样,设备的共用物理架构(诸如触敏表面)任选地利用对于用户而言直观且清楚的用户界面来支持各种应用程序。
现在将注意力转到具有触敏显示器的便携式设备的实施例。图1A是示出根据一些实施例的具有触敏显示器***112的便携式多功能设备100的框图。触敏显示器***112有时为了方便而被叫做“触摸屏”,并且有时被简称为触敏显示器。设备100包括存储器102(其任选地包括一个或多个计算机可读存储介质)、存储器控制器122、一个或多个处理单元(CPU)120、***设备接口118、RF电路108、音频电路110、扬声器111、麦克风113、输入/输出(I/O)子***106、其他输入、或控制设备116吗、和外部端口124。设备100任选地包括一个或多个光学传感器164。设备100任选地包括用于检测设备100(例如,触敏表面,诸如设备100的触敏显示器***112)上的接触强度的一个或多个强度传感器165。设备100任选地包括用于在设备100上生成触觉输出(例如,在触敏表面诸如设备100的触敏显示器***112或设备300的触控板355上生成触觉输出)的一个或多个触觉输出发生器163。这些部件任选地通过一个或多个通信总线或信号线103进行通信。
如本说明书和权利要求书中所使用的,术语“触觉输出”是指将由用户利用用户的触感检测到的设备相对于设备的先前位置的物理位移、设备的部件(例如,触敏表面)相对于设备的另一个部件(例如,外壳)的物理位移、或部件相对于设备的质心的位移。例如,在设备或设备的部件与用户对触摸敏感的表面(例如,手指、手掌或用户手部的其他部分)接触的情况下,通过物理位移生成的触觉输出将由用户解释为触感,该触感对应于设备或设备的部件的物理特征的所感知的变化。例如,触敏表面(例如,触敏显示器或触控板)的移动任选地由用户解释为对物理致动按钮的“按下点击”或“松开点击”。在一些情况下,用户将感觉到触感,诸如“按下点击”或“松开点击”,即使在通过用户的移动而物理地被按压(例如,被移位)的与触敏表面相关联的物理致动按钮没有移动时。又如,即使在触敏表面的光滑度无变化时,触敏表面的移动也会任选地由用户解释或感测为触敏表面的“粗糙度”。虽然用户对触摸的此类解释将受到用户的个体化感官知觉的限制,但是对触摸的许多感官知觉是大多数用户共有的。因此,当触觉输出被描述为对应于用户的特定感官知觉(例如,“按下点击”、“松开点击”、“粗糙度”)时,除非另外陈述,否则所生成的触觉输出对应于设备或其部件的物理位移,该物理位移将会生成典型(或普通)用户的所述感官知觉。
应当理解,设备100仅是便携式多功能设备的一个示例,并且设备100任选地具有比所示出的更多或更少的部件,任选地组合两个或更多个部件,或者任选地具有这些部件的不同配置或布置。图1A中所示的各种部件在硬件、软件、固件、或它们的任何组合(包括一个或多个信号处理电路和/或专用集成电路)中实施。
存储器102任选地包括高速随机存取存储器,并且还任选地包括非易失性存储器,诸如一个或多个磁盘存储设备、闪存存储器设备、或其他非易失性固态存储器设备。设备100的其他部件(诸如CPU 120和***设备接口118)对存储器102的访问任选地由存储器控制器122来控制。
***设备接口118可用于将设备的输入***设备和输出***设备耦接到CPU 120和存储器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-HSPDA)、长期演进(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的前部上的触敏显示器***112相背对的设备100的后部上。
设备100任选地还包括一个或多个接近传感器166。图1A示出了与***设备接口118耦接的接近传感器166。另选地,接近传感器166与I/O子***106中的输入控制器160耦接。在一些实施例中,当多功能设备被置于用户耳朵附近时(例如,用户正在打电话时),接近传感器关闭并禁用触敏显示器***112。
设备100任选地还包括一个或多个触觉输出发生器163。图1A示出了与I/O子***106中的触觉反馈控制器161耦接的触觉输出发生器。触觉输出发生器163任选地包括一个或多个电声设备诸如扬声器或其他音频部件,和/或将能量转换成线性运动的机电设备诸如马达、螺线管、电活性聚合器、压电致动器、静电致动器,或其他触觉输出生成部件(例如,将电信号转换成设备上的触觉输出的部件)。一个或多个触觉输出发生器163从触觉反馈模块133接收触觉反馈生成指令,并且在设备100上生成能够由设备100的用户感觉到的触觉输出。在一些实施例中,至少一个触觉输出发生器与触敏表面(例如,触敏显示器***112)并置排列或邻近,并且任选地通过竖直地(例如,向设备100的表面内/外)或侧向地(例如,在与设备100的表面相同的平面中向后和向前)移动触敏表面来生成触觉输出。在一些实施例中,至少一个触觉输出发生器传感器位于设备100的与位于设备100的前部上的触敏显示***112相背对的后部上。
设备100任选地还包括用于获得关于设备的位置(例如,姿态)的信息的一个或多个加速度计167、陀螺仪168和/或磁力仪169(例如,作为惯性测量单元(IMU)的一部分)。图1A示出了与***设备接口118耦接的传感器167、168和169。另选地,传感器167、168和169任选地与I/O子***106中的输入控制器160耦接。在一些实施例中,基于对从一个或多个加速度计接收的数据的分析来在触摸屏显示器上以纵向视图或横向视图显示信息。设备100可选地包括用于获得关于设备100的位置的信息的GPS(或GLONASS或其他全球导航***)接收器(未示出)。
在一些实施例中,存储在存储器102中的软件部件包括操作***126、通信模块(或指令集)128、接触/运动模块(或指令集)130、位置模块(或指令集)131、图形模块(或指令集)132、触觉反馈模块(或指令集)133、文本输入模块(或指令集)134、全球定位***(GPS)模块(或指令集)135以及应用程序(或指令集)136。此外,在一些实施例中,存储器102存储设备/全局内部状态157,如图在1A和图3中所示的。设备/全局内部状态157包括以下中的一者或多者:活动应用程序状态,其指示哪些应用程序(如果有的话)当前是活动的;显示状态,其指示什么应用程序、视图或其他信息占据触敏显示器***112的各个区域;传感器状态,包括从设备的各个传感器和其他输入或控制设备116获得的信息;以及关于设备的位置和/或姿态的位置和/或方位信息。
操作***126(例如,iOS、Darwin、RTXC、LINUX、UNIX、OSX、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)在某些情况下,如果在特定手势识别标准识别与输入对应的手势之前,一组竞争的强度相关手势识别标准(例如,对于深按压手势而言)将输入识别为与强度相关手势对应,则不能满足特定手势识别标准(例如,对于长按压手势而言),从这个意义上来讲,仍然取决于相对于强度阈值的接触强度(例如,对于与深按压手势竞争识别的长按压手势而言)。
结合加速度计167、陀螺仪168和/或磁力仪169,位置模块131任选地检测关于设备的位置信息,诸如在特定参考系中设备的姿态(滚转、仰俯和/或偏航)。位置模块130包括用于执行与检测设备位置以及检测设备位置变化相关的各种操作的软件部件。在一些实施例中,位置模块131使用从与设备一起使用的触笔接收的信息来检测关于触笔的位置信息,诸如检测触笔相对于设备的位置状态以及检测触笔的位置状态的变化。
图形模块132包括用于在触敏显示器***112或其他显示器上渲染和显示图形的各种已知软件部件,包括用于改变所显示的图形的视觉冲击(例如,亮度、透明度、饱和度、对比度或其他视觉属性)的部件。如本文所用,术语“图形”包括可被显示给用户的任何对象,非限制性地包括文本、网页、图标(诸如包括软键的用户界面对象)、数字图像、视频、动画等。
在一些实施例中,图形模块132存储表示待使用的图形的数据。每个图形任选地被分配有对应的代码。图形模块132从应用程序等接收用于指定待显示的图形的一个或多个代码,在必要的情况下还一起接收坐标数据和其他图形属性数据,并且然后生成屏幕图像数据,以输出至显示控制器156。
触觉反馈模块133包括用于生成指令的各种软件部件,这些指令由触觉输出发生器163使用,以响应于用户与设备100的交互而在设备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和音乐播放器模块146,健身支持模块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上的用户触摸)的信息。***设备接口118传输其从I/O子***106或传感器诸如接近传感器166、一个或多个加速度计167、一个或多个陀螺仪168、一个或多个磁力仪169和/或麦克风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中的一个或多个事件识别器是独立模块的一部分,该独立模块为诸如用户界面工具包(未示出)或应用程序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包括事件接收器182和事件比较器184。在一些实施例中,事件识别器180还包括元数据183和事件传递指令188(其任选地包括子事件递送指令)的至少一个子集。
事件接收器182接收来自事件分类器170的事件信息。事件信息包括关于子事件例如触摸或触摸移动的信息。根据子事件,事件信息还包括附加信息,诸如子事件的位置。当子事件涉及触摸的运动时,事件信息任选地还包括子事件的速率和方向。在一些实施例中,事件包括设备从一个取向旋转到另一取向(例如,从纵向取向旋转到横向取向,或反之亦然),并且事件信息包括关于设备的当前取向(也被称为设备姿态)的对应信息。
事件比较器184将事件信息与预定义的事件或子事件定义进行比较,并且基于该比较来确定事件或子事件,或者确定或更新事件或子事件的状态。在一些实施例中,事件比较器184包括事件定义186。事件定义186包含事件的定义(例如,预定义的子事件序列),例如事件1(187-1)、事件2(187-2)以及其他。在一些实施例中,事件187中的子事件包括例如触摸开始、触摸结束、触摸移动、触摸取消和多点触摸。在一个示例中,事件1(187-1)的定义是被显示对象上的双击。例如,双击包括被显示对象上的预先确定时长的第一次触摸(触摸开始)、预先确定时长的第一次抬起(触摸结束)、被显示对象上的预先确定时长的第二次触摸(触摸开始)以及预先确定时长的第二次抬起(触摸结束)。在另一个示例中,事件2(187-2)的定义是被显示对象上的拖动。例如,拖动包括被显示对象上的预先确定时长的触摸(或接触)、触摸在触敏显示器***112上的移动、以及触摸的抬离(触摸结束)。在一些实施例中,事件还包括用于一个或多个相关联的事件处理程序190的信息。
在一些实施例中,事件定义187包括对用于相应用户界面对象的事件的定义。在一些实施例中,事件比较器184执行命中测试以确定哪个用户界面对象与子事件相关联。例如,在触敏显示器***112上显示三个用户界面对象的应用程序视图中,当在触敏显示器***112上检测到触摸时,事件比较器184执行命中测试以确定这三个用户界面对象中的哪一个用户界面对象与该触摸(子事件)相关联。如果每个所显示对象与相应事件处理程序190相关联,则事件比较器使用该命中测试的结果来确定哪个事件处理程序190应当被激活。例如,事件比较器184选择与子事件和触发该命中测试的对象相关联的事件处理程序。
在一些实施例中,相应事件187的定义还包括延迟动作,该延迟动作延迟事件信息的递送,直到已确定子事件序列确实对应于或不对应于事件识别器的事件类型。
当相应事件识别器180确定子事件序列不与事件定义186中的任何事件匹配时,该相应事件识别器180进入事件不可能、事件失败或事件结束状态,在此之后忽略基于触摸的手势的后续子事件。在这种情况下,对于命中视图保持活动的其他事件识别器(如果有的话)继续跟踪并处理持续进行的基于触摸的手势的子事件。
在一些实施例中,相应事件识别器180包括具有指示事件递送***应当如何执行对活跃参与的事件识别器的子事件递送的可配置属性、标记和/或列表的元数据183。在一些实施例中,元数据183包括指示事件识别器彼此如何交互或如何能够交互的可配置属性、标志和/或列表。在一些实施例中,元数据183包括指示子事件是否递送到视图或程序化分级结构中的不同层级的可配置属性、标志和/或列表。
在一些实施例中,当事件的一个或多个特定子事件被识别时,相应事件识别器180激活与事件相关联的事件处理程序190。在一些实施例中,相应事件识别器180将与事件相关联的事件信息递送到事件处理程序190。激活事件处理程序190不同于将子事件发送(和延期发送)到相应命中视图。在一些实施例中,事件识别器180抛出与所识别的事件相关联的标记,并且与该标记相关联的事件处理程序190获得该标记并执行预定义过程。
在一些实施例中,事件递送指令188包括递送关于子事件的事件信息而不激活事件处理程序的子事件递送指令。相反,子事件递送指令将事件信息递送到与子事件序列相关联的事件处理程序或者递送到活跃参与的视图。与子事件序列或与活跃参与的视图相关联的事件处理程序接收事件信息并执行预先确定的过程。
在一些实施例中,数据更新器176创建并更新在应用程序136-1中使用的数据。例如,数据更新器176对联系人模块137中所使用的电话号码进行更新,或者对视频播放器模块145中所使用的视频文件进行存储。在一些实施例中,对象更新器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、用于使设备通电/断电以及锁定设备的下压按钮206、音量调节按钮208、用户身份模块(SIM)卡槽210、耳麦插孔212以及对接/充电外部端口124。下压按钮206任选地用于通过压下该按钮并且将该按钮保持在压下状态持续预定义的时间间隔来对设备进行开/关机;通过压下该按钮并在该预定义的时间间隔过去之前释放该按钮来锁定设备;和/或对设备进行解锁或发起解锁过程。在一些实施例中,设备100还通过麦克风113来接受用于激活或停用某些功能的语音输入。设备100还任选地包括用于检测触敏显示器***112上的接触强度的一个或多个接触强度传感器165,和/或用于为设备100的用户生成触觉输出的一个或多个触觉输出发生器163。
图3是根据一些实施例具有显示器和触敏表面的示例性多功能设备的框图。设备300不必是便携式的。在一些实施例中,设备300是膝上型电脑、台式计算机、平板电脑、多媒体播放器设备、导航设备、教育设备(诸如儿童学习玩具)、游戏***或控制设备(例如,家用控制器或工业用控制器)。设备300通常包括一个或多个处理单元(CPU)310、一个或多个网络或其他通信接口360、存储器370和用于将这些部件互联的一根或多根通信总线320。通信总线320任选地包括使***部件互连并且控制***部件之间的通信的电路(有时称作芯片组)。设备300包括具有显示器340的输入/输出(I/O)接口330,该显示器通常是触摸屏显示器。I/O接口330还任选地包括键盘和/或鼠标(或其他指向设备)350和触控板355、用于在设备300上生成触觉输出的触觉输出发生器357(例如,类似于以上参考图1A所述的一个或多个触觉输出发生器163)、传感器359(例如,类似于以上参考图1A所述的传感器112、164、165、166、167、168和169的触敏传感器、光学传感器、接触强度传感器、接近传感器、加速度传感器、姿态和/或磁传感器)。存储器370包括高速随机存取存储器,诸如DRAM、SRAM、DDRRAM或其他随机存取固态存储器设备;并且任选地包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器370任选地包括远离CPU 310定位的一个或多个存储设备。在一些实施例中,存储器370存储与便携式多功能设备100(图1A)的存储器102中所存储的程序、模块和数据结构类似的程序、模块、和数据结构,或它们的子集。此外,存储器370任选地存储在便携式多功能设备100的存储器102中不存在的附加程序、模块和数据结构。例如,设备300的存储器370任选地存储绘图模块380、呈现模块382、文字处理模块384、网站创建模块386、盘编辑模块388、和/或电子表格模块390,而便携式多功能设备100(图1A)的存储器102任选地不存储这些模块。
图3中上述所识别的元件中的每个元件任选地存储在先前提到的存储器设备中的一个或多个存储器设备中。上述所识别的模块中的每个模块对应于用于执行上述功能的指令集。上述所识别的模块或程序(即,指令集)不必被实现为单独的软件程序、过程或模块,因此这些模块的各种子集任选地在各种实施例中组合或以其他方式重新布置。在一些实施例中,存储器370任选地存储上述模块和数据结构的子集。此外,存储器370任选地存储上文未描述的附加模块和数据结构。
图4是根据一些实施例的示例性电子触笔203的框图。电子触笔203有时简称为触笔。触笔203包括存储器402(其任选地包括一个或多个计算机可读存储介质)、存储器控制器422、一个或多个处理单元(CPU)420、***设备接口418、RF电路408、输入/输出(I/O)子***406以及其他输入或控制设备416。触笔203任选地包括外部端口424和一个或多个光学传感器464。触笔203任选地包括用于检测触笔203在设备100上(例如,当触笔203与触敏表面诸如设备100的触敏显示器***112一起使用时)或在其他表面(例如,桌子表面)上的接触强度的一个或多个强度传感器465。触笔203任选地包括用于在触笔203上生成触觉输出的一个或多个触觉输出发生器463。这些部件任选地通过一个或多个通信总线或信号线403进行通信。
在一些实施例中,上面讨论的术语“触觉输出”是指将由用户凭借用户的触摸感检测到的设备(例如,设备100)的附件(例如,触笔203)相对于附件的先前位置的物理位移、附件的部件相对于附件的另一部件的物理位移,或者部件相对于附件的质心的位移。例如,在附件或附件的部件与用户的对触摸敏感的表面(例如,手指、手掌或用户手部的其他部分)接触的情况下,由物理位移生成的触觉输出将由用户解释为触感,该触感对应于所感知的附件或附件的部件的物理特征的变化。例如,部件(例如,触笔203的外壳)的移动任选地由用户解释为对物理致动按钮的“点击”。在一些情况下,用户将感觉到触感,诸如“点击”,即使当通过用户的移动而物理地被按压(例如,被移位)的与触笔相关联的物理致动按钮没有移动时。虽然用户对触摸的此类解释将受到用户的个体化感官知觉的限制,但是对触摸的许多感官知觉是大多数用户共有的。因此,当触觉输出被描述为对应于用户的特定感知(例如,“点击”)时,除非另外陈述,否则所生成的触觉输出对应于设备或其部件的物理位移,该物理位移将会生成典型(或普通)用户的所述感知。
应当理解,触笔203仅仅是电子触笔的一个示例,并且触笔203任选地具有比所示出的部件更多或更少的部件,任选地组合两个或更多个部件,或者任选地具有这些部件的不同配置或布置。图4中所示的各种部件在硬件、软件、固件或它们的任何组合(包括一个或多个信号处理电路和/或专用集成电路)中实现。
存储器402任选地包括高速随机存取存储器,并且还任选地包括非易失性存储器,诸如一个或多个闪存存储器设备或其他非易失性固态存储器设备。触笔203的其他部件(诸如一个或多个CPU 420和***设备接口418)对存储器402的访问任选地由存储器控制器422控制。
***设备接口418可被用于将触笔的输入***设备和输出***设备耦接到一个或多个CPU 420和存储器402。所述一个或多个处理器420运行或执行被存储在存储器402中的各种软件程序和/或指令集,以执行触笔203的各种功能并处理数据。
在一些实施例中,***设备接口418、CPU 420和存储器控制器422任选地被实现在单个芯片诸如芯片404上。在一些其他实施例中,它们任选地在独立的芯片上实现。
RF(射频)电路408接收和发送也被称作电磁信号的RF信号。RF电路408将电信号转换为电磁信号/将电磁信号转换为电信号,并且经由电磁信号与设备100或设备300、通信网络和/或其他通信设备进行通信。RF电路408任选地包括用于执行这些功能的熟知的电路,包括但不限于天线***、RF收发器、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、编解码芯片组、用户身份模块(SIM)卡、存储器等。RF电路408任选地通过无线通信来与网络和其他设备进行通信,这些网络为诸如互联网(也称为万维网(WWW))、内联网和/或无线网络(诸如,蜂窝电话网络、无线局域网(LAN)和/或城域网(MAN))。该无线通信任选地使用多种通信标准、协议、和技术中的任一者,包括但不限于全球移动通信***(GSM)、增强型数据GSM环境(EDGE)、高速下行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)、演进纯数据(EV-DO)、HSPA、HSPA+、双单元HSPA(DC-HSPDA)、长期演进(LTE)、近场通信(NFC)、宽带码分多址(W-CDMA)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、无线保真(Wi-Fi)(例如,IEEE 802.11a、IEEE 802.11ac、IEEE 802.11ax、IEEE 802.11b、IEEE802.11g和/或IEEE 802.11n)、互联网协议语音技术(VoIP)、Wi-MAX、电子邮件协议(例如,互联网消息访问协议(IMAP)和/或邮局协议(POP))、即时消息(例如,可扩展消息处理和存在协议(XMPP)、用于即时消息和存在利用扩展的会话发起协议(SIMPLE)、即时消息和存在服务(IMPS)、和/或短消息服务(SMS))、或者包括在本文档提交日期还未开发出的通信协议的其他任何适当的通信协议。
I/O子***406将触笔203上的输入/输出***设备诸如其他输入或控制设备416与***设备接口418耦接。I/O子***406任选地包括光学传感器控制器458、强度传感器控制器459、触觉反馈控制器461和用于其他输入或控制设备的一个或多个输入控制器460。所述一个或多个输入控制器460从其他输入或控制设备416接收电信号/将电信号发送到所述其他输入或控制设备。其他输入或控制设备416任选地包括物理按钮(例如,下压按钮、摇臂按钮等)、拨号盘、滑动开关、点击轮等。在一些另选的实施例中,一个或多个输入控制器460任选地耦接至以下各项中的任一者(或不耦接至以下各项中的任一者):红外线端口和/或USB端口。
触笔203还包括用于为各种部件供电的电力***462。电力***462任选地包括电力管理***、一个或多个电源(例如,电池、交流电(AC))、再充电***、电力故障检测电路、功率转换器或逆变器、电源状态指示器(例如,发光二极管(LED))以及与便携式设备和/或便携式附件中电力的生成、管理和分配相关联的任何其他部件。
触笔203任选地还包括一个或多个光学传感器464。图4示出了与I/O子***406中的光学传感器控制器458耦接的光学传感器。光学传感器464任选地包括电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)光电晶体管。光学传感器464从环境接收通过一个或多个透镜而投射的光,并且将光转换为表示图像的数据。
触笔203任选地还包括一个或多个接触强度传感器465。图4示出了与I/O子***406中的强度传感器控制器459耦接的接触强度传感器。一个或多个接触强度传感器465任选地包括一个或多个压阻应变仪、电容式力传感器、电气式力传感器、压电力传感器、光学力传感器、电容式触敏表面或其他强度传感器(例如,用于测量表面上的接触的力(或压力)的传感器)。接触强度传感器465从环境接收接触强度信息(例如,压力信息或压力信息代理)。在一些实施例中,至少一个接触强度传感器与触笔203的尖端并置排列或邻近。
触笔203任选地还包括一个或多个接近传感器466。图4示出了与***设备接口418耦接的接近传感器466。另选地,接近传感器466与I/O子***406中的输入控制器460耦接。在一些实施例中,接近传感器确定触笔203与电子设备(例如,设备100)的接近度。
触笔203任选地还包括一个或多个触觉输出发生器463。图4示出了与I/O子***406中的触觉反馈控制器461耦接的触觉输出发生器。触觉输出发生器463任选地包括一个或多个电声设备诸如扬声器或其他音频部件,和/或将能量转换为线性运动的机电设备诸如电机、螺线管、电活性聚合器、压电致动器、静电致动器或其他触觉输出生成部件(例如,将电信号转换为设备上的触觉输出的部件)。一个或多个触觉输出发生器463从触觉反馈模块433接收触觉反馈生成指令,并且在触笔203上生成能够由触笔203的用户感觉到的触觉输出。在一些实施例中,至少一个触觉输出发生器与触笔203的长度(例如,主体或外壳)并置排列或邻近,并且任选地,通过竖直(例如,在平行于触笔203的长度的方向上)或横向(例如,在垂直于触笔203的长度的方向上)移动触笔203来生成触觉输出。
触笔203任选地还包括用于获取关于触笔203的位置和位置状态的信息的一个或多个加速度计467、陀螺仪468和/或磁力仪470(例如,作为惯性测量单元(IMU)的一部分)。图4示出了与***设备接口418耦接的传感器467、469和470。另选地,传感器467、469和470任选地与I/O子***406中的输入控制器460耦接。触笔203任选地包括用于获取关于触笔203的位置的信息的GPS(或GLONASS或其他全球导航***)接收器(未示出)。
在一些实施例中,存储在存储器402中的软件部件包括操作***426、通信模块(或指令集)428、接触/运动模块(或指令集)430、位置模块(或指令集)431和全球定位***(GPS)模块(或指令集)435。此外,在一些实施例中,存储器402存储设备/全局内部状态457,如图4所示。设备/全局内部状态457包括以下各项中的一者或多者:传感器状态,包括从触笔的各种传感器和其他输入或控制设备416获取的信息;位置状态,包括关于触笔相对于设备(例如,设备100)的位置(例如,位置、取向、倾斜、转动和/或距离,如图5A和图5B所示)的信息;以及关于触笔位置的位置信息(例如,由GPS模块435确定)。
操作***426(例如,iOS、Darwin、RTXC、LINUX、UNIX、OSX、WINDOWS或嵌入式操作***诸如VxWorks)包括用于控制和管理一般***任务(例如,存储器管理、功率管理等)的各种软件部件和/或驱动器,并且促进各种硬件部件和软件部件之间的通信。
通信模块428任选地有利于通过一个或多个外部端口424来与其他设备进行通信,并且还包括用于处理由RF电路408和/或外部端口424所接收的数据的各种软件部件。外部端口424(例如,通用串行总线(USB)、火线等)适于直接耦接到其他设备或间接地经由网络(例如,互联网、无线LAN等)耦接。在一些实施例中,外部端口是与Apple Inc.(Cupertino,California)的一些iPod和设备中所使用的Lightning连接器相同或类似和/或兼容的Lightning连接器。
接触/运动模块430任选地检测与触笔203和触笔203的其他触敏器件(例如,触笔203的按钮或其他触敏部件)的接触。接触/运动模块430包括用于执行与对接触的检测(例如,对触笔的尖端与触敏显示器诸如设备100的触摸屏112或与另一表面诸如桌子表面的接触的检测)相关的各种操作的软件部件,所述各种操作诸如为确定是否已发生接触(例如,检测触摸按下事件)、确定接触的强度(例如,接触的力或压力,或者接触的力或压力的代替物)、确定是否存在接触的移动并跟踪跨该移动(例如,跨设备100的触摸屏112),以及确定接触是否已停止(例如,检测抬离事件或者接触断开)。在一些实施例中,接触/运动模块430从I/O子***406接收接触数据。确定接触点的移动任选地包括确定接触点的速率(量值)、速度(量值和方向)和/或加速度(量值和/或方向的改变),所述接触点的移动由一系列接触数据表示。如上所述,在一些实施例中,与对接触的检测相关的这些操作中的一个或多个操作由设备使用接触/运动模块130执行(作为补充或代替触笔使用接触/运动模块430)。
接触/运动模块430任选地检测触笔203的手势输入。用触笔203进行的不同手势具有不同的接触模式(例如,所检测到的接触的不同运动、计时和/或强度)。因此,任选地通过检测特定接触模式来检测手势。例如,检测单次轻击手势包括检测触摸按下事件,随后是在与触摸按下事件相同的位置(或基本上相同的位置)处(例如,在图标的位置处)检测抬离事件。又如,检测轻扫手势包括检测触摸按下事件,随后是检测一个或多个触笔拖动事件,并且随后接着是检测抬离事件。如上所述,在一些实施例中,手势检测由设备使用接触/运动模块130执行(作为补充或代替触笔使用接触/运动模块430)。
结合加速度计467、陀螺仪468和/或磁力仪469,位置模块431任选地检测关于触笔的位置信息,诸如在特定参考系中触笔的姿态(滚转、仰俯和/或偏航)。结合加速度计467、陀螺仪468和/或磁力计469,位置模块431任选地检测触笔移动手势,诸如触笔的轻弹、轻击和转动。位置模块431包括用于执行与检测触笔的位置以及检测在特定参考系中触笔的位置的变化相关的各种操作的软件部件。在一些实施例中,位置模块431检测触笔相对于设备的位置状态,并且检测触笔相对于设备的位置状态的变化。如上所述,在一些实施例中,设备100或设备300使用位置模块131来确定触笔相对于设备的位置状态和触笔的位置状态的变化(作为补充或代替触笔使用位置模块431)。
触觉反馈模块433包括用于生成由一个或多个触觉输出发生器463使用的指令的各种软件部件,以响应于用户与触笔203的交互而在触笔203上的一个或多个位置处产生触觉输出。
GPS模块435确定触笔的位置并提供该信息以供在各种应用程序中使用(例如,提供给提供基于位置的服务的应用程序,诸如用于找到丢失的设备和/或附件的应用程序)。
上述所识别的每个模块和应用对应于用于执行上述一种或多种功能以及在本申请中所描述的方法(例如,本文中所描述的计算机实现的方法和其他信息处理方法)的一组可执行指令。这些模块(即,指令集)不必以独立的软件程序、过程或模块实现,因此这些模块的各种子集任选地在各种实施例中组合或以其他方式重新布置。在一些实施例中,存储器402任选地存储上述模块和数据结构的子集。此外,存储器402任选地存储上文未描述的附加模块和数据结构。
图5A至图5B示出了根据一些实施例的触笔203相对于触敏表面(例如,设备100的触摸屏112)的位置状态。在一些实施例中,触笔203的位置状态对应于(或指示):触笔的尖端(或其他代表性部分)在触敏表面上的投影位置(例如,图5A中的(x,y)位置504)、触笔相对于触敏表面的取向(例如,图5A中的取向506)、触笔相对于触敏表面的倾斜(例如,图5B中的倾斜512)和/或触笔相对于触敏表面的距离(例如,图5B中的距离514)。在一些实施例中,触笔203的位置状态对应于(或指示)触笔的俯仰、偏航和/或转动(例如,触笔相对于特定参考系诸如触敏表面(例如,触摸屏112)或地面的姿态)。在一些实施例中,位置状态包括一组位置参数(例如,一个或多个位置参数)。在一些实施例中,根据来自触笔203的发送到电子设备(例如,设备100)的一个或多个测量结果来检测位置状态。例如,触笔测量触笔的倾斜(例如,图5B的倾斜512)和/或取向(例如,图5A的取向506)并将测量结果发送到设备100。在一些实施例中,代替或者结合根据来自触笔203的一个或多个测量结果检测到的位置状态,根据由触敏表面(例如,设备100的触摸屏112)感测到的来自触笔中的一个或多个电极的原始输出来检测位置状态。例如,触敏表面接收来自触笔中的一个或多个电极的原始输出,并且基于原始输出(任选地,结合由触笔基于由触笔生成的传感器测量结果提供的位置状态信息)来计算触笔的倾斜和/或取向。
图5A示出了根据一些实施例的从触敏表面(例如,设备100的触摸屏112)正上方的视角查看的触笔203相对于触敏表面。在图5A中,z轴594指向页面外(即,在垂直于触摸屏112的平面的方向上),x轴590平行于触摸屏112的第一边缘(例如,长度),y轴592平行于触摸屏112的第二边缘(例如,宽度),并且y轴592垂直于x轴590。
图5A在(x,y)位置504处示出了触笔203的尖端。在一些实施例中,触笔203的尖端是触笔的末端,其被配置用于确定触笔与触敏表面(例如,触摸屏112)的接近度。在一些实施例中,触笔的尖端在触敏表面上的投影是正交投影。换句话讲,触笔的尖端在触敏表面上的投影是在从触笔尖端到触敏表面的垂直于触敏表面的表面的线的端部处的点(例如,(x,y)位置504,如果直接沿垂直于触敏表面的路径移动触笔,则触笔的尖端将在此点处触摸触敏表面)。在一些实施例中,触摸屏112的左下角处的(x,y)位置是位置(0,0)(例如,(0,0)位置502)并且触摸屏112上的其他(x,y)位置相对于触摸屏112的左下角。另选地,在一些实施例中,(0,0)位置位于触摸屏112的另一位置处(例如,在触摸屏112的中心)并且其他(x,y)位置相对于触摸屏112的(0,0)位置。
另外,图5A示出触笔203具有取向506。在一些实施例中,取向506是触笔203在触摸屏112上的投影(例如,触笔203的长度的正交投影或与触笔203的两个不同点在触摸屏112上的投影之间的线对应的线)的取向。在一些实施例中,取向506相对于平行于触摸屏112的平面中的至少一个轴。在一些实施例中,取向506相对于平行于触摸屏112的平面中的单个轴(例如,轴508,具有从轴508开始从0度到360度变动的顺时针旋转角度,如图5A所示)。另选地,在一些实施例中,取向506相对于平行于触摸屏112的平面中的一对轴(例如,x轴590和y轴592,如图5A所示,或者与显示在触摸屏112上的应用程序相关联的一对轴)。
在一些实施例中,指示(例如,指示516)显示在触敏显示器(例如,设备100的触摸屏112)上。在一些实施例中,指示516在触笔触摸触敏显示器之前示出触笔将触摸(或标记)触敏显示器的位置。在一些实施例中,指示516是在触敏显示器上绘制的标记的一部分。在一些实施例中,指示516与在触敏显示器上绘制的标记分开,并且对应于虚拟“笔尖”或指示将在触敏显示器上绘制标记的位置的其他元素。
在一些实施例中,根据触笔203的位置状态来显示指示516。例如,在一些情况下,指示516从(x,y)位置504移位(如图5A和图5B所示),并且在其他情况下,指示516不从(x,y)位置504移位(例如,当倾斜512为零度时,指示516显示在(x,y)位置504处或在其附近)。在一些实施例中,根据触笔的位置状态,指示516被显示具有变化的颜色、尺寸(或半径或面积)、不透明度和/或其他特征。在一些实施例中,所显示的指示考虑了触敏显示器上的玻璃层的厚度,以便将指示贯彻到触敏显示器的“像素上”,而不是将指示显示在覆盖像素的“玻璃上”。如本文所用,“指示”还可以用于指在描述示例性用户界面时在触摸屏上不可见的位置。
图5B示出了根据一些实施例的从触敏表面(例如,设备100的触摸屏112)的侧面视角查看的触笔203相对于触敏表面。在图5B中,z轴594指向垂直于触摸屏112的平面的方向,x轴590平行于触摸屏112的第一边缘(例如,长度),y轴592平行于触摸屏112的第二边缘(例如,宽度),并且y轴592垂直于x轴590。
图5B示出触笔203具有倾斜512。在一些实施例中,倾斜512是相对于触敏表面的表面的法线(也被简称为触敏表面的法线)(例如,法线510)的角度。如图5B所示,当触笔垂直于/垂直触敏表面时(例如,当触笔203平行于法线510时),倾斜512为零,并且随着触笔倾斜接***行于触敏表面,倾斜增大。
另外,图5B示出了触笔203相对于触敏表面的距离514。在一些实施例中,距离514是在垂直于触敏表面的方向上从触笔203的尖端到触敏表面的距离。例如,在图5B中,距离514是从触笔203的尖端到(x,y)位置504的距离。
尽管本文使用术语“x轴”、“y轴”和“z轴”以在特定附图中示出某些方向,但是应当理解,这些术语不是指绝对方向。换句话讲,“x轴”可以是任何相应的轴,并且“y轴”可以是不同于x轴的特定轴。通常,x轴垂直于y轴。类似地,“z轴”不同于“x轴”和“y轴”,并且通常垂直于“x轴”和“y轴”两者。
另外,图5B示出了转动518—围绕触笔203的长度(长轴)的旋转。
现在将注意力转到任选地在便携式多功能设备100上实现的用户界面(“UI”)的实施例。
图6A示出了根据一些实施例的用于便携式多功能设备100上的应用程序的菜单的示例性用户界面。类似的用户界面任选地在设备300上实现。在一些实施例中,用户界面600包括以下元素或者其子集或超集:
·一个或多个无线通信诸如蜂窝信号和Wi-Fi信号的一个或多个信号强度指示符602;
·时间604;
·蓝牙指示符605;
·电池状态指示符606;
·具有针对常用应用程序的图标的托盘608,该图标诸如:
ο电话模块138的被标记为“电话”的图标616,该图标任选地包括未接来电或语音留言的数量的指示符614;
ο电子邮件客户端模块140的被标记为“邮件”的图标618,该图标任选地包括未读电子邮件的数量的指示符610;
ο浏览器模块147的被标记为“浏览器”的图标620;以及
ο视频和音乐播放器模块152(也称为iPod(Apple Inc.的商标)模块152)的被标记为“iPod”的图标622;以及
·其他应用的图标,诸如:
οIM模块141的被标记为“文本”的图标624;
ο日历模块148的被标记为“日历”的图标626;;
ο图像管理模块144的被标记为“照片”的图标628;;
ο相机模块143的被标记为“相机”的图标630;;
ο在线视频模块155的被标记为“在线视频”的图标632;;
ο股市桌面小程序149-2的被标记为“股市”的图标634;;
ο地图模块154的被标记为“地图”的图标636;;
ο天气桌面小程序149-1的被标记为“天气”的图标638;;
ο闹钟桌面小程序169-6的被标记为“时钟”的图标640;;
ο健身支持模块142的被标记为“健身支持”的图标642;;
ο记事本模块153的被标记为“记事本”的图标644;以及
ο用于设置应用程序或模块的图标646,该图标提供对设备100及其各种应用程序136的设置的访问。
应当指出的是,图6A中示出的图标标签仅是示例性的。例如,在一些实施例中,视频和音乐播放器模块152的图标622被标记为“音乐”或“音乐播放器”。对于各种应用程序图标任选地使用其他标签。在一些实施例中,相应应用程序图标的标签包括与该相应应用程序图标对应的应用程序的名称。在一些实施例中,特定应用程序图标的标签不同于与该特定应用程序图标对应的应用程序的名称。
图6B示出了具有与显示器650分开的触敏表面651(例如,图3中的平板或触控板355)的设备(例如,图3中的设备300)上的示例性用户界面。设备300还任选地包括用于检测触敏表面651上的接触强度的一个或多个接触强度传感器(例如,传感器359中的一个或多个传感器)和/或用于为设备300的用户生成触觉输出的一个或多个触觉输出发生器357。
图6B示出了具有与显示器650分开的触敏表面651(例如,图3中的平板或触控板355)的设备(例如,图3中的设备300)上的示例性用户界面。在一些实施例中,触敏表面(例如,图6B中的651)具有与显示器(例如,650)上的主轴线(例如,图6B中的653)对应的主轴线(例如,图6B中的652)。根据这些实施例,设备检测与显示器上的相应位置对应的位置处的与触敏表面651的接触(例如,图6B中的660和662)(例如,在图6B中,660对应于668并且662对应于670)。这样,在触敏表面(例如,图6B中的651)与多功能设备的显示器(例如,图6B中的650)是分开的时侯,由设备在触敏表面上检测到的用户输入(例如,接触660和662以及它们的移动)被该设备用于操纵显示器上的用户界面。下面的一些示例将参考检测与显示器分开的触敏表面上的输入的设备给出,如图6B所示。下面的一些示例将参考触摸屏显示器112(其中触敏表面和显示器被组合)上的输入给出。应当理解,类似的方法任选地用于本文所述的其他用户界面。
另外,虽然以下一些示例主要参考手指输入(例如,手指接触、手指轻击手势、手指按压手势,以及手指轻扫手势等)给出,但是应当理解,在一些实施例中,一个或多个手指输入被来自另一输入设备的输入(例如,基于鼠标的输入或基于触笔的输入)替换。例如,轻扫手势任选地由鼠标点击(例如,而不是接触),之后是光标沿着轻扫的路径的移动(例如,而不是接触的移动)替代。又如,轻击手势任选地由在光标位于轻击手势的位置上方时的鼠标点击(例如,代替对接触的检测,之后是停止检测接触)替代。类似地,当同时检测到多个用户输入时,应当理解的是,多个计算机鼠标任选地被同时使用,或鼠标和手指接触任选地被同时使用。
如本文所用,术语“焦点选择器”是指用于指示用户正与之进行交互的用户界面的当前部分的输入元件。在包括光标或其他位置标记的一些实施方式中,光标充当“焦点选择器”,使得当光标在特定用户界面元素(例如,按钮、窗口、滑块或其他用户界面元素)上方时在触敏表面(例如,图3中的触控板355或图6B中的触敏表面651)上检测到输入(例如,按压输入)的情况下,该特定用户界面元素根据所检测到的输入而被调整。在包括使得能够实现与触摸屏显示器上的用户界面元素的直接交互的触摸屏显示器(例如,图1A中的触敏显示器112或图6A中的触摸屏)的一些实施方式中,在触摸屏上所检测到的接触充当“焦点选择器”,使得当在触摸屏显示器上在特定用户界面元素(例如,按钮、窗口、滑块或其他用户界面元素)的位置处检测到输入(例如,通过接触的按压输入)时,根据检测到的输入来调整该特定用户界面元素。在一些实施方式中,焦点从用户界面的一个区域移动到用户界面的另一个区域,而无需光标的对应移动或触摸屏显示器上的接触的移动(例如,通过使用制表键或箭头键将焦点从一个按钮移动到另一个按钮);在这些实施方式中,焦点选择器根据焦点在用户界面的不同区域之间的移动而移动。不考虑焦点选择器所采取的具体形式,焦点选择器通常是由用户控制的以便递送与用户界面的用户预期的交互(例如,通过向设备指示用户界面的用户期望与其进行交互的元素)的用户界面元素(或触摸屏显示器上的接触)。例如,在触敏表面(例如,触控板或触摸屏)上检测到按压输入时,焦点选择器(例如,光标、接触或选择框)在相应按钮上方的位置将指示用户期望激活相应按钮(而不是设备显示器上示出的其他用户界面元素)。如本文所用,“焦点选择器”可以是悬停输入对象(例如,手指或触笔)的可见“指示”或不可见“指示”。
如在本说明书和权利要求书中所使用的,术语触敏表面上的接触的“强度”是指触敏表面上的接触(例如,手指接触或触笔接触)的力或压力(每单位面积的力),或者是指触敏表面上的接触的力或压力的替代物(代理)。接触的强度具有值范围,该值范围包括至少四个不同的值并且更典型地包括上百个不同的值(例如,至少256个)。接触的强度任选地使用各种方法和各种传感器或传感器的组合来确定(或测量)。例如,在触敏表面下方或相邻于触敏表面的一个或多个力传感器任选地用于测量触敏表面上的不同点处的力。在一些实施方式中,来自多个力传感器的力测量被合并(例如,加权平均或者加和),以确定估计的接触力。类似地,触笔的压敏顶端任选地用于确定触笔在触敏表面上的压力。另选地,在触敏表面上检测到的接触区域的大小和/或其变化、接触附近的触敏表面的电容和/或其变化以及/或者接触附近的触敏表面的电阻和/或其变化任选地被用作触敏表面上的接触的力或压力的替代物。在一些实施方式中,接触力或压力的替代物测量直接用于确定是否已经超过强度阈值(例如,强度阈值以对应于替代物测量的单位来描述)。在一些实施方式中,将接触力或压力的替代测量值转换为预估力或压力,并且使用预估力或压力确定是否已超过强度阈值(例如,强度阈值是以压力单位测量的压力阈值)。使用接触的强度作为用户输入的属性,从而允许用户访问用户在用于(例如,在触敏显示器上)显示示能表示和/或接收用户输入(例如,经由触敏显示器、触敏表面或物理控件/机械控件诸如旋钮或按钮)的实地面积有限的尺寸更小的设备上本来不能容易地访问的附加设备功能。
在一些实施例中,接触/运动模块130和/或接触/运动模块430使用一组一个或多个强度阈值来确定操作是否已由用户执行(例如,确定用户是否已“点击”图标)。在一些实施例中,根据软件参数来确定强度阈值的至少一个子集(例如,强度阈值不是由特定物理致动器的激活阈值来确定的,并且可在不改变设备100的物理硬件的情况下被调节)。例如,在不改变触控板或触摸屏显示器硬件的情况下,触控板或触摸屏显示器的鼠标“点击”阈值可被设置为预定义阈值的大范围中的任一个阈值。另外,在一些实施例中,向设备的用户提供用于调节这组强度阈值中的一个或多个强度阈值(例如,通过调节各个强度阈值和/或通过利用对“强度”参数的***级点击来一次调节多个强度阈值)的软件设置。
如说明书和权利要求中所使用的,接触的“特征强度”这一术语是指基于接触的一个或多个强度的接触的特征。在一些实施例中,特征强度基于多个强度样本。特征强度任选地基于相对于预定义事件(例如,在检测到接触之后,在检测到接触抬离之前,在检测到接触开始移动之前或之后,在检测到接触结束之前,在检测到接触的强度增大之前或之后和/或在检测到接触的强度减小之前或之后)而言在预先确定的时间段(例如,0.05秒、0.1秒、0.2秒、0.5秒、1秒、2秒、5秒、10秒)期间采集的预定义数量的强度样本或一组强度样本。接触的特征强度任选地基于以下各项中的一者或多者:接触强度的最大值、接触强度的均值、接触强度的平均值、接触强度的前10%处的值、接触强度的半最大值、接触强度的90%最大值等。在一些实施例中,在确定特征强度时使用接触的持续时间(例如,在特征强度是接触的强度在时间上的平均值时)。在一些实施例中,将特征强度与一组一个或多个强度阈值进行比较,以确定用户是否已执行操作。例如,该组一个或多个强度阈值可包括第一强度阈值和第二强度阈值。在本示例中,特征强度未超过第一阈值的接触导致第一操作,特征强度超过第一强度阈值但未超过第二强度阈值的接触导致第二操作,并且特征强度超过第二阈值的接触导致第三操作。在一些实施例中,使用特征强度和一个或多个强度阈值之间的比较来确定是否要执行一个或多个操作(例如,是否执行相应选项或放弃执行相应操作),而不是用于确定执行第一操作还是第二操作。
在一些实施例中,识别手势的一部分以用于确定特征强度。例如,触敏表面可接收连续轻扫接触,该连续轻扫接触从起始位置过渡并达到结束位置(例如拖动手势),在该结束位置处,接触的强度增大。在该示例中,接触在结束位置处的特征强度可仅基于连续轻扫接触的一部分,而不是整个轻扫接触(例如,仅结束位置处的轻扫接触的一部分)。在一些实施例中,可在确定接触的特征强度之前向轻扫手势的强度应用平滑化算法。例如,平滑化算法任选地包括以下各项中的一种或多种:不加权滑动平均平滑化算法、三角平滑化算法、中值滤波器平滑化算法和/或指数平滑化算法。在一些情况下,这些平滑化算法消除了轻扫接触的强度中的窄的尖峰或凹陷,以实现确定特征强度的目的。
下文描述的用户界面图(例如,图7A至图7Q)任选地包括各种强度图,这些强度图示出触敏表面上的接触相对于一个或多个强度阈值(例如,接触检测强度阈值IT0、轻按压强度阈值ITL、深按压强度阈值ITD和/或一个或多个其他强度阈值)的当前强度。该强度图通常不是所显示的用户界面的一部分,但是被提供以帮助解释所述图。在一些实施例中,轻按压强度阈值对应于这样的强度:在该强度下设备将执行通常与点击物理鼠标或触控板的按钮相关联的操作。在一些实施例中,深按压强度阈值对应于这样的强度:在该强度下设备将执行与通常与点击物理鼠标或触控板的按钮相关联的操作不同的操作。在一些实施例中,当检测到特征强度低于轻按压强度阈值(例如,并且高于标称接触检测强度阈值IT0,比标称接触检测强度阈值低的接触不再被检测到)的接触时,设备将根据接触在触敏表面上的移动来移动焦点选择器,而不执行与轻按压强度阈值或深按压强度阈值相关联的操作。一般来讲,除非另有陈述,否则这些强度阈值在不同组的用户界面附图之间是一致的。
在一些实施例中,设备对设备所检测到的输入的响应取决于基于输入期间的接触强度的标准。例如,对于一些“轻按压”输入,在输入期间超过第一强度阈值的接触的强度触发第一响应。在一些实施例中,设备对由设备所检测到的输入的响应取决于包括输入期间的接触强度和基于时间的标准两者的标准。例如,对于一些“深按压”输入,只要在满足第一强度阈值与满足第二强度阈值之间经过延迟时间,在输入期间超过大于轻按压的第一强度阈值的第二强度阈值的接触的强度便触发第二响应。该延迟时间的持续时间通常小于200ms(例如,40ms、100ms、或120ms,这取决于第二强度阈值的量值,其中该延迟时间随着第二强度阈值增大而增大)。该延迟时间帮助避免意外的深按压输入。又如,对于一些“深按压”输入,在达到第一强度阈值之后将出现敏感度降低的时间段。在该敏感度降低的时间段期间,第二强度阈值增大。第二强度阈值的这种暂时增大还有助于避免意外深按压输入。对于其他深按压输入,对检测到深按压输入的响应不取决于基于时间的标准。
在一些实施例中,输入强度阈值和/或对应输出中的一者或多者基于一个或多个因素(诸如用户设置、接触运动、输入定时、应用运行、施加强度时的速率、同时输入的数量、用户历史、环境因素(例如,环境噪声)、焦点选择器位置等)而变化。示例性因素在美国专利申请序列14/399,606和14/624,296中有所描述,这些美国专利申请全文以引用方式并入本文。
接触特征强度从低于轻按压强度阈值ITL的强度增大到介于轻按压强度阈值ITL与深按压强度阈值ITD之间的强度有时被称为“轻按压”输入。接触的特征强度从低于深按压强度阈值ITD的强度增大到高于深按压强度阈值ITD的强度有时称为“深按压”输入。接触特征强度从低于接触检测强度阈值IT0的强度增大到介于接触检测强度阈值IT0与轻按压强度阈值ITL之间的强度有时被称为检测到触摸表面上的接触。接触的特征强度从高于接触检测强度阈值IT0的强度减小到低于接触检测强度阈值IT0的强度有时被称为检测到接触从触摸表面抬离。在一些实施例中,IT0为零。在一些实施例中,IT0大于零在一些例示中,阴影圆或椭圆用于表示触敏表面上的接触的强度。在一些例示中,没有阴影的圆或椭圆用于表示触敏表面上的相应接触而不指定相应接触的强度。
在本文中所述的一些实施例中,响应于检测到包括相应按压输入的手势或响应于检测到利用相应接触(或多个接触)所执行的相应按压输入来执行一个或多个操作,其中至少部分地基于检测到该接触(或多个接触)的强度增大到高于按压输入强度阈值而检测到该相应按压输入。在一些实施例中,响应于检测到相应接触的强度增大到高于按压输入强度阈值来执行相应操作(例如,在相应按压输入的“向下冲程”上执行相应操作)。在一些实施例中,按压输入包括相应接触的强度增大到高于按压输入强度阈值以及该接触的强度随后减小到低于按压输入强度阈值,并且响应于检测到相应接触的强度随后减小到低于按压输入阈值来执行相应操作(例如,在相应按压输入的“向上冲程”上执行相应操作)。
在一些实施例中,设备采用强度滞后以避免有时称为“抖动”的意外输入,其中该设备以与按压输入强度阈值的预定义关系来定义或选择滞后强度阈值(例如,滞后强度阈值比按压输入强度阈值小X个强度单位,或滞后强度阈值是按压输入强度阈值的75%、90%或某个合理比例)。因此,在一些实施例中,按压输入包括相应接触的强度增大到高于按压输入强度阈值以及该接触的强度随后减小到低于对应于按压输入强度阈值的滞后强度阈值,并且响应于检测到相应接触的强度随后减小到低于滞后强度阈值来执行相应操作(例如,在相应按压输入的“向上冲程”上执行相应操作)。类似地,在一些实施例中,仅在设备检测到接触强度从等于或低于滞后强度阈值的强度增大到等于或高于按压输入强度阈值的强度并且任选地接触强度随后减小到等于或低于滞后强度的强度时才检测到按压输入,并且响应于检测到按压输入(例如,根据环境,接触强度增大或接触强度减小)来执行相应操作。
为了容易解释,任选地响应于检测到以下情况而触发对响应于与按压输入强度阈值相关联的按压输入或响应于包括按压输入的手势而执行的操作的描述:接触的强度增大到高于按压输入强度阈值、接触的强度从低于滞后强度阈值的强度增大到高于按压输入强度阈值的强度、接触的强度减小到低于按压输入强度阈值、或接触的强度减小到低于与按压输入强度阈值对应的滞后强度阈值。另外,在将操作描述为响应于检测到接触的强度减小到低于按压输入强度阈值而执行的示例中,任选地响应于检测到接触的强度减小到低于对应于并且小于按压输入强度阈值的滞后强度阈值来执行操作。如上所述,在一些实施例中,对这些操作的触发还取决于满足基于时间的标准(例如,在满足第一强度阈值和满足第二强度阈值之间已经过延迟时间)。
用户界面和相关联的过程
现在将注意力转向可在具有显示器、触敏表面和(任选地)用于检测与触敏表面的接触的强度的一个或多个传感器的电子设备诸如便携式多功能设备100或设备300上实现的用户界面(“UI”)和相关联的过程的实施例。
图7A至图7Q示出了根据一些实施例的用于通过输入对象的基于接近度的输入和基于接触的输入与用户界面对象进行交互的示例性用户界面。这些附图中的用户界面被用于示出下面描述的过程,包括图11A至图11D、图12A至图12C和图13A至图13E中的过程。
图7A至图7K示出了当输入对象(例如,手指或触笔)在悬停状态下横向移动时该输入对象将光标移动并定位在可选文本(例如,可编辑或不可编辑文本)内的过程,并且其中当输入对象在接触状态下横向移动时输入对象选择文本(例如,从当前光标位置扩展文本选择)。
在图7A中,用户界面(例如,用户界面730)显示在触摸屏112上。用户界面730包括可选文本732。当输入对象在这些附图中被示出为手指或手734(但另选地,其可以是触笔或触摸屏112可检测到接近度和接触的其他对象)高于距触摸屏112的阈值悬停距离(例如,距离514大于阈值悬停距离)时,在用户界面730中不显示对应于该输入对象的指示符。此时接触强度655为零,因为输入对象尚未与触摸屏112接触。
图7B示出了当输入对象(例如,手指或手734)在距触摸屏112的阈值悬停距离内时,指示符(例如,光标738)显示在触摸屏112上的位置701处的可选文本732内(例如,在与触摸屏112上的(x,y)位置504相对应的位置处)。在可选文本732内显示的指示符是向应用程序提供第一悬停事件(例如,“悬停开始”事件,如下所述)的结果。在一些实施例中,第一悬停事件是具有第一悬停阶段值的归一化触摸事件。位置701可与手指734的横向位置(x,y)位置504相同或偏离,并且任选地基于手指734的悬停距离(例如,由距离514表示)和/或位置状态(例如,倾斜)来确定该偏移量。在一些实施例中,除了光标738之外,设备100还在可选文本732上方显示放大镜(例如,放大镜736)。放大镜736显示在用户界面730中的光标738上方,并随光标738在用户界面730中移动。在放大镜736内,显示可选文本732的一部分的放大版本,并且根据光标738在可选文本732内的位置,在放大文本内的位置处还显示光标738的副本742。
图7C示出了当手指734在保持在悬停范围内的情况下相对于图7B所示的位置横向移动时,光标738根据手指734的横向移动在可选文本732内移动。光标738的移动是向应用程序提供的第二悬停事件(例如,“悬停变化”输入事件,即,具有“悬停变化”阶段的基于悬停的触摸事件,如下所述)的结果。在一些实施例中,第二悬停事件是具有第二悬停阶段值的归一化触摸事件。在包括放大镜736的实施例中,放大镜736随光标738移动并且显示文本732的更新部分和光标738的更新位置。图7C还示出了,在手指734的移动期间,悬停距离不必保持在恒定值,以便将光标738移动到可选文本732内。然而,在一些实施例中,“悬停变化”输入事件指示手指734的接近度(例如,悬停距离)以及位置的变化。
图7D示出了当手指734相对于图7B所示的位置横向移动到触摸屏112上的另一位置时,光标738移动到可选文本732内的新位置。在触摸屏112上检测到手指734的触摸按下(例如,手指734与触摸屏112之间的接触强度655高于接触检测阈值IT0)。关于触摸按下的信息作为第一接触事件被提供给应用程序。在一些实施例中,第一接触事件是具有第一接触阶段值(例如,触摸开始阶段值)的归一化触摸事件。在手指734在与触摸屏112接触的情况下横向移动之前,光标738在其可选文本732内的当前位置处显示。在包括放大镜736的实施例中,在光标738上方显示放大镜736。光标738的副本742周围的文本的放大版本在放大镜736内显示,并且光标738在可选文本732内的位置由放大镜中的光标738的副本742表示。
图7E示出了在手指734与触摸屏112接触之后,手指734在与触摸屏112保持接触的情况下横向移动。接触的移动使光标738在可选文本732内移动,并且光标738从其先前位置(例如,手指734在触摸屏112上触摸按下时的光标位置)到其当前位置的移动导致光标的先前位置和当前位置之间的文本的一部分被选择(例如,如选择740所示)。光标738的移动是向应用程序提供第二接触事件(例如,“触摸变化”输入事件,即,具有“触摸变化”阶段的基于接触的触摸事件,如下所述)的结果。在一些实施例中,第二接触事件是具有第二接触阶段值的归一化触摸事件。
随着光标738的移动随手指734与触摸屏112之间的接触的移动而继续,选择740根据光标738的移动而扩展或收缩(例如,作为附加“触摸变化”输入事件被提供给应用程序)。如图7E所示,选择740还在放大镜736内表示(例如,作为选择744)。
图7F示出了在移动手指734与触摸屏112之间的接触并通过移动光标738调整选择740的结束边界之后,检测到手指734的抬离(如图7F中的距离514大于零并且接触强度655等于零所示)。在一些实施例中,关于抬离的信息作为第三悬停事件被提供给应用程序。在一些实施例中,第三悬停事件是具有第二悬停阶段值(例如,“悬停变化”阶段值)的归一化触摸事件。
在从触摸屏112抬离之后,手指734再次悬停在触摸屏112上方。当手指734悬停在触摸屏112上方时,光标738从选择740脱离,并且在手指734在触摸屏112上方保持在悬停范围内时,随着手指734的横向移动在可选文本732内移动。如图7G所示,在一些实施例中,在检测到手指734与触摸屏112之间的接触的抬离之后,在文本732中保持选择740。放大镜继续随光标738移动,并且显示光标738的副本742周围的文本的放大版本。
图7H至图7I示出了当在新位置再次检测到手指734的触摸按下时,取消选择740(图7H中不再示出选择740)。光标738显示在新位置(例如,位置701),该新位置对应于手指734在触摸屏112上的触摸按下位置(例如,(x,y)位置504),如图7H所示。在图7I中,检测到手指734在触摸屏112上的横向移动,并且光标738从其先前位置(例如,图7H中手指734的第二触摸按下时光标738的位置)到其当前位置的移动,导致光标738的先前位置与当前位置之间的文本的一部分被选择(例如,如选择746所示)。放大镜736随光标738移动并显示当前文本选择(例如,由选择746的放大副本748表示)。
图7J示出了从触摸屏112的又一抬离,在此期间手指734再次悬停在触摸屏112上方。当手指734悬停在触摸屏112上方时,光标738从选择746脱离,并且在手指734在触摸屏112上方保持在悬停范围内时,随着手指734的横向移动在可选文本732内移动。如图7J所示,在一些实施例中,在检测到手指734与触摸屏112之间的接触的抬离之后,在文本732中保持选择746。放大镜继续随光标738移动,并且显示光标738的副本742周围的文本的放大版本。
图7K示出了当手指734被提升到悬停范围之外(例如,超过触摸屏112上方的阈值悬停距离)时,放大镜736被菜单750(例如,“剪切/复制/查找”菜单)替换,并且选择746改变外观(例如,用具有可调边界的选择对象752替换)。关于手指734被提升到悬停范围之外的信息作为第四悬停事件被提供给应用程序。在一些实施例中,第四悬停事件是具有第三悬停阶段值(例如,悬停结束阶段值)的归一化触摸事件。
图7L至图7P示出了与图7A至图7I所示相同的应用程序的示例,但该应用程序在非本地设备上运行(例如,具有与显示器分开的输入设备的设备)。在此类实施例中,基于悬停的输入事件和基于接触的输入事件是模拟触摸事件,或者被转换为模拟触摸事件,如本文档中其他地方所述。
为此,用户界面(例如,用户界面730)显示在电子设备的显示器702上。用户界面730是用于图7A至图7K中所示的应用程序的用户界面。然而,显示器702不是触敏显示器。相反,电子设备与鼠标704耦接,该鼠标控制显示在显示器702上的指针706的位置和移动。因此,在图7L至图7P中,应用程序对于正在执行该应用程序的计算机***的操作***框架不是本地的。应用程序接收从鼠标事件转换的模拟触摸事件,而不是直接解释鼠标事件。
显示器702还显示第二应用程序708的用户界面,该用户界面不同于该应用程序的用户界面730(例如,该应用程序和第二应用程序是不同的应用程序)。
图7L示出了移动鼠标704的用户输入710。响应于鼠标704的移动,如图7M所示,指针706在应用程序的用户界面730上方移动。当指针706在应用程序的用户界面730上方时,在没有致动鼠标按钮的情况下,设备向应用程序递送模拟悬停事件。这些悬停事件具有类似的阶段和所得的用户界面功能,如上文参考图7A至图7K所讨论的。例如,响应于悬停开始事件,如图7M所示(例如,当指针706最初进入用户界面730时),指针706被光标738替换,该光标类似于响应于参考图7A至图7K所述的悬停事件而放置的光标738。然而,因为显示器702可能大于便携式多功能设备上的触摸屏,所以在一些实施例中,不显示放大镜736(图7B)。
图7N示出了致动预定义鼠标按钮716(在本文中有时称为鼠标左键按钮716)的用户输入714(例如,用户输入714为鼠标左键点击并保持)。需注意,在一些情况下,输入设备不是鼠标,而是提供对指针/光标的间接操纵的触控板或其他触敏表面。例如,在一些情况下,代替用户输入714,用户输入在触控板上向下按压(例如,按压可按压触控板或具有高于对应于“点击”的预定义阈值的强度)。响应于鼠标左键点击并保持714,设备初始向应用程序递送模拟接触触摸事件(例如,触摸开始输入事件,即,具有“触摸开始”阶段的基于接触的触摸事件)。触摸开始输入事件由应用程序以与应用程序正在触摸屏设备上运行时的物理接触相同的方式处理(例如,如图7D所示)。即,设备开始突出显示所选择的文本。例如,当接收到鼠标左键点击并保持714时,光标738在初始位置处的外观被改变以指示文本选择的开始(例如,通过在光标738的顶部处示出同心圆)。
如图7N至图7O所示,只要模拟接触处于活动状态(例如,只要鼠标左键按钮716被按下),应用程序就响应于鼠标704的移动718来选择文本。注意,当用户输入714致动鼠标左键按钮716时,鼠标704的移动718导致“触摸变化”输入事件被递送到适当的视图(例如,当鼠标左键点击并保持开始时对应于指针738的位置的视图)。
图7P示出了用户已释放鼠标左键点击并保持714(在图7N至图7O中示出)。作为响应,设备开始提供基于悬停的输入事件并恢复显示指针706。例如,在释放鼠标左键点击并保持714之后的初始事件是悬停变化事件。
需注意,在一些实施例中,非本地应用程序不需要能够解释基于悬停的触摸事件。在一些实施例中,主机/事件转换器808(图8)如上所述向其正在服务的所有应用程序提供基于悬停的触摸事件(例如,提供模拟事件)。没有开发用于处理基于悬停的触摸事件的应用程序可能会忽略它们。
图7Q示出了当手指734从一个视图(例如,应用程序A的用户界面782)移动到不同的第二视图(例如,应用程序B的用户界面784)时触摸输入事件的提供。
在一些实施例中,当手指734位于位置788-a处(其中位置不与触摸屏112接触并且不在阈值悬停距离内(例如,不接近触摸屏112))时,设备不向任何视图提供触摸事件。
在一些实施例中,当设备初始检测到手指734在位置788-b处的阈值悬停距离内存在时,该设备提供具有悬停阶段值的第一触摸输入事件,该悬停阶段值指示接近但不接触触摸屏112的用户输入(例如,“悬停开始”阶段值指示接近但不接触触摸屏112的输入的开始)。在一些实施例中,将第一输入事件提供给对应于位置788-b的视图(例如,应用程序用户界面)(例如,基于用户输入的当前位置将悬停事件发送到视图,在该示例中,该视图将是应用程序A的视图782)。需注意,在一些实施例中,基于悬停的触摸事件被递送到光标/手指上方的任何视图,而(如下文进一步所述)基于接触的触摸事件被发送到对应于“触摸开始”位置(例如,初始发生接触的位置)的视图,即使光标/手指在不同视图上方移动。
在一些实施例中,当手指734在阈值悬停距离内,设备检测到手指734的位置变化(例如,接近度或位置,例如,从位置788-b到位置788-c)时,该设备提供具有悬停阶段值的第二触摸输入事件,该悬停阶段值指示接近但不接触触摸屏112的用户输入(例如,“悬停变化”阶段值指示对先前悬停触摸事件的接近度或位置的更新)。在一些实施例中,将第二输入事件提供给对应于位置788-c的视图(例如,应用程序用户界面)。
在一些实施例中,当设备检测到手指734在位置788-d处与触摸屏112的接触时,该设备提供具有接触阶段值的第三触摸输入事件,该接触阶段值指示与触摸屏112接触的用户输入(例如,“触摸开始”阶段值)。在一些实施例中,将第三输入事件提供给对应于位置788-d的视图(例如,应用程序用户界面)(例如,将“触摸开始”输入事件提供给对应于接触的初始位置的视图)。
在一些实施例中,当设备检测到手指734与触摸屏112的接触移动到位置788-e时,该设备提供具有接触阶段值的第四触摸输入事件,该接触阶段值指示与触摸屏112接触的用户输入(例如,指示对先前接触触摸事件的位置的更新的“触摸变化”阶段值)。在一些实施例中,将第四触摸输入事件提供给对应于位置788-d而不是位置788-e的视图(例如,应用程序用户界面)(例如,将“触摸变化”输入事件提供给对应于初始接触的位置的视图,例如,“触摸开始”事件)。
在一些实施例中,当手指734的位置788-f在阈值悬停距离内,设备检测到手指734与触摸屏112的接触的抬离时,该设备提供第五触摸输入事件。在一些实施例中,第五触摸输入事件具有“触摸结束”阶段值,并且任选地,将第五触摸输入事件提供给与先前基于接触的触摸事件相同的视图。在一些其他实施例中,第五触摸输入具有“悬停变化”阶段值,并且任选地,将第五触摸输入事件提供给对应于位置788-f的视图(例如,应用程序用户界面)(例如,与其他悬停事件一样,将第五触摸输入事件提供给对应于悬停事件的位置的视图)。在一些实施例中,当手指734的位置788-f在阈值悬停距离内时根据设备检测到手指734与触摸屏的接触的抬离,该设备提供两个触摸输入事件:A)具有“触摸结束”阶段值的触摸输入事件,该触摸输入事件被提供给与先前基于接触的触摸事件相同的视图,在该示例中为应用程序A的用户界面视图782;以及B)具有“悬停变化”阶段值的另一触摸输入事件,该触摸输入事件被提供给对应于位置788-f的视图(例如,应用程序用户界面),在该示例中为应用程序B的用户界面的视图784。
在一些实施例中,当设备初始检测到手指734不再处于位置788-g处的阈值悬停距离内时,该设备提供具有悬停阶段值的第六触摸输入事件,该悬停阶段值指示悬停输入结束(例如,“悬停结束”阶段值)。在一些实施例中,将第六输入事件提供给对应于位置788-g的视图(例如,应用程序用户界面)(例如,基于用户输入的当前位置将悬停事件发送到视图)。在一些实施例中,将“悬停结束”输入事件(例如,具有“悬停结束”阶段值的基于悬停的触摸事件)发送到紧接在前的事件被发送到的视图(例如,以通知那些视图用户输入已经结束)。
图8是根据一些实施例的用于具有显示器和与该显示器分开的一个或多个输入设备802的示例性设备(例如,图3中的设备300)的输入/输出处理栈800的图示。应当理解,输入/输出处理栈的层之间的划分通常是任意的,并且仅出于解释的目的而被呈现。
输入/输出处理栈800允许一些应用程序在这些应用程序非本地的设备上执行。具体地讲,输入/输出处理栈800允许触摸屏操作***框架本地的应用程序812在依赖于或利用来自不是触摸屏的***输入设备的输入事件的操作***框架上执行。
为此,在输入/输出处理栈800的基底层处提供了一个或多个输入设备802。输入设备802与显示器分开(例如,不是触摸屏)。在一些实施例中,输入设备802包括鼠标、滚轮(例如,鼠标的部件)、键盘和/或与显示器分开的触敏表面(例如,独立触摸板)中的一者或多者。
驱动器或一组驱动器从输入设备802接收并处理输入数据801。与驱动器进行通信的操作***804处理从这些驱动器接收的原始输入数据。在一些实施例中,驱动器可被认为是操作***804的一部分。
第一组应用编程接口(API)806(例如,与操作***相关联)与操作***804进行通信。在一些实施例中,第一组API 806也被认为是操作***804的一部分。第一组API 806包括被设计用于由被开发用于在设备上运行的应用程序使用的一组API。例如,第一组API806包括用于将来自输入设备802的输入事件805提供给在设备上运行的应用程序(例如,文字处理应用程序、web浏览器)的API。
输入/输出处理栈800包括主机/事件转换器808。在一些实施例中,主机/事件转换器808是在输入/输出栈800的与用户可用的其他本地应用程序(例如,文字处理应用程序、web浏览器)相同的层处运行的应用程序。然而,与第一组API 806进行交互的大多数其他应用程序不同,主机事件翻译器808充当一种服务,该服务弥合了操作***804与非操作***804本地的应用程序812之间(例如,已经为不同操作***(例如针对不同的操作***(例如,使用不同的输入设备,诸如触摸屏)开发的)的差距。为此,主机/事件转换器从输入设备802接收由第一组API 806提供的输入事件805,并且在一些实施例中,将输入事件转换为应用程序812能够解释的模拟触摸事件809。第二组API 810使模拟触摸事件809对应用程序812可用(例如,第二组API 810包括与应用程序812期望在其本地框架中具有可用性的那些API类似的API)。
图9A至图9B示出了根据一些实施例的用于向应用程序提供触摸输入事件(包括基于悬停和基于接触的输入事件)的示例性数据结构。
图9A示出了根据一些实施例的用于“触摸事件”902(例如,具有接触或悬停阶段的事件)的示例性数据结构。图9B示出了根据一些实施例的用于“滚动事件”的示例性数据结构。在一些情况下,基于触摸的输入事件809由没有从触摸屏接收到的用户输入生成(例如,基于触摸的输入事件是模拟基于触摸的输入事件)。然而,更一般地,基于触摸的输入事件809适用于本地操作***框架(例如,在具有触摸屏的设备和被设计为在具有触摸屏的设备上运行的操作***上)以及非本地操作***框架(例如,在具有与显示器分开的***输入设备的设备上)两者。在后一种情况下,在一些实施例中,基于触摸的输入事件809由主机/事件转换器(例如,图8中的主机/事件转换器808)提供。
为此,触摸事件902是用于基于触摸的输入事件809的示例性数据结构,该输入事件包括触摸(例如,如本文所用的术语“触摸”包括与触敏显示器的接触以及接近但不接触触敏显示器的输入)。
触摸事件902包括触摸标识符904。如操作***(例如,图8中的操作***804)所确定的,对于作为相同用户输入(例如,手势)的一部分的所有输入事件,共享触摸标识符904的值(例如,相同)。
在一些实施例中,触摸事件902包括触敏表面上的一个或多个触摸的一个或多个位置906的列表。在一些实施例中,这些触摸是模拟触摸,并且触敏表面是虚拟触敏表面(例如,触敏表面在物理上不存在,但是尽管显示器不是触摸屏,但是设备将来自与显示器分开的***设备的用户输入事件解释为显示器上的触摸输入)。在一些实施例中,每个触摸(模拟的或非模拟的)在位置列表中具有对应的位置906。在一些实施例中,位置906包括对应于触敏表面上的坐标的二维(例如,(x,y))位置。在一些实施例中,位置906包括三维(例如,(x,y,z))坐标,其中第三(例如,“z”)坐标表示相对于触敏表面(例如,用于悬停阶段)的距离(例如,在其上方,或者如果为零或其他默认值,则与之接触)。
触摸事件902包括触敏表面上的一个或多个触摸的阶段值908的列表。在一些实施例中,每个触摸(模拟的或非模拟的)在阶段值列表中具有对应的阶段值908。
每个阶段值908指示对应的触摸输入的特定阶段,有时称为触摸输入的当前阶段。触摸事件902的阶段字段可以采用各种预定义值,诸如:“触摸开始”阶段值,该阶段值指示被定义的事件是与触敏表面的初始接触;“触摸变化”阶段值,该阶段值指示被定义的事件是对先前触摸事件的更新,其位置已经从由先前触摸事件定义的位置移动;“触摸结束”阶段值,该阶段值指示与触敏表面的接触已结束(例如,用户已将他/她的手指从触敏表面抬起),或其他阶段值。
此外,在一些实施例中,这些阶段值包括一个或多个悬停阶段值,指示接近但不接触触敏表面的输入的特性。
在一些实施例中,该一个或多个悬停阶段值包括“悬停开始”阶段值,该阶段值指示被定义的事件是对接近但不接触触敏表面的输入的初始检测(例如,指示手指或触笔已经在触敏表面的阈值距离内移动)。如下所述,当触摸是模拟触摸时,其他用户界面事件可以触发到具有触摸开始阶段的触摸事件902的转换(例如,图8中的通过主机/事件转换器808),诸如鼠标指针在相应视图上移动。
在一些实施例中,该一个或多个悬停阶段包括“悬停变化”阶段,该阶段指示接近触敏表面的变化或在触敏表面上方的位置变化(例如,其中位置如上所述)。
在一些实施例中,该一个或多个悬停阶段包括“悬停结束”阶段,该阶段指示不再检测到接近或接触触敏表面的输入。
此外,对于模拟触摸输入事件,触摸事件902任选地包括来自或引用从其生成模拟触摸输入事件的一个或多个本地输入事件801/805(例如,来自***输入设备的输入事件)的信息。例如,触摸事件902任选地包括指示在接收到输入时处于活动状态的修改符(例如,诸如按下的键盘按钮)的子事件。
需注意,图9A至图9B中的子事件801/805的参考标号仅旨在指示不同的子事件可源自栈的不同层。在一些实施例中,不同的子事件可源自栈的相同层。此外,栈(例如,图8中的输入/输出处理栈800)可以利用没有参考图8描述的附加事件结构。
以下段落提供了从与显示器分开的输入设备转换(例如,模拟)的输入事件的若干具体示例,以及它们的所得数据结构和子事件。因此,基于触摸屏的应用程序可处理模拟触摸事件,如图这些触摸事件是从触摸屏接收的一样。
转换为模拟触摸接触事件的鼠标左键点击
在一些实施例中,与显示器分开的***设备上的预定义按钮(例如,物理按钮)的致动被转换为具有接触阶段(例如,指示与显示器接触)的触摸事件。触摸事件包括对应于鼠标指针在显示器上的位置的位置信息。例如,鼠标左键点击(例如,在与显示器分开的物理鼠标上)被转换为对应于与显示器接触的手指或触笔的触摸事件(尽管实际上显示器不是触敏的)。当操作***804(图8)中的驱动器接收到鼠标左键点击时,该操作***生成数字化仪/指针事件805,该数字化仪/指针事件具有基于在接收到鼠标左键点击时鼠标指针的位置的(x,y)坐标。此处,术语“数字化仪”是指物理数字化仪的软件类似物,其为触摸屏的部件。数字化仪/指针事件805包括提供可从中确定触摸标识符904的上下文信息的子事件801,以及包括关于在鼠标左键点击时哪些修改符(例如,键盘按钮)(如果有的话)处于活动状态的信息的子事件。主机/事件转换器将数字化仪/指针事件805转换为具有“触摸开始”阶段的触摸事件。触摸事件包括作为子事件的数字化仪事件(其本身可包括附加子事件)。
在预定义按钮被致动时移动所显示的指针的输入事件被转换为具有“触摸变化”阶段的触摸事件。在一些实施例中,具有“触摸变化”阶段的输入事件被提供给接收对应的初始“触摸开始”输入事件的相同视图。因此,用户可点击鼠标并将光标拖动到视图之外,并且输入事件仍然被递送到视图。
转换为模拟触摸-悬停事件的鼠标移动
在一些实施例中,将移动所显示的指针的输入事件转换为具有悬停阶段的触摸事件(例如,当上述预定义接触输入按钮没有被致动时,在这种情况下,移动(例如,鼠标的移动)被转换为接触的移动)。如上所述,悬停阶段指示接近但不接触显示器的输入(尽管事实上显示器对接近但不接触显示器的输入不敏感)。以与上述“转换为模拟触摸接触事件的鼠标左键点击”类似的方式处理具有悬停阶段的转换的触摸事件的坐标。
例如,在一些实施例中,在显示器上移动指针的鼠标的移动被转换为具有悬停阶段的触摸事件(例如,“悬停事件”,也称为“触摸-悬停事件”,以表示在一些实施例中,使用同样用于接触事件的归一化数据结构来递送悬停事件)。悬停阶段是“悬停开始”阶段还是“悬停变化”阶段取决于悬停事件是否为递送到相应视图的初始悬停事件。例如,当鼠标在视图上方移动指针(例如,没有按压鼠标按钮)时,提供给视图的初始事件是具有“悬停开始”阶段的悬停事件。鼠标在相应视图内的后续移动被递送到相应视图作为“悬停变化”事件。
在一些实施例中,悬停事件被递送到对应于其当前位置(例如,指针在显示器上的当前位置)的视图。因此,当鼠标指针从一个视图移动到不同视图时,具有在不同视图内的位置的悬停事件被提供给不同视图。
转换为模拟多点触摸输入事件的放大和缩放输入
在一些实施例中,与显示器分开的设备上的一个或多个用户输入被转换为模拟多点触摸输入事件(例如,指示多个模拟触摸)。在一些实施例中,在显示器的相应视图上方显示指针对象,并且模拟多个模拟触摸以具有在相应视图上方(例如,在显示器上指针对象的位置处)的质心。
例如,在一些实施例中,在独立键盘上按下“control”按钮时,包括鼠标滚轮的致动的用户输入被转换为在显示器上的指针位置处具有质心的多点触摸捏合手势(例如,捏合缩放手势)。
又如,在一些实施例中,在与显示器分开的触敏表面(例如,触摸板)上接收的多点触摸手势被转换为显示器上的模拟多点触摸手势。例如,在与显示器分开的触敏表面上接收的多点触摸捏合手势(例如,捏合缩放手势)被转换为显示器上的模拟捏合手势。又如,在与显示器分开的触敏表面上的多点触摸旋转手势(例如,两指扭转手势)被转换为显示器上的模拟多点触摸旋转手势。在一些情况下,模拟多点触摸手势的各个触摸与在与显示器分开的触敏表面上接收的实际触摸具有不同的特性(例如,与实际触摸的位置不同,但质心相同,位于实际触摸和模拟多点触摸手势的各个触摸两者的中点或质心)。在一些实施例中,如图9A所示,模拟触摸事件包括对实际触摸事件(例如,“手指”)的引用(例如,子事件)。
转换为模拟基于触摸的滚动事件的滚动事件
图9B示出了根据一些实施例的用于基于触摸的“滚动事件”910的示例性数据结构。滚动事件910类似于触摸事件902,但有以下差异。这样通过“滚动”类型912来识别滚动事件910。滚动事件910任选地包括阶段(例如,用于当从触敏表面接收到滚动事件时)。在一些实施例中,基于触摸的滚动事件不包括位置(例如,(x,y)字段),因此转换(例如,模拟)的滚动事件包括指示指针在显示器上所显示的位置的指针子事件801,从而允许滚动事件被路由到正确的视图。滚动事件通常包括一个或多个增量位置字段,而不是位置字段(例如,具有表示在第一方向上滚动的量值的值“dx”和表示在垂直于第一方向的第二方向上滚动的量值的值“dy”)。
在一些实施例中,将来自滚轮的多个滚动事件转换为模拟基于触摸的滚动事件910。在一些实施例中,模拟基于触摸的滚动事件对应于模拟单个接触在触敏显示器上的移动。低于应用程序812的输入/输出处理栈800的层(图8)确定来自滚轮的哪些滚动事件是单个用户输入的一部分。
图10是根据一些实施例的合并来自独立事件流的输入事件(例如,解复用)然后向应用程序提供合并的用户输入事件的输入/输出处理栈1000的图示。
输入/输出处理栈1000类似于输入/输出处理栈800(图8),但有以下差异。
操作***804根据从与设备耦接的一个或多个输入设备802接收的用户输入生成多个独立事件流。在一些实施例中,操作***804根据从单个输入设备802-a接收的用户输入生成多个独立事件流。例如,输入设备802-a可以是鼠标,该鼠标接收移动所显示的指针/光标(例如,图7L至图7P中的指针706/光标738)的位置的用户输入。鼠标包括可激活(例如,可按压)的鼠标按钮(例如,图7N中的鼠标左键按钮716)。操作***804基于用户对鼠标的移动(例如,移动指针/光标)来生成第一事件流,并且基于鼠标按钮的致动来生成独立第二事件流。
在一些实施例中,设备与多个输入设备(例如,输入设备802-a和802-b)耦接。例如,可选的输入设备802-b是与设备耦接的键盘,并且操作***804生成对应于键盘上的各个按键的致动的事件流。
在一些实施例中,操作***804将独立事件流复用成复用事件流1002(例如,事件队列)。例如,通常经由第一组API 806(图8)将事件队列中的输入事件1005提供给本地应用程序。事件1005-a和1005-c是来自第一事件流(例如,标记为I型)的事件,并且事件1005-b和1005-d是来自第二独立事件流(例如,标记为II型)的事件。
在一些实施例中,主机/事件转换器808对复用事件流进行解复用(例如,合并来自多个独立事件流的信息以生成合并的输入事件流)。例如,对应于所显示的指针的位置的信息(例如,从鼠标移动输入确定)与对应于可激活鼠标按钮的致动的信息合并以创建合并的事件1007。在一些实施例中,对应于所显示的指针的位置的信息位于指向回第一复用事件的子事件中(例如,事件1005-a是事件1007的子事件)。在一些实施例中,对应于激活的鼠标按钮的致动的信息位于指向回第二复用事件的子事件中(例如,事件1005-b也是子事件1007)。
在一些实施例中,合并的事件1007是模拟触摸输入事件(例如,具有参考图9A描述的事件809的结构的输入事件)或模拟基于触摸的滚动事件(例如,具有参考图9B描述的事件809的结构的输入事件)。另选地,在一些实施例中,随后将合并的事件转换为模拟触摸输入事件或模拟基于触摸的滚动事件(例如,在输入/输出栈中存在另一处理层)。
图11A至图11D示出了根据一些实施例的用于向应用程序提供模拟触摸事件的方法1100的流程图。方法1100在具有显示器的电子设备(例如,图3中的设备300)处执行。电子设备包括与显示器分开的输入设备或与该输入设备耦接。在一些实施例中,与显示器分开的输入设备是触敏表面。上文讨论了与显示器分开的输入设备的其他示例。在一些实施例中,电子设备包括一个或多个传感器以检测触敏表面上方的输入对象(例如,手指或触笔)的接近度(例如,接近传感器(诸如红外传感器),触敏表面中的电容传感器,或触敏表面旁边的相机),和/或一个或多个传感器以检测输入对象与触敏表面的接触强度。在一些实施例中,与显示器分开的输入设备不是触敏表面(例如,尽管设备还可任选地包括触敏表面或与触敏表面耦接)。方法1100中的一些操作任选地被组合,并且/或者一些操作的次序任选地被改变。为简单起见,参***300来描述方法1100。
便携式多功能设备(例如,图1A至图1B中的设备100)和膝上型计算机(例如,图3中的设备300)通常使用完全不同的输入设备。例如,便携式多功能设备(例如,智能电话或平板电脑)可包括触摸屏,而膝上型计算机可包括与显示器分开的物理键盘、鼠标和/或触敏表面。结果是设备的操作***(例如,图8的第一组API 806)向设备的应用程序提供的输入事件在很大程度上取决于设备所包括的输入设备的类型。为此,通常为特定类型的设备(例如,具有触摸屏的便携式多功能设备)开发软件应用程序,并且不容易将其移植到不同的操作***上。相反,应用程序开发人员必须为在不同类型的设备上运行的不同操作***重新编写软件。
方法1100允许为第一操作***框架(例如,触摸屏框架)开发的第一应用程序解释来自第二操作***框架(例如,其中在与显示器分开的输入设备处接收用户输入的框架)的输入事件。在一些实施例中,方法1100将来自与显示器分开的一个或多个输入设备的用户输入转换为第一应用程序能够解释的模拟触摸事件。在一些实施例中,该转换发生在第二操作***框架本地的第二应用程序处。第二应用程序是充当第一应用程序的主机的输入事件转换器。这样,第二应用程序充当输入/输出处理栈(例如,图8中的主机/事件转换器808、栈800)中的添加层。因此,方法1100解决了如何将不同类型的用户输入事件传送到期望(例如,被配置为接收)触摸屏输入的应用程序的问题,这增加了被配置为从与实际在其上执行应用程序的电子设备的硬件(例如,输入设备)不同的硬件接收输入的应用程序的跨平台兼容性。
设备300在显示器上同时显示(1102)用户界面,该用户界面包括第一应用程序的表示,该第一应用程序包括多个用户界面对象和指针对象(例如,所显示的指针或光标)。例如,图7L示出了用于显示可选文本732以及若干按钮(例如,“备忘录”、“完成”)的用户界面730。此外,在图7L中,显示指针706。
在一些实施例中,输入设备是(1104)鼠标(例如,图3中的键盘/鼠标350;图7L至图7P中的鼠标704)。在一些实施例中,输入设备是滚轮(例如,作为图3的键盘/鼠标350或图7L至图7P的鼠标704的一部分的滚轮)。在一些实施例中,输入设备是键盘(例如,键盘/鼠标350,图3)。在一些实施例中,输入设备是与显示器分开的触摸板(例如,图6B中的触敏表面651)。将来自这些设备中的任一个设备的用户输入事件转换为模拟触摸输入增加了基于触摸屏的应用程序与不同硬件***的跨平台兼容性。
在同时显示第一应用程序的表示和指针对象时,设备300在与显示器分开的输入设备处接收(1106)指向用户界面中显示指针对象的相应位置(例如,视图坐标空间中的位置)的用户输入事件。在一些实施例中,使用存储的状态信息来确定对应的用户界面位置;对于鼠标和键盘输入事件,随着鼠标移动或某些按键被按压,更新所存储的位置信息,并且对于触控板输入,状态信息包括原点或偏移以及标度。
响应于检测到用户输入事件(1108),根据确定用户界面中显示指针对象的相应位置在第一应用程序的表示上方,设备300执行操作1110至1126或其子集。
在一些实施例中,设备300根据用户输入事件生成(1110)数字化事件,该数字化事件包括用户界面中显示指针对象的位置,并且将该数字化事件转换为模拟触摸事件。在一些实施例中,生成数字化事件是由输入/输出处理栈的相应层(例如,由包括在图8的操作***804中的驱动器)执行的第一用户输入处理操作。
在一些实施例中,第一用户输入处理操作生成数字化事件,该数字化事件被配置为由被配置为在第一操作***框架(例如,膝上型计算机的操作***框架)中执行的应用程序使用,并且模拟触摸事件被配置为由被配置为在不同于第一操作***框架的第二操作***框架(例如,智能电话或平板电脑的操作***框架)中执行的应用程序使用。将第一操作***框架的数字化事件转换为第二操作***框架的模拟触摸事件增加了应用程序的交叉兼容性。
在一些实施例中,数字化事件包括(1112)指针事件,该指针事件与用户界面中显示指针对象的相应位置配对或具有对应于该相应位置的位置信息。例如,在一些实施例中,指针事件(例如,通常可通过图8的第一组API 806获得的指针事件)是数字化事件的子事件。在一些实施例中,数字化事件由指针事件生成(1114),该指针事件与用户界面中显示指针对象的相应位置配对或具有对应于该相应位置的位置信息(例如,指针事件不是数字化事件的子事件,而是用于确定数字化事件中的位置字段的值)。在一些实施例中,生成数字化事件包括将用户界面中显示指针对象的相应位置与数字化事件的数据结构相关联。
设备300向第一应用程序提供(1116)描述模拟触摸事件的信息,该信息包括描述用户界面中的一个或多个模拟触摸的位置的信息(例如,通过图8的第二组API 810)。
在一些实施例中,该一个或多个模拟触摸在用户界面中显示指针对象的相应位置处具有(1118)质心。例如,在一些实施例中,如上所述,与显示器分开的输入设备上的输入被转换为用于触摸屏的多点触摸手势(捏合缩放或旋转手势)。在一些实施例中,来自与显示器分开的触敏表面上的多点触摸手势的输入事件被转换为用于触摸屏的多点触摸手势。在任一种情况下,模拟多点触摸手势的模拟触摸,以便使质心位于所显示的指针对象的位置处。生成在指针对象的位置处具有质心的模拟多点触摸手势允许来自非触摸屏输入设备的用户输入事件用于基于触摸屏的应用程序,从而增加基于触摸屏的应用程序的跨平台兼容性。
在一些实施例中,模拟触摸事件包括(1120)多个字段,该多个字段具有包括对应于用户界面中的相应位置的位置信息的信息,以及从预定义阶段值集合中选择的阶段值,该预定义阶段值集合包括至少指示模拟触摸的开始阶段的第一预定义阶段值以及指示模拟触摸事件是对先前模拟触摸事件的更新的第二预定义阶段值。在一些实施例中,该预定义阶段值集合包括(1122)至少第三预定义阶段值,所述第三预定义阶段值指示悬停阶段,该悬停阶段指示接近但不接触显示器的模拟触摸。提供包括悬停阶段值的触摸事件增加了可能的用户输入的范围(例如,通过打开包括悬停阶段和接触阶段的单个手势的可能性),从而减少了执行操作所需的输入的数量并增强了设备的可操作性。
在一些实施例中,设备向第一应用程序提供描述多个模拟触摸事件的信息,有时称为模拟触摸事件序列。模拟触摸事件各自包括具有触摸标识符字段的字段,并且为单个手势的多个模拟触摸事件(例如,序列)分配触摸标识符字段的相同值。例如,分配相同触摸标识符值的模拟触摸事件的序列可以对应于模拟单个手指相对于显示器移动的移动,从模拟单个手指接近但不接触显示器的移动开始,之后是模拟单个手指在与显示器接触时的移动,并且任选地之后是模拟单个手指从显示器抬离,并且随后是模拟单个手指接近但不接触显示器的移动。上文参考图7Q描述了此类模拟触摸事件序列的示例。
在一些实施例中,输入设备包括(1124)按钮(例如,触控板、鼠标或其他输入设备的可按压部分)。用户输入事件包括按钮状态的变化(例如,图7N至图7O中的鼠标左键点击并保持714)。根据按钮状态的变化,模拟触摸事件具有指示模拟触摸的开始阶段的第一预定义阶段值(例如,如参考图7N所述,响应于鼠标左键点击并保持714的开始,模拟“触摸开始”输入事件被递送到应用程序)。
在一些实施例中,设备300在显示器上显示(1126)由第一应用程序响应于描述模拟触摸事件的信息而确定的第一应用程序的表示的变化(例如,设备显示对模拟触摸事件的响应,诸如文本的选择或放置光标,如参考图7L至图7P所述)。
在一些实施例中,按钮状态的变化包括(1128)该按钮的激活。在一些实施例中,在显示指针对象时,设备300在与显示器分开的输入设备处接收(1130)包括按钮的停用的第二用户输入事件。响应于检测到第二用户输入事件,设备300向第一应用程序提供描述具有阶段值的第二模拟触摸事件的信息,该阶段值指示第二模拟触摸事件对应于模拟触摸事件的结束。例如,如参考图7N至图7O所述,鼠标左键点击并保持714的释放作为模拟“触摸结束”输入事件被递送到应用程序。将按钮激活转换为模拟触摸事件允许为触摸屏***开发的应用程序与不是触摸屏的***设备兼容。
在显示指针对象时,设备300在与显示器分开的输入设备处接收(1132)将指针对象从相应位置移动到显示器上的第三位置的第三用户输入。响应于检测到第三用户输入事件,设备300向第一应用程序提供描述具有第二预定义阶段值的第三模拟触摸事件的信息,该第二预定义阶段值指示第三模拟触摸事件是对模拟触摸事件的更新。例如,在一些实施例中,在预定义按钮没有被致动时移动指针对象的用户输入导致向应用程序提供“悬停变化”输入事件,而在预定义按钮被致动时移动指针对象的用户输入导致“触摸变化”输入事件。
在一些实施例中,在显示指针对象时,设备300在与显示器分开的输入设备处接收(1134)指向显示指针对象的第三位置的第四用户输入事件,该第三位置对应于不同于第一应用程序的相应应用程序的表示。响应于检测到第四用户输入事件:根据确定相应应用程序被配置为在第一操作***框架中执行,设备300向该相应应用程序提供描述第四模拟触摸事件的信息,该信息包括描述一个或多个附加模拟触摸的位置的信息;以及根据确定相应应用程序没有被配置为在第一操作***框架中执行(例如,根据确定相应应用程序被配置为在不同于第一操作***框架的第二操作***框架中执行),设备300放弃向该相应应用程序提供描述模拟触摸事件的信息(例如,设备300提供本地、未转换的用户输入事件而不是模拟触摸事件)。仅当应用程序被配置为接收触摸事件时才提供模拟触摸事件允许被配置为接收不同类型的输入事件的应用程序利用相同的硬件进行操作。
在一些实施例中,该输入设备是(1136)第一输入设备。该模拟触摸事件是具有预定义事件类型和字段集合的归一化触摸事件(例如,图9A的触摸事件902和/或图9B的触摸事件910)。
在一些实施例中,设备300在第二输入设备处接收(1138)第五用户输入事件。响应于检测到第五用户输入事件,设备300向第一应用程序描述第五模拟触摸事件的信息,该第五模拟触摸事件是具有与模拟触摸事件相同的预定义事件类型和字段集合的归一化触摸事件。因此,来自多个***设备的用户输入可被转换为模拟触摸屏显示器上的模拟触摸事件,从而允许为触摸屏开发的应用程序接收来自两个或更多个输入设备(诸如鼠标、键盘、触控板、轨迹球等中的不止一者)的输入。
在一些实施例中,输入设备是(1140)与显示器分开的多个输入设备中的相应输入设备(例如,电子设备具有与显示器分开的多个输入设备,并且该输入设备是那些输入设备中的一个输入设备)。用户输入事件是从与显示器分开的多个输入设备接收的多个用户输入事件中的第一用户输入事件。
在一些实施例中,设备300根据多个用户输入事件生成(1142)多个独立事件流。设备300合并来自该多个事件流的信息以生成合并的用户输入事件流,其中描述模拟触摸事件的信息包括描述合并的用户输入事件流的信息。上文参考图10描述了独立事件流的生成,并且下文参考图12A至图12C的方法1200更详细地描述了事件流的合并(例如,解复用)。
应当理解,对图11A至图11C中的操作进行描述的特定次序仅为示例性的,并非旨在表明所述次序是可以执行这些操作的唯一次序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当注意,本文关于本文所述的其他方法(例如,方法1200和方法1300)描述的其他过程的细节同样以类似的方式适用于上文相对于图11A至图11D描述的方法1100。例如,上文参考方法1100所述的接触、手势、输入设备、指针事件、触摸事件、模拟触摸事件、事件流、用户界面特征、强度阈值、位置指示符和数据结构任选地具有本文参考本文所述的其他方法(例如,方法1200和1300)描述的接触、手势、输入设备、指针事件、触摸事件、模拟触摸事件、事件流、用户界面对象、强度阈值、位置指示符和数据结构的特性中的一者或多者。为了简明起见,此处不再重复这些细节。
上述信息处理方法中的操作任选地通过运行信息处理装置中的一个或多个功能模块来实现,该信息处理装置诸如为通用处理器(例如,如以上相对于图3所描述的)或特定于应用的芯片。
以上参考图11A至图11D所述的操作任选地由图1A至图1B和/或图3中描绘的部件来实现。例如,提供操作1116和显示操作1126任选地由事件分类器170、事件识别器180和事件处理程序190来实现。事件分类器170中的事件监视器171检测用户输入,并且事件分配器模块174将事件信息递送到应用程序136-1。应用程序136-1的相应事件识别器180将事件信息与相应事件定义186进行比较,并且确定触敏表面上第一位置处的第一接触(例如,模拟接触)是否与预定义事件或子事件相对应,预定义事件或子事件诸如为对用户界面上的对象的选择。当检测到相应的预定义事件或子事件时,事件识别器180激活与该事件或子事件的检测相关联的事件处理程序190。事件处理程序190任选地利用或调用数据更新器176或对象更新器177来更新应用程序内部状态192。在一些实施例中,事件处理程序190访问相应GUI更新器178来更新应用程序所显示的内容。类似地,本领域的普通技术人员会清楚地知道可如何基于图1B和/或图3中描绘的部件来实现其他过程。
图12A至图12C示出了根据一些实施例的合并来自独立事件流的输入事件并向应用程序提供合并的输入事件的方法1200的流程图。方法1200在具有显示器的电子设备(例如,图3中的设备300)处执行。电子设备包括与显示器分开的输入设备或与该输入设备耦接。在一些实施例中,与显示器分开的输入设备是触敏表面。在一些实施例中,电子设备包括一个或多个传感器以检测触敏表面上方的输入对象(例如,手指或触笔)的接近度(例如,接近传感器(诸如红外传感器),触敏表面中的电容传感器,或触敏表面旁边的相机),和/或一个或多个传感器以检测输入对象与触敏表面的接触强度。在一些实施例中,与显示器分开的输入设备不是触敏表面(尽管设备还可任选地包括触敏表面或与触敏表面耦接)。方法1200中的一些操作任选地被组合,并且/或者一些操作的次序任选地被改变。为简单起见,参***300来描述方法1200。
通过使用不同手势,具有触敏显示器(例如,触摸屏)的设备能够解释广泛范围的用户输入。例如,触摸屏上的单指或双指轻扫可被解释为滚动手势,而双指捏合可被解释为缩放手势。包括与显示器分开的输入设备的设备(例如,***设备)同样能够消除广泛范围的用户输入的歧义,但这样做会带来附加挑战。例如,虽然手势的消歧通常限于解释来自单个输入设备(例如,触摸屏)的用户输入,但是来自一个***输入设备(例如,与显示器分开的鼠标、键盘或触摸板)的用户输入通常由来自不同***输入设备的用户输入进行修改。例如,滚轮的致动在独立键盘上的“control”按钮被按下时可导致缩放,并且在键盘上的“control”按钮没有被按下时可导致滚动。
来自一个输入设备的用户输入可被来自不同用户输入设备的用户输入进行修改的事实提出了知道输入事件何时相关并且应一起解释的问题。由于触摸屏设备很少面临这一挑战,所以对于已经为触摸屏开发但仍然在具有与显示器分开的输入设备的设备上执行的应用程序,此问题尤为严重(例如,如上文参考方法1100所述)。方法1200通过在向应用程序提供输入事件之前合并(例如,解复用)来自独立事件流的输入事件为单个合并的输入事件来解决该问题。因此,在一些实施例中,确定哪些输入事件相关的过程从软件应用程序(其可能已由第三方开发)移动(例如,委托)到主机或操作***,该主机或操作***更适于确定哪些输入事件相关。以这种方式合并输入事件的结果是第三方应用程序以更高的一致性来解释输入事件。对于为触摸屏框架开发的应用程序,方法1200通过解决触摸屏应用程序(即,被配置为从触摸屏接收输入的应用程序)的开发人员很少在其本地框架中必须考虑的问题来增加跨平台兼容性。
为此,设备300在显示器上显示(1202)应用程序的用户界面,并且在与显示器分开的一个或多个输入设备处接收(1204)用户输入事件。例如,设备300可从鼠标或触控板接收移动所显示的指针对象的位置的输入。此外,设备300可接收对应于鼠标按钮的致动(例如,左击、右击)的用户输入。对于具有触控板的设备,这些触控板具有用于检测接触强度的传感器,除了可按压按钮的致动之外,设备300还可检测压力值。
设备300根据用户输入事件生成(1206)多个独立事件流。在一些实施例中,该多个独立事件流被复用成复用事件流(也称为事件队列)。
设备300合并(1208)来自该多个独立事件流的信息以生成合并的用户输入事件流。在一些实施例中,根据确定满足合并标准(有时称为预定义合并标准)来执行合并。例如,在一些实施例中,用于用户输入事件的基于定时的标准用于确定是否合并用户输入事件。例如,在一些实施例中,除非经过预定义时间段且没有接收到用户输入事件,否则用户输入事件被合并。在一些实施例中,根据确定不再满足合并标准,设备放弃随后合并用户事件,并且如果尚未提供给应用程序,则将先前生成的合并的用户输入事件提供给应用程序。
在一些实施例中,与显示器分开的一个或多个输入设备包括(1210)第一输入设备和与第一输入设备不同且分开的第二输入设备。用户输入事件包括从第一输入设备接收的第一事件和从第二输入设备接收的第二事件。合并的用户输入事件流包括用户输入事件,该用户输入事件包括对应于由与第二事件相对应的信息进行修改的第一事件的信息。例如,在一些实施例中,第一事件是对鼠标上的滚轮的致动。第二事件是对键盘上的“control”按钮的致动。因为由“control”按钮修改滚轮的致动,所以合并的事件导致用户界面的缩放而不是用户界面的滚动或平移。合并(例如,解复用)来自不同输入设备的输入事件允许期望对单个输入事件作出反应的应用程序(例如,用于触摸屏的应用程序)利用可从不同***设备(包括鼠标和键盘)获得的一系列广泛的修改符。
在一些实施例中,与显示器分开的一个或多个输入设备包括(1212)第一输入设备。用户输入事件包括:从第一输入设备接收的第一事件,该第一事件对应于指针在显示器上的移动;以及不同于第一事件的第二事件,该第二事件对应于第一输入设备的致动。合并的用户输入事件流包括用户输入事件,该用户输入事件包括对应于第一事件的信息以及对应于第二事件的信息。
在一些实施例中,合并的用户输入事件流包括(1214)滚动事件,这些滚动事件包括对应于用户界面中的相应位置的位置信息。例如,独立事件流包括来自鼠标位置(例如,用于在显示器上生成指针对象的位置)和滚轮的致动的事件流。以这种方式对输入事件进行解复用允许单个输入事件(例如,图9B的滚动事件910)被发送到期望各个输入事件包括所有必要信息的应用程序(例如,被配置为从触摸屏接收输入的应用程序,在本文中有时称为触摸屏应用程序)的适当视图。
在一些实施例中,相应滚动事件包括选自(1216)由以下项构成的组的多个字段:具有指示第一滚动量的值的字段;具有指示针对第一滚动量的乘数或大于该第一滚动量的第二滚动量中的任一者的值的字段;具有指示用户界面中相应位置的值的字段;以及具有选自预定义阶段值集合的阶段值的字段,该预定义阶段值集合包括至少指示相应滚动事件的开始阶段的第一预定义阶段值以及指示相应滚动事件是对滚动事件的更新的第二预定义阶段值。
在一些实施例中,每个滚动事件是(1218)具有预定义事件类型和字段集合的归一化事件,其中滚动事件被配置为根据以下项中的任一项进行归一化:从滚轮接收的相应用户输入事件;对应于触敏显示器上的第一预定义手势的相应用户输入事件;和/或对应于在与显示器分开的触敏表面上不同于第一预定义手势的第二预定义手势的相应用户输入事件。将来自不同类型的输入设备的滚动事件归一化允许基于触摸屏的应用程序(即,被配置为从触摸屏接收输入的应用程序)从这些不同类型的输入设备接收滚动输入。
设备300向应用程序提供(1220)描述合并的用户输入事件流的信息。在一些实施例中,单个合并的用户输入事件被表示为提供给应用程序的单个数据结构。在一些实施例中,单个合并的用户输入事件包括任选的子数据结构(例如,对其他数据结构的引用,诸如表示合并以产生单个合并的用户输入事件的各个事件(或包含关于各个事件的信息)的数据结构)。
设备300在显示器上显示(1222)应用程序的响应,该响应至少部分地基于描述合并的用户输入事件流的信息。在一些实施例中,应用程序对滚动事件的响应包括(1224)平移用户界面的至少一部分(例如,可滚动区域)。在一些实施例中,显示器是触敏显示器,并且应用程序被配置为响应于来自触敏显示器的触摸输入以及来自合并的用户输入事件流的滚动事件而平移(1226)用户界面的至少该部分。
应当理解,对图12A至图12C中的操作进行描述的特定顺序仅为示例性的,并非旨在表明所述顺序是可以执行这些操作的唯一顺序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当注意,本文关于本文所述的其他方法(例如,方法1100和方法1300)描述的其他过程的细节同样以类似的方式适用于上文相对于图12A至图12C描述的方法1200。
以上参考图12A至图12C所述的操作任选地由图1A、图1B和/或图3中描绘的部件来实现。例如,接收操作1204和显示操作1222任选地由事件分类器170、事件识别器180和事件处理程序190来实现。事件分类器170中的事件监视器171检测用户输入,并且事件分配器模块174将事件信息递送到应用程序136-1。应用程序136-1的相应事件识别器180将事件信息与相应事件定义186进行比较,并且确定触敏表面上第一位置处的第一接触(例如,模拟接触)是否与预定义事件或子事件相对应,预定义事件或子事件诸如为对用户界面上的对象的选择。当检测到相应的预定义事件或子事件时,事件识别器180激活与该事件或子事件的检测相关联的事件处理程序190。事件处理程序190任选地利用或调用数据更新器176或对象更新器177来更新应用程序内部状态192。在一些实施例中,事件处理程序190访问相应GUI更新器178来更新应用程序所显示的内容。类似地,本领域的普通技术人员会清楚地知道可如何基于图1A、图1B和/或图3中描绘的部件来实现其他过程。
图13A至图13E示出了根据一些实施例的向应用程序提供基于悬停的输入事件的方法1300的流程图。方法1300在具有输入设备的电子设备(例如,图1A至图1B中的设备100和/或图3中的设备300)处执行。电子设备包括与显示器分开的输入设备或与该输入设备耦接。在一些实施例中,与显示器分开的输入设备是触敏表面。在一些实施例中,电子设备包括一个或多个传感器以检测触敏表面上方的输入对象(例如,手指或触笔)的接近度(例如,接近传感器(诸如红外传感器),触敏表面中的电容传感器,或触敏表面旁边的相机),和/或一个或多个传感器以检测输入对象与触敏表面的接触强度。在一些实施例中,与显示器分开的输入设备不是触敏表面(尽管设备还可任选地包括触敏表面或与触敏表面耦接)。方法1300中的一些操作任选地被组合,并且/或者一些操作的次序任选地被改变。为简单起见,参***100/300来描述方法1300(例如,方法1300的一些操作参考具有触摸屏的设备100,并且方法1300的一些操作参考具有与显示器分开的输入设备的设备300)。
一些触敏表面能够检测触敏表面上方的输入对象(例如,手指或触笔)的接近度。这些所谓的“悬停”输入可用于操纵用户界面对象。然而,尽管悬停在触敏表面上方的事实可以是与后续接触相同手势的直观部分,但悬停输入通常被视为与其他用户输入(例如,基于接触的用户输入)分开。将基于接近度的输入事件和基于接触的输入事件视为来自不同的用户输入导致用户界面对于用户来说是麻烦且非直观的。
方法1300通过以具有与基于接触的触摸事件所使用的数据结构相同的数据结构的归一化触摸输入事件格式提供悬停输入事件来解决该问题。这些输入事件(在本文中有时称为触摸输入事件)包括呈现值的阶段字段,该值描述了输入事件是悬停事件还是基于接触的事件等(该阶段值还可指示事件是先前检测到的事件的变化还是结束)。与基于接触的输入事件相关的悬停输入事件被分配相同的输入标识符,因此当这些事件被提供给手势识别器时,它们可被解释为相同手势的一部分。为了帮助跨平台兼容性,如上所述,一些实施例还基于来自不检测触敏表面上方的接触的接近度的输入设备的用户输入来提供模拟悬停事件。例如,进入窗口的鼠标指针可被解释为该窗口上方的悬停事件,而当指针在窗口上方时鼠标左键点击可被解释为该窗口中的基于接触的事件。在本文档的其他地方讨论了模拟触摸事件(包括悬停和接触输入事件)的提供。
设备100/300在显示器上显示(1302)包括多个用户界面对象的应用程序的用户界面。例如,图7A中所示的用户界面730包括可选文本732以及若干虚拟按钮(例如,“备忘录”、“完成”)。
在一些实施例中,输入设备包括(1303)前述触敏表面。在一些实施例中,触敏表面是显示器的一部分(例如,显示器是触摸屏显示器,诸如触摸屏112)。在一些实施例中,触敏表面与显示器分开(例如,触敏表面是与显示器分开的触控板)。在一些实施例中,从不是触敏表面的输入设备接收下文所述的输入,并且下文所述的触摸输入事件是模拟触摸输入事件(例如,如参考图7L至图7P和方法1100、图11A至图11D所述那样模拟)。
在显示应用程序的用户界面时,设备100/300在输入设备处接收(1304)用户输入。例如,触摸屏可接收触摸手势,该触摸手势包括该触摸手势(例如,手指或触笔)接近但不接触触敏表面的第一部分(例如,悬停手势部分,如参考图7B至图7C所述)和该触摸手势与触敏表面接触的第二部分(例如,接触手势部分,如参考图7D至图7E所述)。在一些实施例中(例如,在设备不是触摸屏的情况下),用户输入是在显示器上移动指针对象的鼠标/触控板输入(例如,如参考图7L所述)。在一些实施例中,用户输入包括在相应视图上方移动光标的第一部分(例如,当预定义鼠标按钮诸如鼠标左键没有被致动时),以及包括预定义鼠标按钮的致动的第二部分。第一部分转换为第一输入事件(如下所述),并且第二部分转换为第二输入事件(如下所述)。
响应于用户输入,设备100/300执行(1306)操作1308-1314或其子集。
设备100/300向应用程序提供(1308)具有带有第一阶段值的阶段字段的第一输入事件,该第一输入事件对应于接近但不接触触敏表面的输入。在一些实施例中,第一输入事件具有悬停阶段。在一些实施例中,第一输入事件具有悬停开始阶段。
在一些实施例中,通过检测触敏表面的预定义距离内的输入(例如,如图7B所示,手指734在阈值悬停距离内越过,触发悬停开始输入事件被提供给对应于用户界面730的视图),来触发(1310)对应于接近但不接触触敏表面的用户输入的第一输入事件。
在一些实施例中,第一输入事件和第二输入事件以归一化触摸事件数据结构(例如,图9A中的触摸事件数据结构902)提供(1312)给应用程序,该归一化触摸事件数据结构包括阶段字段和输入标识符字段。第一输入事件和第二输入事件具有输入标识符字段的相同的值。通过具有相同的输入标识符字段的值,第一输入事件(例如,悬停触摸输入事件)和第二输入事件(例如,接触触摸输入事件)可以被识别为单个手势的一部分。提供具有悬停阶段和接触阶段的单个手势通过允许设备识别更直观的手势(例如,根据悬停输入移动光标并且根据接触输入放置光标)来改善设备的可操作性。当屏幕尺寸有限并且***输入设备不方便(例如,智能电话)时,这些考虑对于为设备提供全范围的输入能力尤为重要。
在一些实施例中,第一阶段值指示(1314)第一输入事件对应于接近但不接触触敏表面的输入的开始(例如,“悬停开始”输入事件)。提供“悬停开始”输入事件允许设备跟踪后续输入作为对“悬停开始”输入事件的更新(例如,通过使用输入标识符字段,如上所述)。
在提供第一输入事件之后,设备100/300向应用程序提供(1316)具有带有第二阶段值的阶段字段的第二输入事件,该第二输入事件对应于用户输入接触触敏表面(例如,接触触摸事件)。例如,响应于与图7D中的触摸屏112的接触,设备向对应于用户界面730的视图提供“触摸开始”事件。
设备100/300在显示器上显示(1318)对应用程序的用户界面的更新,该更新至少部分地基于第一输入事件和第二输入事件。在一些实施例中,设备显示基于第一输入事件的第一更新(例如,显示光标,图7B)和基于第二输入事件的第二更新(例如,开始文本选择,图7D)。在一些实施例中,设备基于第一输入事件和第二输入事件两者显示单个更新(例如,设备将第一输入事件和第二输入事件提供给手势识别器,该手势识别器将第一输入事件和第二输入事件识别为单个手势的一部分)。
在一些实施例中,在向应用程序提供第一输入事件之后,设备100/300检测(1320)用户输入的变化。响应于检测到用户输入的变化,该变化对应于接近但不接触触敏表面的用户输入的位置或接近度的变化,设备100/300向应用程序提供第三输入事件,该第三输入事件具有指示接近但不接触触敏表面的用户输入的位置或接近度的变化(例如,“悬停变化”输入事件)的信息(例如,具有悬停变化阶段值的阶段字段)。提供指示接近但不接触触敏表面的用户输入的位置或接近度的变化的输入事件通过允许设备跟踪作为单个用户输入的一部分的变化的悬停输入(例如,允许用户围绕用户界面连续移动光标)来改善设备的可操作性。当屏幕尺寸有限并且***输入设备不方便(例如,智能电话)时,这些考虑对于为设备提供全范围的输入能力尤为重要。
在一些实施例中,在向应用程序提供第一输入事件之后,设备100/300检测(1322)用户输入的进一步变化。响应于检测到用户输入的进一步变化,设备100/300向应用程序提供第四输入事件,该第四输入事件具有指示用户输入的悬停结束状态(例如,在图7K中,响应于手指734离开阈值悬停距离,向对应于用户界面730的视图提供“悬停结束”输入事件)的信息(例如,具有悬停结束阶段值的阶段字段)。当触摸事件是(A)输入移出接近传感器的范围之前(例如,当输入的抬离达到超过接近传感器的范围的高度时)的最后触摸事件,或(B)输入移出应用程序的用户界面的区域(例如,视图)之前的最后触摸事件时,使用悬停结束阶段。在最后一种情况下,当输入在用户界面的另一区域上方移动时,新的触摸事件流可以被提供给应用程序的另一视图,与先前触摸事件被提供给的视图相邻,或者被提供给具有与先前触摸事件被提供给的应用程序视图相邻的用户界面区域的另一应用程序。
在一些实施例中,提供“悬停结束”输入事件通过通知活动手势识别器用户输入或用户输入的一部分完成来改善设备的可操作性,这有助于活动手势识别器确定其对应的手势是否已经通过、失败或被取消。当屏幕尺寸有限并且***输入设备(例如,智能电话)不方便时,改善的手势识别器通过帮助为设备提供全范围的输入能力来改善设备的可操作性。
在一些实施例中,第二阶段值是(1324)指示用户输入与触敏表面的初始接触的触摸开始阶段值(例如,在图7D中,响应于与触摸屏112的接触,向对应于用户界面730的视图提供“触摸开始”输入事件)。
在一些实施例中,在向应用程序提供第一输入事件和第二输入事件之后,设备100/300检测(1326)用户输入的变化。响应于检测到用户输入的变化,该变化对应于在与触敏表面接触时用户输入的位置的变化,设备100/300向应用程序提供第四输入事件,该第四输入事件具有指示在与触敏表面接触时用户输入的位置的变化的信息(例如,参考图7J所述的“触摸变化”输入事件)。提供指示在与触敏表面接触时用户输入的位置变化的输入事件通过允许设备跟踪作为单个用户输入的一部分的变化的触摸输入来改善设备的可操作性(例如,允许用户在选择文本时围绕用户界面连续移动光标),并且还通过向应用程序提供指示输入事件是由一个或多个先前提供的输入事件表示的手势的延续的信息,使得设备的操作更有效,从而解除了应用程序必须确定所提供的输入事件是否(以及如何)与先前提供的输入事件相关。当屏幕尺寸有限并且***输入设备不方便(例如,智能电话)时,这些考虑对于为设备提供全范围的输入能力尤为重要。
在一些实施例中,在向应用程序提供第一输入事件、第二输入事件和第四输入事件之后,设备100/300检测(1328)用户输入的进一步变化。响应于检测到用户输入的进一步变化,该进一步变化对应于用户输入从触敏表面抬离,设备100/300向应用程序提供第五输入事件,该第五输入事件具有指示用户输入从触敏表面抬离(例如,“触摸结束”事件,如参考图7K所述)的信息(例如,具有触摸结束阶段值的阶段字段)。在一些实施例中,提供“触摸结束”输入事件通过通知活动手势识别器用户输入或用户输入的一部分完成来改善设备的可操作性,这有助于活动手势识别器确定对其对应的手势的识别是否已经通过、失败或被取消。当屏幕尺寸有限并且***输入设备(例如,智能电话)不方便时,改善的手势识别器通过帮助为设备提供全范围的输入能力来改善设备的可操作性。
在一些实施例中,在向应用程序提供第一输入事件、第二输入事件、第四输入事件和第五输入事件之后,设备100/300检测(1330)用户输入的进一步变化。响应于检测到用户输入的进一步变化,该进一步变化对应于在接近但不接触触敏表面时的用户输入的位置或接近度的变化,设备100/300向应用程序提供第六输入事件,该第六输入事件具有指示接近但不接触触敏表面的用户输入的位置或接近度的变化(例如,在与触敏表面的接触已经结束之后提供“悬停变化”事件)的信息(例如,具有悬停变化阶段值的阶段字段)。在一些实施例中,在与触敏表面的接触已经结束之后提供“悬停变化”输入事件通过允许在接触已经结束之后继续输入手势来改善设备的可操作性,这有助于在屏幕尺寸有限并且***输入设备不方便时为设备(例如,智能电话)提供全范围的输入能力。
在一些实施例中,在向应用程序提供第一输入事件、第二输入事件、第四输入事件、第五输入事件和第六输入事件之后,设备100/300检测(1332)用户输入的进一步变化。响应于检测到用户输入的进一步变化,该进一步变化对应于用户输入与触敏表面的第二接触,向应用程序提供第七输入事件,该第七输入事件具有指示用户输入已经触摸到触敏表面的信息(例如,具有触摸开始阶段值的阶段字段)。例如,在检测到从触敏表面的抬离之后,设备可检测一个或多个悬停事件以及之后的一个或多个附加接触事件。因此,输入手势的范围可扩展到包括“触摸悬停触摸”手势的手势,这有助于在屏幕尺寸有限并且***输入设备不方便时为设备(例如,智能电话)提供全范围的输入能力。
在一些实施例中,输入设备与显示器是(1334)分开的。上文参考来自不是触敏表面的设备的触控板输入和模拟触摸输入来描述利用与显示器分开的输入设备来执行方法1300。
在一些实施例中,设备100/300在显示器上显示(1336)指针对象。在显示应用程序的指针对象时,设备100/300在输入设备处接收第二用户输入,该第二用户输入对应于显示器上的指针对象到应用程序的用户界面的第一视图中的移动。响应于第二用户输入:设备100/300向应用程序提供具有带有第一阶段值的阶段字段的第八输入事件,该第一阶段值是指示第八输入事件对应于接近但不接触触敏表面的输入的悬停阶段值。在提供第八输入事件之后,设备100/300向应用程序提供具有带有第二阶段值的阶段字段的第九输入事件,该第二输入事件对应于用户输入接触触敏表面。在一些实施例中,第九输入事件是在第二用户输入的位置“输入”第二视图时生成的初始输入事件。设备100/300在显示器上显示对应用程序的用户界面的更新,该更新至少部分地基于第八输入事件和第九输入事件。例如,如参考图7L至图7P所述,当指针对象在相应视图上方移动时,向相应视图提供悬停输入;并且当检测到鼠标左键点击并保持时,向相应视图提供接触输入。
在一些实施例中,应用程序的用户界面包括(1338)第一视图(例如,图7L至图7P中的用户界面730)。显示包括显示第二视图(例如,图7L至图7P中的应用程序708)。第一输入事件和第二输入事件指向第一应用程序的第一视图。
在一些实施例中,在显示第一视图和第二视图时,设备100/300在输入设备处接收(1340)第二用户输入,该第二用户输入具有从对应于第一视图的第一位置移动到对应于第二视图的第二位置的位置。响应于第二用户输入,设备100/300生成具有带有相应阶段值的相应阶段字段的第九输入事件。第九输入事件包括对应于第二位置的信息。根据确定第九输入事件的相应阶段值是指示接近但不接触触敏表面的触摸的悬停阶段,设备100/300向与第二视图相关联的应用程序提供第九输入事件。根据确定第三输入事件的相应阶段值是指示与触敏表面接触的触摸的触摸阶段,设备100/300向与第一视图相关联的应用程序提供第九输入事件。因此,如参考图7Q所述,在一些实施例中,基于悬停的触摸输入事件被递送到对应于其当前位置(例如,手指/触笔的位置或所显示的指针对象的位置)的视图,而基于接触的触摸输入事件被递送到对应于对应的“触摸开始”输入事件的位置的视图。
在一些实施例中,方法1300包括(1342)在显示器上显示指针对象,从与显示器分开的输入设备接收第二用户输入,并且第二用户输入对应于指针对象从对应于第一视图的第一位置到对应于第二视图的第二位置的移动。
在一些实施例中,显示器是包括(1344)触敏表面的触敏显示器,该触敏显示器对接近但不接触触敏显示器的接触敏感。从触敏显示器接收第二用户输入,并且第二用户输入对应于触敏显示器处的输入,该输入从触敏显示器上对应于第一视图的第一位置上方的位置移动到触敏显示器上对应于第二视图的第二位置上方的位置。在一些实施例中,第二视图是(1346)应用程序的相应视图。
在一些实施例中,应用程序是(1348)第一应用程序,第一视图是第一应用程序的相应视图,并且第二视图是不同于第一应用程序的第二应用程序的相应视图。例如,如参考图7Q所述,不论不同的视图是来自不同的应用程序还是来自相同的应用程序,都将以相同的方式选择要向其传送输入事件的适当的视图。
以上参考图13A至图13E所述的操作任选地由图1A至图1B和/或图3中描绘的部件来实现。例如,提供操作1308和显示操作1318任选地由事件分类器170、事件识别器180和事件处理程序190来实现。事件分类器170中的事件监视器171检测用户输入,并且事件分配器模块174将事件信息递送到应用程序136-1。应用程序136-1的相应事件识别器180将事件信息与相应事件定义186进行比较,并且确定触敏表面上第一位置处的第一接触(例如,模拟接触)是否与预定义事件或子事件相对应,预定义事件或子事件诸如为对用户界面上的对象的选择。当检测到相应的预定义事件或子事件时,事件识别器180激活与该事件或子事件的检测相关联的事件处理程序190。事件处理程序190任选地利用或调用数据更新器176或对象更新器177来更新应用程序内部状态192。在一些实施例中,事件处理程序190访问相应GUI更新器178来更新应用程序所显示的内容。类似地,本领域的普通技术人员会清楚地知道可如何基于图1A至图1B和/或图3中描绘的部件来实现其他过程。
出于解释的目的,前面的描述是通过参考具体实施例来描述的。然而,上面的例示性论述并非旨在是穷尽的或将本发明限制为所公开的精确形式。根据以上教导内容,很多修改形式和变型形式都是可能的。选择和描述实施例是为了最佳地阐明本发明的原理及其实际应用,以便由此使得本领域的其他技术人员能够最佳地使用具有适合于所构想的特定用途的各种修改的本发明以及各种所描述的实施例。
Claims (67)
1.一种方法,包括:
在具有显示器和与所述显示器分开的输入设备的电子设备处:
在所述显示器上同时显示包括以下各项的用户界面:
包括多个用户界面对象的第一应用程序的表示;和
指针对象;
在同时显示所述第一应用程序的所述表示和所述指针对象时,在与所述显示器分开的所述输入设备处接收用户输入事件,所述用户输入事件指向所述用户界面中显示所述指针对象的相应位置;
响应于检测到所述用户输入事件,根据确定所述用户界面中显示所述指针对象的所述相应位置在所述第一应用程序的所述表示上方:
向所述第一应用程序提供描述模拟触摸事件的信息,所述信息包括描述所述用户界面中的一个或多个模拟触摸的位置的信息;以及
在所述显示器上显示由所述第一应用程序响应于描述所述模拟触摸事件的所述信息而确定的所述第一应用程序的所述表示的变化。
2.根据权利要求1所述的方法,包括:
根据所述用户输入事件生成数字化事件,所述数字化事件包括所述用户界面中显示所述指针对象的所述位置;以及
将所述数字化事件转换为所述模拟触摸事件。
3.根据权利要求2所述的方法,其中所述数字化事件包括指针事件,所述指针事件与所述用户界面中显示所述指针对象的所述相应位置配对或具有对应于所述相应位置的位置信息。
4.根据权利要求2所述的方法,
其中所述数字化事件由指针事件生成,所述指针事件与所述用户界面中显示所述指针对象的所述相应位置配对或具有对应于所述相应位置的位置信息。
5.根据权利要求1至4中任一项所述的方法,其中所述模拟触摸事件包括:具有信息的多个字段,所述信息包括对应于所述用户界面中的所述相应位置的所述位置信息;以及从预定义阶段值集合中选择的阶段值,所述预定义阶段值集合包括至少第一预定义阶段值和第二预定义阶段值,所述第一预定义阶段值指示模拟触摸的开始阶段,所述第二预定义阶段值指示所述模拟触摸事件是对先前模拟触摸事件的更新。
6.根据权利要求5所述的方法,其中所述预定义阶段值集合包括至少第三预定义阶段值,所述第三预定义阶段值指示悬停阶段,所述悬停阶段指示接近但不接触所述显示器的模拟触摸。
7.根据权利要求5至6中任一项所述的方法,其中:
所述输入设备包括按钮;
所述用户输入事件包括所述按钮的状态的变化;并且
根据所述按钮的所述状态的所述变化,所述模拟触摸事件具有指示所述模拟触摸的所述开始阶段的所述第一预定义阶段值。
8.根据权利要求7所述的方法,其中:
所述按钮的所述状态的所述变化包括所述按钮的激活;并且,所述方法还包括:
在显示所述指针对象时,在与所述显示器分开的所述输入设备处接收包括所述按钮的停用的第二用户输入事件;以及
响应于检测到所述第二用户输入事件:
向所述第一应用程序提供信息,所述信息描述第二模拟触摸事件,所述第二模拟触摸事件具有指示所述第二模拟触摸事件对应于所述模拟触摸事件的结束的阶段值。
9.根据权利要求5至8中任一项所述的方法,包括:
在显示所述指针对象时,在与所述显示器分开的所述输入设备处接收第三用户输入事件,所述第三用户输入事件将所述指针对象从所述相应位置移动到所述显示器上的第三位置;以及
响应于检测到所述第三用户输入事件:
向所述第一应用程序提供信息,所述信息描述具有所述第二预定义阶段值的第三模拟触摸事件,所述第二预定义阶段值指示所述第三模拟触摸事件是对所述模拟触摸事件的更新。
10.根据权利要求1至9中任一项所述的方法,包括:
在显示所述指针对象时,在与所述显示器分开的所述输入设备处接收第四用户输入事件,所述第四用户输入事件指向显示所述指针对象的第三位置,所述第三位置对应于不同于所述第一应用程序的相应应用程序的表示;以及
响应于检测到所述第四用户输入事件:
根据确定所述相应应用程序被配置为在第一操作***框架中执行,向所述相应应用程序提供描述第四模拟触摸事件的信息,所述信息包括描述一个或多个附加模拟触摸的位置的信息;以及
根据确定所述相应应用程序没有被配置为在所述第一操作***框架中执行,放弃向所述相应应用程序提供描述模拟触摸事件的信息。
11.根据权利要求1至10中任一项所述的方法,其中:
所述一个或多个模拟触摸在所述用户界面中显示所述指针对象的所述相应位置处具有质心。
12.根据权利要求1至11中任一项所述的方法,其中所述输入设备选自由以下项构成的组:
鼠标;
滚轮;
键盘;和
与所述显示器分开的触摸板。
13.根据权利要求1至12中任一项所述的方法,其中显示所述指针对象的所述相应位置对应于多个视图,并且所述模拟触摸事件被提供给所述多个视图中的每个视图。
14.根据权利要求1至13中任一项所述的方法,其中:
所述输入设备是第一输入设备;
所述模拟触摸事件是具有预定义事件类型和字段集合的归一化触摸事件;并且
所述方法包括:
在第二输入设备处接收第五用户输入事件;
响应于检测到所述第五用户输入事件:
向所述第一应用程序提供描述第五模拟触摸事件的信息,所述第五模拟触摸事件为归一化触摸事件。
15.根据权利要求1至14中任一项所述的方法,其中:
所述输入设备是与所述显示器分开的多个输入设备中的相应输入设备;
所述用户输入事件是从与所述显示器分开的所述多个输入设备接收的多个用户输入事件中的第一用户输入事件;并且
所述方法还包括:
根据所述多个用户输入事件生成多个独立事件流;以及
合并来自所述多个事件流的信息以生成合并的用户输入事件流,其中描述所述模拟触摸事件的所述信息包括描述所述合并的用户输入事件流的信息。
16.一种电子设备,包括:
显示器;
与所述显示器分开的输入设备;
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于如下操作的指令:
在所述显示器上同时显示包括以下各项的用户界面:
包括多个用户界面对象的第一应用程序的表示;和
指针对象;
在同时显示所述第一应用程序的所述表示和所述指针对象时,在与所述显示器分开的所述输入设备处接收用户输入事件,所述用户输入事件指向所述用户界面中显示所述指针对象的相应位置;
响应于检测到所述用户输入事件,根据确定所述用户界面中显示所述指针对象的所述相应位置在所述第一应用程序的所述表示上方:
向所述第一应用程序提供描述模拟触摸事件的信息,所述信息包括描述所述用户界面中的一个或多个模拟触摸的位置的信息;以及
在所述显示器上显示由所述第一应用程序响应于描述所述模拟触摸事件的所述信息而确定的所述第一应用程序的所述表示的变化。
17.一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令在由具有显示器和与所述显示器分开的输入设备的电子设备执行时,使得所述设备:
在所述显示器上同时显示包括以下各项的用户界面:
包括多个用户界面对象的第一应用程序的表示;和
指针对象;
在同时显示所述第一应用程序的所述表示和所述指针对象时,在与所述显示器分开的所述输入设备处接收用户输入事件,所述用户输入事件指向所述用户界面中显示所述指针对象的相应位置;
响应于检测到所述用户输入事件,根据确定所述用户界面中显示所述指针对象的所述相应位置在所述第一应用程序的所述表示上方:
向所述第一应用程序提供描述模拟触摸事件的信息,所述信息包括描述所述用户界面中的一个或多个模拟触摸的位置的信息;以及
在所述显示器上显示由所述第一应用程序响应于描述所述模拟触摸事件的所述信息而确定的所述第一应用程序的所述表示的变化。
18.一种电子设备,包括:
显示器;
与所述显示器分开的输入设备;
用于在所述显示器上同时显示包括以下各项的用户界面的装置:
包括多个用户界面对象的第一应用程序的表示;和
指针对象;
在同时显示所述第一应用程序的所述表示和所述指针对象时启用的用于在与所述显示器分开的所述输入设备处接收用户输入事件的装置,所述用户输入事件指向所述用户界面中显示所述指针对象的相应位置;
响应于检测到所述用户输入事件,根据确定所述用户界面中显示所述指针对象的所述相应位置在所述第一应用程序的所述表示上方而启用的装置,所述装置用于:
向所述第一应用程序提供描述模拟触摸事件的信息,所述信息包括描述所述用户界面中的一个或多个模拟触摸的位置的信息;以及
在所述显示器上显示由所述第一应用程序响应于描述所述模拟触摸事件的所述信息而确定的所述第一应用程序的所述表示的变化。
19.一种在具有显示器和与所述显示器分开的输入设备的电子设备中使用的信息处理装置,包括:
用于在所述显示器上同时显示包括以下各项的用户界面的装置:
包括多个用户界面对象的第一应用程序的表示;和
指针对象;
在同时显示所述第一应用程序的所述表示和所述指针对象时启用的用于在与所述显示器分开的所述输入设备处接收用户输入事件的装置,所述用户输入事件指向所述用户界面中显示所述指针对象的相应位置;
响应于检测到所述用户输入事件,根据确定所述用户界面中显示所述指针对象的所述相应位置在所述第一应用程序的所述表示上方而启用的装置,所述装置用于:
向所述第一应用程序提供描述模拟触摸事件的信息,所述信息包括描述所述用户界面中的一个或多个模拟触摸的位置的信息;以及
在所述显示器上显示由所述第一应用程序响应于描述所述模拟触摸事件的所述信息而确定的所述第一应用程序的所述表示的变化。
20.一种电子设备,包括:
显示器;
与所述显示器分开的输入设备;
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行根据权利要求1至15所述的方法中的任一种方法的指令。
21.一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令在由具有显示器和与所述显示器分开的输入设备的电子设备执行时,使得所述设备执行根据权利要求1至15所述的方法中的任一种方法。
22.一种电子设备上的图形用户界面,所述电子设备具有显示器、与所述显示器分开的输入设备、存储器以及用于执行存储在所述存储器中的一个或多个程序的一个或多个处理器,所述图形用户界面包括根据权利要求1至15所述的方法中的任一种方法显示的用户界面。
23.一种电子设备,包括:
显示器;
与所述显示器分开的输入设备;和
用于执行根据权利要求1至15所述的方法中的任一种方法的装置。
24.一种在具有显示器和与所述显示器分开的输入设备的电子设备中使用的信息处理装置,包括:
用于执行根据权利要求1至15所述的方法中的任一种方法的装置。
25.一种方法,包括:
在具有显示器和与所述显示器分开的一个或多个输入设备的电子设备处:
在所述显示器上显示应用程序的用户界面;
在与所述显示器分开的所述一个或多个输入设备处接收用户输入事件;
根据所述用户输入事件生成多个独立事件流;
合并来自所述多个独立事件流的信息以生成合并的用户输入事件流;
向所述应用程序提供描述所述合并的用户输入事件流的信息;以及
在所述显示器上显示所述应用程序的响应,所述响应至少部分地基于描述所述合并的用户输入事件流的所述信息。
26.根据权利要求25所述的方法,其中:
所述合并的用户输入事件流包括滚动事件,所述滚动事件包括对应于所述用户界面中的相应位置的位置信息。
27.根据权利要求26所述的方法,其中相应滚动事件包括选自以下字段的多个字段:
具有指示第一滚动量的值的字段;
具有指示针对所述第一滚动量的乘数或大于所述第一滚动量的第二滚动量中的任一者的值的字段;
具有指示用户界面中相应位置的值的字段;和
具有选自预定义阶段值集合的阶段值的字段,所述预定义阶段值集合包括至少指示所述相应滚动事件的开始阶段的第一预定义阶段值以及指示所述相应滚动事件是对滚动事件的更新的第二预定义阶段值。
28.根据权利要求26至27中任一项所述的方法,其中所述应用程序对所述滚动事件的所述响应包括平移所述用户界面的至少一部分。
29.根据权利要求28所述的方法,其中所述显示器为触敏显示器,并且所述应用程序被配置为响应于来自所述触敏显示器的触摸输入以及来自所述合并的用户输入事件流的滚动事件而平移所述用户界面的至少所述部分。
30.根据权利要求26所述的方法,其中每个滚动事件是具有预定义事件类型和字段集合的归一化事件,其中所述滚动事件被配置为根据以下任一项进行归一化:
从滚轮接收的相应用户输入事件;
对应于触敏显示器上的第一预定义手势的相应用户输入事件;以及
对应于在与显示器分开的触敏表面上不同于所述第一预定义手势的第二预定义手势的相应用户输入事件。
31.根据权利要求25至30中任一项所述的方法,其中:
与所述显示器分开的所述一个或多个输入设备包括第一输入设备和与所述第一输入设备不同且分开的第二输入设备;以及
所述用户输入事件包括:
从所述第一输入设备接收的第一事件;
从所述第二输入设备接收的第二事件;和
所述合并的用户输入事件流包括用户输入事件,所述用户输入事件包括对应于由与所述第二事件相对应的信息进行修改的所述第一事件的信息。
32.根据权利要求25至31中任一项所述的方法,其中:
与所述显示器分开的所述一个或多个输入设备包括第一输入设备;
所述用户输入事件包括:
从所述第一输入设备接收的第一事件,该第一事件对应于指针在所述显示器上的移动;和
不同于所述第一事件的第二事件,所述第二事件对应于所述第一输入设备的致动;并且
所述合并的用户输入事件流包括用户输入事件,所述用户输入事件包括对应于所述第一事件的信息以及对应于所述第二事件的信息。
33.一种电子设备,包括:
显示器;
与所述显示器分开的一个或多个输入设备;
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于如下操作的指令:
在所述显示器上显示应用程序的用户界面;
在与所述显示器分开的所述一个或多个输入设备处接收用户输入事件;
根据所述用户输入事件生成多个独立事件流;
合并来自所述多个独立事件流的信息以生成合并的用户输入事件流;
向所述应用程序提供描述所述合并的用户输入事件流的信息;以及
在所述显示器上显示所述应用程序的响应,所述响应至少部分地基于描述所述合并的用户输入事件流的所述信息。
34.一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令在由具有显示器和与所述显示器分开的一个或多个输入设备的电子设备执行时,使得所述设备:
在所述显示器上显示应用程序的用户界面;
在与所述显示器分开的所述一个或多个输入设备处接收用户输入事件;
根据所述用户输入事件生成多个独立事件流;
合并来自所述多个独立事件流的信息以生成合并的用户输入事件流;
向所述应用程序提供描述所述合并的用户输入事件流的信息;以及
在所述显示器上显示所述应用程序的响应,所述响应至少部分地基于描述所述合并的用户输入事件流的所述信息。
35.一种电子设备,包括:
显示器;
与所述显示器分开的一个或多个输入设备;
用于在所述显示器上显示应用程序的用户界面的装置;
用于在与所述显示器分开的所述一个或多个输入设备处接收用户输入事件的装置;
用于根据所述用户输入事件生成多个独立事件流的装置;
用于合并来自所述多个独立事件流的信息以生成合并的用户输入事件流的装置;
用于向所述应用程序提供描述所述合并的用户输入事件流的信息的装置;和
用于在所述显示器上显示所述应用程序的响应的装置,所述响应至少部分地基于描述所述合并的用户输入事件流的所述信息。
36.一种在具有显示器和与所述显示器分开的一个或多个输入设备的电子设备中使用的信息处理装置,包括:
用于在所述显示器上显示应用程序的用户界面的装置;
用于在与所述显示器分开的所述一个或多个输入设备处接收用户输入事件的装置;
用于根据所述用户输入事件生成多个独立事件流的装置;
用于合并来自所述多个独立事件流的信息以生成合并的用户输入事件流的装置;
用于向所述应用程序提供描述所述合并的用户输入事件流的信息的装置;和
用于在所述显示器上显示所述应用程序的响应的装置,所述响应至少部分地基于描述所述合并的用户输入事件流的所述信息。
37.一种电子设备,包括:
显示器;
与所述显示器分开的一个或多个输入设备;
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行根据权利要求25至32所述的方法中的任一种方法的指令。
38.一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令在由具有显示器和与所述显示器分开的一个或多个输入设备的电子设备执行时,使得所述设备执行根据权利要求25至32所述的方法中的任一种方法。
39.一种电子设备上的图形用户界面,所述电子设备具有显示器、与所述显示器分开的一个或多个输入设备、存储器和用于执行存储在所述存储器中的一个或多个程序的一个或多个处理器,所述图形用户界面包括根据权利要求25至32所述的方法中的任一种方法显示的用户界面。
40.一种电子设备,包括:
显示器;
与所述显示器分开的一个或多个输入设备;和
用于执行根据权利要求25至32所述的方法中的任一种方法的装置。
41.一种在具有显示器和与所述显示器分开的一个或多个输入设备的电子设备中使用的信息处理装置,包括:
用于执行根据权利要求25至32所述的方法中的任一种方法的装置。
42.一种方法,包括:
在具有显示器和输入设备的电子设备处:
在所述显示器上显示包括多个用户界面对象的应用程序的用户界面;
在显示所述应用程序的所述用户界面时,在所述输入设备处接收用户输入;
响应于所述用户输入:
向所述应用程序提供具有带有第一阶段值的阶段字段的第一输入事件,所述第一输入事件对应于接近但不接触触敏表面的输入;
在提供所述第一输入事件之后,向所述应用程序提供具有带有第二阶段值的阶段字段的第二输入事件,所述第二输入事件对应于所述用户输入接触所述触敏表面;以及
在所述显示器上显示对所述应用程序的所述用户界面的更新,所述更新至少部分地基于所述第一输入事件和所述第二输入事件。
43.根据权利要求42所述的方法,其中所述输入设备包括所述触敏表面。
44.根据权利要求43所述的方法,其中通过检测所述触敏表面的预定义距离内的输入来触发对应于接近但不接触所述触敏表面的所述用户输入的所述第一输入事件。
45.根据权利要求42至44中任一项所述的方法,其中:
所述第一输入事件和所述第二输入事件以归一化触摸事件数据结构的形式提供给所述应用程序,所述归一化触摸事件数据结构包括阶段字段和输入标识符字段;以及
所述第一输入事件和所述第二输入事件具有所述输入标识符字段的相同值。
46.根据权利要求42至45中任一项所述的方法,其中:
所述第一阶段值指示所述第一输入事件对应于接近但不接触所述触敏表面的输入的开始。
47.根据权利要求46所述的方法,还包括:
在向所述应用程序提供所述第一输入事件之后,检测所述用户输入的变化;以及
响应于检测到所述用户输入的所述变化,所述变化对应于接近但不接触所述触敏表面的所述用户输入的位置或接近度的变化,向所述应用程序提供第三输入事件,所述第三输入事件具有指示接近但不接触所述触敏表面的所述用户输入的位置或接近度的变化的信息。
48.根据权利要求46至47中任一项所述的方法,还包括:
在向所述应用程序提供所述第一输入事件之后,检测所述用户输入的进一步变化;以及
响应于检测到所述用户输入的所述进一步变化,向所述应用程序提供第四输入事件,所述第四输入事件具有指示所述用户输入的悬停结束状态的信息。
49.根据权利要求42至48中任一项所述的方法,其中所述第二阶段值是指示所述用户输入与所述触敏表面的初始接触的触摸开始阶段值;并且
所述方法还包括,在向应用程序提供所述第一输入事件和所述第二输入事件之后,检测所述用户输入的变化;以及
响应于检测到所述用户输入的所述变化,所述变化对应于在与所述触敏表面接触时所述用户输入的位置变化,向所述应用程序提供第四输入事件,所述第四输入事件具有指示在与所述触敏表面接触时所述用户输入的位置变化的信息。
50.根据权利要求49所述的方法,还包括:
在向所述应用程序提供所述第一输入事件、第二输入事件和第四输入事件之后,检测所述用户输入的进一步变化;以及
响应于检测到所述用户输入的所述进一步变化,所述进一步变化对应于所述用户输入从所述触敏表面抬离,向所述应用程序提供第五输入事件,所述第五输入事件具有指示所述用户输入从所述触敏表面抬离的信息。
51.根据权利要求50所述的方法,还包括:
在向所述应用程序提供所述第一输入事件、第二输入事件、第四输入事件和第五输入事件之后,检测所述用户输入的进一步变化;以及
响应于检测到所述用户输入的所述进一步变化,所述进一步变化对应于在接近但不接触所述触敏表面时所述用户输入的位置或接近度的变化,向所述应用程序提供第六输入事件,所述第六输入事件具有指示接近但不接触所述触敏表面的所述用户输入的位置或接近度变化的信息。
52.根据权利要求51所述的方法,还包括:
在向所述应用程序提供所述第一输入事件、第二输入事件、第四输入事件、第五输入事件和第六输入事件之后,检测所述用户输入的进一步变化;以及
响应于检测到所述用户输入的所述进一步变化,所述进一步变化对应于所述用户输入与所述触敏表面的第二接触,向所述应用程序提供第七输入事件,所述第七输入事件具有指示所述用户输入已经触摸到所述触敏表面的信息。
53.根据权利要求42至52中任一项所述的方法,其中:
所述输入设备与所述显示器分开;并且
所述方法还包括:
在所述显示器上显示指针对象;
在显示所述应用程序的所述指针对象时,在所述输入设备处接收第二用户输入,所述第二用户输入对应于所述显示器上的所述指针对象到所述应用程序的所述用户界面的第一视图中的移动;
响应于所述第二用户输入:
向所述应用程序提供具有带有所述第一阶段值的阶段字段的第八输入事件,所述第一阶段值是指示所述第八输入事件对应于接近但不接触触敏表面的输入的悬停阶段值;
在提供所述第八输入事件之后,向所述应用程序提供具有带有所述第二阶段值的阶段字段的第九输入事件,所述第二输入事件对应于所述用户输入接触所述触敏表面;以及
在所述显示器上显示对所述应用程序的所述用户界面的更新,所述更新至少部分地基于所述第八输入事件和所述第九输入事件。
54.根据权利要求42至53中任一项所述的方法,其中:
所述应用程序的所述用户界面包括第一视图;
所述显示包括显示第二视图;
所述第一输入事件和所述第二输入事件指向所述第一应用程序的所述第一视图;
所述方法还包括:
在显示所述第一视图和所述第二视图时,在所述输入设备处接收第二用户输入,所述第二用户输入具有从对应于所述第一视图的第一位置移动到对应于所述第二视图的第二位置的位置;
响应于所述第二用户输入,生成具有带有相应阶段值的相应阶段字段的第九输入事件,其中所述第九输入事件包括对应于所述第二位置的信息;
根据确定所述第九输入事件的所述相应阶段值是指示接近但不接触所述触敏表面的触摸的悬停阶段,向与所述第二视图相关联的应用程序提供所述第九输入事件;以及
根据确定所述第九输入事件的所述相应阶段值是指示接触所述触敏表面的触摸的触摸阶段,向与所述第一视图相关联的应用程序提供所述第九输入事件。
55.根据权利要求54所述的方法,其中:
所述显示包括在所述显示器上显示指针对象;
从与所述显示器分开的输入设备接收所述第二输入;并且
所述第二输入对应于所述指针对象从对应于所述第一视图的所述第一位置到对应于所述第二视图的所述第二位置的移动。
56.根据权利要求54所述的方法,其中:
所述显示器是包括所述触敏表面的触敏显示器,所述触敏显示器对接近但不接触所述触敏显示器的接触敏感;
从所述触敏显示器接收所述第二用户输入;并且
所述第二用户输入对应于所述触敏显示器处的输入,所述输入从所述触敏显示器上对应于所述第一视图的所述第一位置上方的位置移动到所述触敏显示器上对应于所述第二视图的所述第二位置上方的位置。
57.根据权利要求54至56中任一项所述的方法,其中所述第二视图是所述应用程序的相应视图。
58.根据权利要求54至56中任一项所述的方法,其中:
所述应用程序是第一应用程序;
所述第一视图是所述第一应用程序的相应视图;并且
所述第二视图是不同于所述第一应用程序的第二应用程序的相应视图。
59.一种电子设备,包括:
显示器;
输入设备;
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于如下操作的指令:
在所述显示器上显示包括多个用户界面对象的应用程序的用户界面;
在显示所述应用程序的所述用户界面时,在所述输入设备处接收用户输入;
响应于所述用户输入:
向所述应用程序提供具有带有第一阶段值的阶段字段的第一输入事件,所述第一输入事件对应于接近但不接触触敏表面的输入;
在提供所述第一输入事件之后,向所述应用程序提供具有带有第二阶段值的阶段字段的第二输入事件,所述第二输入事件对应于所述用户输入接触所述触敏表面;以及
在所述显示器上显示对所述应用程序的所述用户界面的更新,所述更新至少部分地基于所述第一输入事件和所述第二输入事件。
60.一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由具有显示器和输入设备的电子设备执行时,使得所述设备:
在所述显示器上显示包括多个用户界面对象的应用程序的用户界面;
在显示所述应用程序的所述用户界面时,在所述输入设备处接收用户输入;
响应于所述用户输入:
向所述应用程序提供具有带有第一阶段值的阶段字段的第一输入事件,所述第一输入事件对应于接近但不接触触敏表面的输入;
在提供所述第一输入事件之后,向所述应用程序提供具有带有第二阶段值的阶段字段的第二输入事件,所述第二输入事件对应于所述用户输入接触所述触敏表面;以及
在所述显示器上显示对所述应用程序的所述用户界面的更新,所述更新至少部分地基于所述第一输入事件和所述第二输入事件。
61.一种电子设备,包括:
显示器;
输入设备;
用于在所述显示器上显示包括多个用户界面对象的应用程序的用户界面的装置;
在显示所述应用程序的所述用户界面时启用的用于在所述输入设备处接收用户输入的装置;
响应于所述用户输入而启用的装置,所述装置用于:
向所述应用程序提供具有带有第一阶段值的阶段字段的第一输入事件,所述第一输入事件对应于接近但不接触触敏表面的输入;
在提供所述第一输入事件之后,向所述应用程序提供具有带有第二阶段值的阶段字段的第二输入事件,所述第二输入事件对应于所述用户输入接触所述触敏表面;以及
在所述显示器上显示对所述应用程序的所述用户界面的更新,所述更新至少部分地基于所述第一输入事件和所述第二输入事件。
62.一种信息处理装置,所述信息处理装置用于在具有显示器和输入设备的电子设备中使用,包括:
用于在所述显示器上显示包括多个用户界面对象的应用程序的用户界面的装置;
在显示所述应用程序的所述用户界面时启用的用于在所述输入设备处接收用户输入的装置;
响应于所述用户输入而启用的装置,所述装置用于:
向所述应用程序提供具有带有第一阶段值的阶段字段的第一输入事件,所述第一输入事件对应于接近但不接触触敏表面的输入;
在提供所述第一输入事件之后,向所述应用程序提供具有带有第二阶段值的阶段字段的第二输入事件,所述第二输入事件对应于所述用户输入接触所述触敏表面;以及
在所述显示器上显示对所述应用程序的所述用户界面的更新,所述更新至少部分地基于所述第一输入事件和所述第二输入事件。
63.一种电子设备,包括:
显示器;
输入设备;
一个或多个处理器;
存储器;和
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行根据权利要求42至58所述的方法中的任一种方法的指令。
64.一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令在由具有显示器和输入设备的电子设备执行时,使得所述设备执行根据权利要求42至58所述的方法中的任一方法。
65.一种电子设备上的图形用户界面,所述电子设备具有显示器、输入设备、存储器以及用于执行存储在所述存储器中的一个或多个程序的一个或多个处理器,所述图形用户界面包括根据权利要求42至58所述的方法中的任一种方法显示的用户界面。
66.一种电子设备,包括:
显示器;
输入设备;和
用于执行根据权利要求42至58所述的方法中的任一种方法的装置。
67.一种信息处理装置,所述信息处理装置用于在具有显示器和输入设备的电子设备中使用,包括:
用于执行根据权利要求42至58所述的方法中的任一种方法的装置。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862679956P | 2018-06-03 | 2018-06-03 | |
US62/679,956 | 2018-06-03 | ||
US16/425,828 US10921975B2 (en) | 2018-06-03 | 2019-05-29 | Devices, methods, and user interfaces for conveying proximity-based and contact-based input events |
US16/425,828 | 2019-05-29 | ||
PCT/US2019/034846 WO2019236404A1 (en) | 2018-06-03 | 2019-05-31 | Devices, methods, and user interfaces for conveying proximity-based and contact-based input events |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112119370A true CN112119370A (zh) | 2020-12-22 |
Family
ID=68692652
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980032190.6A Pending CN112119370A (zh) | 2018-06-03 | 2019-05-31 | 用于传送基于接近度和基于接触的输入事件的设备、方法和用户界面 |
Country Status (4)
Country | Link |
---|---|
US (3) | US10921975B2 (zh) |
EP (2) | EP3803562B1 (zh) |
CN (1) | CN112119370A (zh) |
WO (1) | WO2019236404A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115202527A (zh) * | 2022-07-28 | 2022-10-18 | 润芯微科技(江苏)有限公司 | 一种基于悬停状态的全局笔写实现方法 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USD905718S1 (en) | 2018-03-15 | 2020-12-22 | Apple Inc. | Display screen or portion thereof with graphical user interface |
US10921975B2 (en) | 2018-06-03 | 2021-02-16 | Apple Inc. | Devices, methods, and user interfaces for conveying proximity-based and contact-based input events |
USD876449S1 (en) * | 2018-09-12 | 2020-02-25 | Apple Inc. | Electronic device or portion thereof with animated graphical user interface |
JP2021164132A (ja) * | 2020-04-03 | 2021-10-11 | キヤノン株式会社 | 画像処理システム、及びプログラム |
USD947228S1 (en) * | 2020-06-05 | 2022-03-29 | Shelterzoom Corp. | Display screen or portion thereof with animated graphical user interface |
USD942470S1 (en) * | 2020-06-21 | 2022-02-01 | Apple Inc. | Display or portion thereof with animated graphical user interface |
US11663418B2 (en) * | 2020-08-05 | 2023-05-30 | Capital One Services, Llc | Systems and methods for generating dynamic conversational responses using machine learning models |
WO2022043903A1 (en) * | 2020-08-26 | 2022-03-03 | BlueStack Systems, Inc. | Methods, systems and computer program products for enabling scrolling within a software application |
CN114237413A (zh) * | 2020-09-09 | 2022-03-25 | 华为技术有限公司 | 处理交互事件的方法和装置 |
WO2022248056A1 (en) * | 2021-05-27 | 2022-12-01 | Telefonaktiebolaget Lm Ericsson (Publ) | One-handed operation of a device user interface |
USD991967S1 (en) * | 2021-08-12 | 2023-07-11 | Yext, Inc. | Electronic device display or portion thereof with a graphical user interface |
US12039139B1 (en) * | 2022-06-24 | 2024-07-16 | Freedom Scientific, Inc. | Bifurcation of rendered and system pointing indicia to enable input via a viewport |
CN116954395B (zh) * | 2023-09-21 | 2023-11-21 | 深圳博骏科技有限公司 | 基于多传感器融合的鼠标位移调控*** |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100771626B1 (ko) * | 2006-04-25 | 2007-10-31 | 엘지전자 주식회사 | 단말기 및 이를 위한 명령 입력 방법 |
US10437459B2 (en) | 2007-01-07 | 2019-10-08 | Apple Inc. | Multitouch data fusion |
US20090213083A1 (en) | 2008-02-26 | 2009-08-27 | Apple Inc. | Simulation of multi-point gestures with a single pointing device |
US8717305B2 (en) | 2008-03-04 | 2014-05-06 | Apple Inc. | Touch event model for web pages |
US8645827B2 (en) | 2008-03-04 | 2014-02-04 | Apple Inc. | Touch event model |
US8214539B1 (en) | 2009-02-23 | 2012-07-03 | Kulanko Robert J | Command mapping systems relating input devices to application program interfaces |
US9684521B2 (en) | 2010-01-26 | 2017-06-20 | Apple Inc. | Systems having discrete and continuous gesture recognizers |
US8285499B2 (en) | 2009-03-16 | 2012-10-09 | Apple Inc. | Event recognition |
JP5636678B2 (ja) * | 2010-01-19 | 2014-12-10 | ソニー株式会社 | 表示制御装置、表示制御方法及び表示制御プログラム |
US20120026077A1 (en) * | 2010-07-28 | 2012-02-02 | Google Inc. | Mapping trackpad operations to touchscreen events |
US9348417B2 (en) * | 2010-11-01 | 2016-05-24 | Microsoft Technology Licensing, Llc | Multimodal input system |
KR101645685B1 (ko) | 2010-12-20 | 2016-08-04 | 애플 인크. | 이벤트 인식 |
KR101381878B1 (ko) | 2012-04-10 | 2014-04-07 | 주식회사 오비고 | 마우스를 이용하여 터치 입력을 구현하기 위한 방법, 장치, 및 컴퓨터 판독 가능한 기록 매체 |
WO2013169851A2 (en) * | 2012-05-09 | 2013-11-14 | Yknots Industries Llc | Device, method, and graphical user interface for facilitating user interaction with controls in a user interface |
WO2013169845A1 (en) * | 2012-05-09 | 2013-11-14 | Yknots Industries Llc | Device, method, and graphical user interface for scrolling nested regions |
KR20140026177A (ko) * | 2012-08-24 | 2014-03-05 | 삼성전자주식회사 | 스크롤링 제어 방법 및 장치 |
JP5489379B1 (ja) * | 2013-01-18 | 2014-05-14 | パナソニック株式会社 | スクロール装置、スクロール方法及びプログラム |
KR102178845B1 (ko) * | 2013-01-29 | 2020-11-13 | 삼성전자주식회사 | 햅틱을 제어하는 휴대 단말 및 방법 |
KR20140105689A (ko) * | 2013-02-23 | 2014-09-02 | 삼성전자주식회사 | 사용자의 입력에 응답하여 피드백을 제공하는 방법 및 이를 구현하는 단말 |
US9594489B2 (en) * | 2014-08-12 | 2017-03-14 | Microsoft Technology Licensing, Llc | Hover-based interaction with rendered content |
KR102324083B1 (ko) * | 2014-09-01 | 2021-11-09 | 삼성전자주식회사 | 화면 확대 제공 방법 및 그 전자 장치 |
US10466811B2 (en) * | 2016-05-20 | 2019-11-05 | Citrix Systems, Inc. | Controlling a local application running on a user device that displays a touchscreen image on a touchscreen via mouse input from external electronic equipment |
US10831331B2 (en) * | 2018-03-09 | 2020-11-10 | International Business Machines Corporation | Window control for simultaneously running applications |
US10921975B2 (en) | 2018-06-03 | 2021-02-16 | Apple Inc. | Devices, methods, and user interfaces for conveying proximity-based and contact-based input events |
-
2019
- 2019-05-29 US US16/425,828 patent/US10921975B2/en active Active
- 2019-05-31 CN CN201980032190.6A patent/CN112119370A/zh active Pending
- 2019-05-31 EP EP19732177.1A patent/EP3803562B1/en active Active
- 2019-05-31 WO PCT/US2019/034846 patent/WO2019236404A1/en unknown
- 2019-05-31 EP EP24153387.6A patent/EP4339772A3/en active Pending
-
2021
- 2021-01-08 US US17/145,168 patent/US11762546B2/en active Active
-
2023
- 2023-04-27 US US18/140,544 patent/US20230259269A1/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115202527A (zh) * | 2022-07-28 | 2022-10-18 | 润芯微科技(江苏)有限公司 | 一种基于悬停状态的全局笔写实现方法 |
Also Published As
Publication number | Publication date |
---|---|
US20210132762A1 (en) | 2021-05-06 |
US20230259269A1 (en) | 2023-08-17 |
EP4339772A3 (en) | 2024-05-29 |
EP3803562A1 (en) | 2021-04-14 |
EP3803562B1 (en) | 2024-03-06 |
WO2019236404A1 (en) | 2019-12-12 |
US11762546B2 (en) | 2023-09-19 |
EP4339772A2 (en) | 2024-03-20 |
US20190369829A1 (en) | 2019-12-05 |
US10921975B2 (en) | 2021-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11954323B2 (en) | Devices, methods, and graphical user interfaces for initiating a payment action in a messaging session | |
US12045451B2 (en) | Device, method, and graphical user interface for moving a user interface object based on an intensity of a press input | |
US11762546B2 (en) | Devices, methods, and user interfaces for conveying proximity-based and contact-based input events | |
CN107924277B (zh) | 用于通过物理手势操纵用户界面的设备、方法和图形用户界面 | |
CN107430488B (zh) | 基于活动的阈值和反馈 | |
US10620781B2 (en) | Device, method, and graphical user interface for moving a cursor according to a change in an appearance of a control icon with simulated three-dimensional characteristics | |
CN110568965B (zh) | 用于处理触敏表面多个区域上触摸输入的设备和方法 | |
CN107831991B (zh) | 用于确定是滚动还是选择内容的设备、方法和图形用户界面 | |
CN109062488B (zh) | 用于选择用户界面对象的设备、方法和图形用户界面 | |
WO2016039863A1 (en) | Landscape springboard | |
US10684704B2 (en) | Devices and method for manipulating user interfaces with stylus and non-stylus contacts | |
US10007418B2 (en) | Device, method, and graphical user interface for enabling generation of contact-intensity-dependent interface responses | |
US10540071B2 (en) | Device, method, and graphical user interface for displaying a zoomed-in view of a user interface | |
CN109416599B (zh) | 用于处理触摸输入的设备和方法 | |
CN112732153B (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 |