Continuity
By detecting the application status of external devices and displaying enlightenment on local devices, and automatically launching the corresponding application, it solves the problem of users seamlessly switching between different devices, improves work efficiency and saves resources.
Patent Information
- Application Number
- CN202110894284.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2015-03-06
- Filing Date
- 2015-05-29
- Publication Date
- 2025-07-22
- Estimated Expiration
- 2035-05-29
AI Technical Summary
The prior art is difficult to achieve the user's seamless conversion of application status between different electronic devices, resulting in repeated operations and cognitive burdens when switching devices.
By detecting the application being executed by an external device, receiving usage information, and displaying revelations on the local device, the user automatically starts the corresponding application after selection, achieving seamless conversion.
Reduces the cognitive burden on users when switching devices, improves work efficiency, and saves processor and battery power.
Smart Images

Figure CN113596173B_ABST
Abstract
Description
[0001] This application is a divisional application of the patent application for invention with the application date of May 29, 2015, application number 201510288981.9, and invention title "CONTINUITY".
[0002] Cross-reference to related applications
[0003] This application claims priority to International Application PCT / US2015 / 019309 "CONTINUITY" filed on March 6, 2015; International Application PCT / US2015 / 019306 "CONTINUITY" filed on March 6, 2015; International Application PCT / US2015 / 019317 "CONTINUITY" filed on March 6, 2015; U.S. Provisional Patent Application Serial No. 62 / 035,348 "CONTINUITY" filed on August 8, 2014; and U.S. Provisional Patent Application Serial No. 62 / 006,043 "CONTINUITY" filed on May 30, 2014.
[0004] This application claims the benefit of the following co-pending provisional applications: International Application PCT / US2015 / 019309 "CONTINUITY", filed on March 6, 2015; International Application PCT / US2015 / 019306 "CONTINUITY", filed on March 6, 2015; International Application PCT / US2015 / 019317 "CONTINUITY", filed on March 6, 2015; U.S. Patent Application Serial No. 62 / 005,781 "ACTIVITY CONTINUATION BETWEEN ELECTRONIC DEVICES", filed on May 30, 2014; U.S. Patent Application Serial No. 62 / 005,793 "COMPANION APPLICATION FOR ACTIVITY COOPERATION", filed on May 30, 2014; U.S. Patent Application Serial No. 62 / 005,751 "PREDEFINED WIRELESS PAIRING", filed on May 30, 2014; and U.S. Patent Application Serial No. 62 / 005,755 "OPERATING-MODE TRANSITIONS BASED ON ADVERTISING INFORMATION", filed on May 30, 2014; U.S. Patent Application Serial No. 62 / 006,043 "CONTINUITY", filed on May 30, 2014; and U.S. Provisional Patent Application Serial No. 62 / 035,348 "CONTINUITY", filed on August 8, 2014.
[0005] This application also relates to the following applications: International Patent Application Serial No. PCT / US2013 / 040087, titled "Device, Method, and Graphical User Interface for Moving a User Interface Object Based on an Intensity of a Press Input", filed on May 8, 2013; International Patent Application Serial No. PCT / US2013 / 040072, titled "Device, Method, and Graphical User Interface for Providing Feedback for Changing Activation States of a User Interface Object", filed on May 8, 2013; International Patent Application Serial No. PCT / US2013 / 040070, titled "Device, Method, and Graphical User Interface for Providing Tactile Feedback for Operations Performed in a User Interface", filed on May 8, 2013; International Patent Application Serial No. PCT / US2013 / 040067, titled "Device, Method, and Graphical User Interface for Facilitating User Interaction with Controls in a User Interface", filed on May 8, 2013; International Patent Application Serial No. PCT / US2013 / 040061, titled "Device, Method, and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application", filed on May 8, 2013; International Patent Application Serial No., titled "Device, Method, and Graphical User Interface for Displaying Additional Information in Response to a User Contact", filed on May 8, 2013PCT / US2013 / 040058; International Patent Application Serial No. PCT / US2013 / 040056, filed on May 8, 2013, titled "Device, Method, and Graphical User Interface for Scrolling Nested Regions"; International Patent Application Serial No. PCT / US2013 / 040054, filed on May 8, 2013, titled "Device, Method, and Graphical User Interface for Manipulating Framed Graphical Objects"; International Patent Application Serial No. PCT / US2013 / 069489, filed on November 11, 2013, titled "Device, Method, and Graphical User Interface for Switching Between User Interfaces"; International Patent Application Serial No. PCT / US2013 / 069486, filed on November 11, 2013, titled "Device, Method, and Graphical User Interface for Determining Whether to Scroll or Select Content"; International Patent Application Serial No. PCT / US2013 / 069484, filed on November 11, 2013, titled "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"; International Patent Application Serial No., filed on November 11, 2013, titled "Device, Method, and Graphical User Interface for Transitioning Between Touch Input to Display Output Relationships"PCT / US2013 / 069483; International Patent Application Serial No. PCT / US2013 / 069479, filed on November 11, 2013, titled "Device, Method, and Graphical User Interface for Forgoing Generation of Tactile Output for a Multi-Contact Gesture"; International Patent Application Serial No. PCT / US2013 / 069472, filed on November 11, 2013, titled "Device, Method, and Graphical User Interface for Navigating User Interface Hierarchies"; International Patent Application Serial No. PCT / US2013 / 040108, filed on May 8, 2013, titled "Device, Method, and Graphical User Interface for Moving and Dropping a User Interface Object"; International Patent Application Serial No. PCT / US2013 / 040101, filed on May 8, 2013, titled "Device, Method, and Graphical User Interface for Selecting User Interface Objects"; International Patent Application Serial No. PCT / US2013 / 040098, filed on May 8, 2013, titled "Device, Method, and Graphical User Interface for Displaying Content Associated with a Corresponding Affordance"; International Patent Application Serial No. PCT / US2013 / 040097, filed on May 8, 2013, titled "Device, Method, and Graphical User Interface for Transitioning Between Display States in Response to a Gesture"PCT / US2013 / 040093; International Patent Application Serial No. PCT / US2013 / 040053, filed on May 8, 2013, titled "Device, Method, and Graphical User Interface for Selecting Object within a Group of Objects"; U.S. Patent Application Serial No. 61 / 778,211, filed on March 12, 2013, titled "Device, Method, and Graphical User Interface for Facilitating User Interaction with Controls in a User Interface"; U.S. Patent Application Serial No. 61 / 778,191, filed on March 12, 2013, titled "Device, Method, and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application"; U.S. Patent Application Serial No. 61 / 778,171, filed on March 12, 2013, titled "Device, Method, and Graphical User Interface for Displaying Additional Information in Response to a User Contact"; U.S. Patent Application Serial No. 61 / 778,179, filed on March 12, 2013, titled "Device, Method and Graphical User Interface for Scrolling Nested Regions"; U.S. Patent Application Serial No. 61 / 778,156, filed on March 12, 2013, titled "Device, Method, and Graphical User Interface for Manipulating Framed Graphical Objects"; U.S. Patent Application Serial No., filed on March 12, 2013, titled "Device, Method, And Graphical User Interface for Navigating User Interface Hierarchies"61 / 778,125; U.S. Patent Application Serial No. 61 / 778,092, filed on March 12, 2013, titled "Device, Method, and Graphical User Interface for Selecting Object Within a Group of Objects"; U.S. Patent Application Serial No. 61 / 778,418, filed on March 13, 2013, titled "Device, Method, and Graphical User Interface for Switching Between User Interfaces"; U.S. Patent Application Serial No. 61 / 778,416, filed on March 13, 2013, titled "Device, Method, and Graphical User Interface for Determining Whether to Scroll or Select Content"; U.S. Patent Application Serial No. 61 / 747,278, filed on December 29, 2012, titled "Device, Method, and Graphical User Interface for Manipulating User Interface Objects with Visual and / or Haptic Feedback"; U.S. Patent Application Serial No. 61 / 778,414, filed on March 13, 2013, titled "Device, Method, and Graphical User Interface for Moving and Dropping a User Interface Object"; U.S. Patent Application Serial No. 61 / 778,413, filed on March 13, 2013, titled "Device, Method, and Graphical User Interface for Selecting User Interface Objects"; U.S. Patent Application Serial No. 61 / 778,413, filed on March 13, 2013, titled "Device, Method, and Graphical User Interface for Displaying Content Associated with a Corresponding Affordance"61 / 778,412; U.S. Patent Application Serial No. 61 / 778,373, filed on March 12, 2013, titled "Device, Method, and Graphical User Interface for Managing Activation of a Control Based on Contact Intensity"; U.S. Patent Application Serial No. 61 / 778,265, filed on March 12, 2013, titled "Device, Method, and Graphical User Interface for Transitioning Between Display States in Response to a Gesture"; U.S. Patent Application Serial No. 61 / 778,367, filed on March 12, 2013, titled "Device, Method, and Graphical User Interface for Moving a User Interface Object Based on an Intensity of a Press Input"; U.S. Patent Application Serial No. 61 / 778,363, filed on March 12, 2013, titled "Device, Method, and Graphical User Interface for Transitioning Between Touch Input to Display Output Relationships"; U.S. Patent Application Serial No. 61 / 778,287, filed on March 12, 2013, titled "Device, Method, and Graphical User Interface for Providing Feedback for Changing Activation States of a User Interface Object"; U.S. Patent Application Serial No., filed on March 12, 2013, titled "Device, Method, and Graphical User Interface for Providing Tactile Feedback for Operations Performed in a User Interface"61 / 778,284; U.S. Patent Application Serial No. 61 / 778,239, filed on March 12, 2013, entitled "Device, Method, and Graphical User Interface for Forgoing Generation of Tactile Output for a Multi-Contact Gesture"; U.S. Patent Application Serial No. 61 / 688,227, filed on May 9, 2012, entitled "Device, Method, and Graphical User Interface for Manipulating User Interface Objects with Visual and / or Haptic Feedback".
[0006] This application also relates to the following application: U.S. Utility Application Serial No. 12 / 987,982, filed on January 10, 2011, entitled "Intelligent Automated Assistant".
[0007] The contents of these applications are hereby incorporated by reference in their entirety. TECHNICAL FIELD
[0008] This disclosure generally relates to computer user interfaces, and more particularly to techniques that allow a user to seamlessly transition from the use of one device to another. BACKGROUND OF THE INVENTION
[0009] Modern electronic devices can support a variety of software applications. Cellular phones, tablet computers, and laptop computers can each execute messaging programs such as email editors and web browsers. Depending on the suitability of the device at the time, a user who owns multiple electronic devices may choose to use one device preferentially over another. For example, while on the go, a user may prefer to read email using a cellular phone. However, the suitability of the device can change. For example, when an email requires a long response, the user may prefer to draft the long response using the full-size keyboard of a laptop computer. To effect such a transition using conventional techniques, the user can power on the laptop computer, start the email application, locate the specific email to which a response is needed, and begin preparing the response. It would be helpful if a user could transition from the use of one device to another in a seamless and cognitively continuous manner, such as from reading email on one device to drafting a response on another. SUMMARY OF THE INVENTION
[0010] In some embodiments, a method includes: an electronic device detecting an external device via wireless communication, where the external device is executing or has executed a first application; receiving usage information from the external device, the information indicating the usage of the first application on the external device; in response to detecting the external device and receiving the usage information, displaying an affordance on a screen of the electronic device; detecting a user selection of the displayed affordance; and in response to detecting the user selection, launching a second application on the electronic device, the second application corresponding to the first application.
[0011] In some embodiments, an electronic device includes: one or more processors; a memory; and one or more programs, where the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for: detecting an external device via wireless communication, where the external device is executing or has executed a first application; receiving usage information from the external device, the information indicating the usage of the first application on the external device; in response to detecting the external device and receiving the usage information, displaying an affordance on a screen of the electronic device; detecting a user selection of the displayed affordance; and in response to detecting the user selection, launching a second application on the electronic device, the second application corresponding to the first application.
[0012] In some embodiments, a non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device, cause the electronic device to: detect an external device via wireless communication, where the external device is executing or has executed a first application; receive usage information from the external device, the information indicating the usage of the first application on the external device; in response to detecting the external device and receiving the usage information, display an affordance on a screen of the electronic device; detect a user selection of the displayed affordance; and in response to detecting the user selection, launch a second application on the electronic device, the second application corresponding to the first application.
[0013] In some embodiments, an electronic device includes: means for detecting an external device via wireless communication, where the external device is executing or has executed a first application; means for receiving usage information from the external device, the information indicating the usage of the first application on the external device; means for displaying an affordance on a screen of the electronic device in response to detecting the external device and receiving the usage information; means for detecting a user selection of the displayed affordance; and means for launching a second application on the electronic device in response to detecting the user selection, the second application corresponding to the first application. BRIEF DESCRIPTION OF THE DRAWINGS
[0014] To better understand the various embodiments, reference should be made to the following detailed description in conjunction with the accompanying drawings, in which like reference numerals refer to corresponding parts throughout the drawings.
[0015] Figure 1A is a block diagram illustrating a portable multifunctional device having a touch-sensitive display in accordance with some embodiments.
[0016] Figure 1B is a block diagram illustrating exemplary components for event handling in accordance with some embodiments.
[0017] Figure 2 illustrates a portable multifunctional device having a touch screen in accordance with some embodiments.
[0018] Figure 3 is a block diagram of an exemplary multifunctional device having a display and a touch-sensitive surface in accordance with some embodiments.
[0019] Figure 4A illustrates an exemplary user interface for an application menu on a portable multifunctional device in accordance with some embodiments.
[0020] Figure 4B illustrates an exemplary user interface for a multifunctional device having a touch-sensitive surface separate from the display in accordance with some embodiments.
[0021] Figure 4C illustrates a personal electronic device in accordance with some embodiments.
[0022] Figure 4D is a block diagram illustrating a personal electronic device in accordance with some embodiments.
[0023] Figures 5A - 5N illustrates an exemplary user interface for switching between electronic devices.
[0024] Figures 6A - 6D illustrates an exemplary type of switching between applications.
[0025] Figures 7A - 7G illustrates an exemplary user interface for switching between electronic devices.
[0026] Figures 8A - 8C illustrates an exemplary user interface for switching between electronic devices.
[0027] Figure 9 is a flowchart illustrating a process for switching between electronic devices.
[0028] Figure 10 is a flowchart illustrating a process for switching between electronic devices.
[0029] Figure 11 It is a flowchart illustrating a process for conversion between electronic devices.
[0030] Figure 12 It is a flowchart illustrating a process for conversion between electronic devices.
[0031] Figure 13 It is a flowchart illustrating a process for conversion between electronic devices.
[0032] Figure 14 It is a flowchart illustrating a process for conversion between electronic devices.
[0033] Figure 15 It is a flowchart illustrating a process for conversion between electronic devices.
[0034] Figure 16 It is a functional block diagram of an electronic device according to some embodiments.
[0035] Figures 17A - 17E It illustrates an exemplary user interface for conversion between electronic devices.
[0036] Figures 18A - 18D It illustrates an exemplary user interface for conversion between electronic devices.
[0037] Figures 19A - 19C It illustrates an exemplary user interface for conversion between electronic devices.
[0038] Figure 20 It is a flowchart illustrating a process for conversion between electronic devices.
[0039] Figure 21 It is a flowchart illustrating a process for conversion between electronic devices.
[0040] Figure 22 It is a flowchart illustrating a process for conversion between electronic devices.
[0041] Figure 23 It is a functional block diagram of an electronic device configured to display a user interface according to some embodiments.
[0042] Figure 24 It is a functional block diagram of an electronic device configured to display a user interface according to some embodiments.
[0043] Figure 25 It is a functional block diagram of an electronic device configured to display a user interface according to some embodiments.
[0044] Figure 26 It is a functional block diagram of an electronic device configured to display a user interface according to some embodiments.
[0045] Figure 27 is a functional block diagram of an electronic device configured to display a user interface according to some embodiments.
[0046] Figure 28 is a functional block diagram of an electronic device configured to display a user interface according to some embodiments.
[0047] Figure 29 is a functional block diagram of an electronic device configured to display a user interface according to some embodiments.
[0048] Figure 30 is a functional block diagram of an electronic device configured to display a user interface according to some embodiments.
[0049] Figure 31 is a functional block diagram of an electronic device configured to display a user interface according to some embodiments.
[0050] Figure 32 is a functional block diagram of an electronic device configured to display a user interface according to some embodiments.
[0051] Figure 33 is a functional block diagram of an electronic device configured to display a user interface according to some embodiments.
[0052] Figure 34 is a functional block diagram of an electronic device configured to display a user interface according to some embodiments.
[0053] Figure 35 is a functional block diagram of an electronic device configured to display a user interface according to some embodiments.
[0054] Figure 36 is a functional block diagram of an electronic device configured to display a user interface according to some embodiments.
[0055] Figure 37 is a functional block diagram of an electronic device configured to display a user interface according to some embodiments.
[0056] Figure 38 is a functional block diagram of an electronic device configured to display a user interface according to some embodiments.
[0057] Figure 39 is a functional block diagram of an electronic device configured to display a user interface according to some embodiments.
[0058] Figure 40 is a functional block diagram of an electronic device configured to display a user interface according to some embodiments.
[0059] Figure 41 is a functional block diagram of an electronic device configured to display a user interface according to some embodiments.
[0060] Figure 42 is a functional block diagram of an electronic device configured to display a user interface according to some embodiments.
[0061] Figure 43 is a flowchart illustrating a process for switching between electronic devices.
[0062] Figure 44 is a flowchart illustrating a process for switching between electronic devices.
[0063] Figure 45 is a flowchart illustrating a process for switching between electronic devices.
[0064] Figure 46 is a flowchart illustrating a process for switching between electronic devices.
[0065] Figure 47 is a flowchart illustrating a process for switching between electronic devices.
[0066] Figure 48 is a flowchart illustrating a process for switching between electronic devices.
[0067] Figure 49 is a flowchart illustrating a process for switching between electronic devices.
[0068] Figure 50 is a flowchart illustrating a process for switching between electronic devices.
[0069] Figure 51 is a flowchart illustrating a process for switching between electronic devices.
[0070] Figure 52 is a flowchart illustrating a process for switching between electronic devices.
[0071] Figure 53 is a flowchart illustrating a process for switching between electronic devices. Detailed implementation
[0072] The following description sets forth exemplary methods, parameters, etc. However, it should be recognized that this description is not intended as a limitation on the scope of the present disclosure, but rather as a description of exemplary embodiments.
[0073] An electronic device needs to allow a user to efficiently switch from using one device to another. For example, if a user is using an application on a first device, it would be helpful to have a second device - the device to which the user is switching - automatically launch the same application so that the user can continue without loss of progress. Such techniques can reduce the cognitive burden on the user regarding switching between the use of multiple computing devices, thereby increasing productivity. Additionally, such techniques can reduce processor and battery power that would otherwise be wasted on redundant user input.
[0074] Hereinafter, Figures 1A - 1B , 2, 3, 4A - 4D, 16, and 23 - 42 provide a description of exemplary devices for performing techniques for switching between computing devices. Figures 5A - 5L , 6A - 6D, 7A - 7G, 8A - 8C, 17A - 17E, 18A - 18D, and 19A - 19C illustrate exemplary user interfaces for switching between computing devices. Figures 9 - 15 , 20 - 22, and 43 - 53 are flowcharts illustrating methods for managing event notifications according to some embodiments. Figures 5A - 5L , the user interfaces in 6A - 6D, 7A - 7G, 8A - 8C, 17A - 17E, 18A - 18D, and 19A - 19C are used to illustrate the processes described below, including Figures 9 - 15 , the processes in 20 - 22 and 43 - 53.
[0075] Although the following description uses terms such as "first", "second", etc. to describe various elements, these elements should not be limited by the terms. These terms are only used to distinguish one element from another. For example, without departing from the scope of the various described embodiments, a first touch can be referred to as a second touch, and similarly, a second touch can be referred to as a first touch. The first touch and the second touch are both touches, but they are not the same touch.
[0076] The terms used in the description of the various embodiments herein are only for the purpose of describing specific embodiments and are not intended to be limiting. As used in the various described embodiments and the appended claims, unless the context clearly indicates otherwise, the singular forms "a" and "the" are also intended to include the plural forms. It should also be understood that, as used herein, the term "and / or" refers to and encompasses any and all possible combinations of one or more of the associated listed items. It should also be understood that when used in this specification, the terms "comprises", "comprising" specify the presence of the stated features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0077] Depending on the context, the term "if" can be considered to mean "when" or "while" or "in response to determining" or "in response to detecting". Similarly, depending on the context, the phrase "if determined" or "if [the condition or event] is detected" can be considered to mean "when determining..." or "in response to determining" or "when [the condition or event] is detected" or "in response to detecting [the condition or event]".
[0078] Embodiments of an electronic device, a user interface for such a device, and an associated process for using such a device are described. In some embodiments, the device is a portable communication device, such as a mobile phone, that also includes other functions such as PDA and / or music player functionality. Exemplary embodiments of the portable multifunctional device include, but are not limited to, the iPod and devices from Apple Inc., located in Cupertino, California. Other portable electronic devices, such as laptop or tablet computers having a touch-sensitive surface (e.g., a touch screen display and / or a touchpad), may optionally be used. It should also be understood that in some embodiments, the device is not a portable communication device, but a desktop computer having a touch-sensitive surface (e.g., a touch screen display and / or a touchpad).
[0079] In the following discussion, an electronic device including a display and a touch-sensitive surface is described. However, it should be understood that the electronic device optionally includes one or more other physical user interface devices, such as a physical keyboard, a mouse, and / or a joystick.
[0080] The device may support various applications, such as one or more of the following: drawing applications, presentation applications, word processing applications, website creation applications, disk authoring applications, spreadsheet applications, gaming applications, telephone applications, video conferencing applications, email applications, instant messaging applications, workout support applications, photo management applications, digital camera applications, digital video camera applications, web browsing applications, digital music player applications, and / or digital video player applications.
[0081] These various applications executed on the device optionally use at least one common physical user interface device, such as a touch-sensitive surface. One or more functions of the touch-sensitive surface and the corresponding information displayed on the device are optionally adjusted and / or changed from one application to the next and / or within respective applications. In this way, a common physical architecture of the device, such as a touch-sensitive surface, optionally supports various applications with a user interface that is intuitive and transparent to the user.
[0082] Attention is now turned to embodiments of a portable device having a touch-sensitive display. Figure 1A FIG. Figure 1A is a block diagram illustrating a portable multifunctional device 100 having a touch-sensitive display system 112 in accordance with some embodiments. For convenience, the touch-sensitive display 112 is sometimes referred to as a "touch screen" and sometimes recognized as or referred to as a "touch-sensitive display system." The device 100 includes a memory 102 (the memory 102 optionally includes one or more computer-readable storage media), a memory controller 122, one or more processing units (CPUs) 120, a peripheral interface 118, RF circuitry 108, audio circuitry 110, a speaker 111, a microphone 113, an input / output (I / O) subsystem 106, other input control devices 116, and an external port 124. The device 100 optionally includes one or more optical sensors 164. The device 100 optionally includes one or more contact intensity sensors 165 for detecting the intensity of contacts on the device 100 (e.g., a touch-sensitive surface such as the touch-sensitive display system 112 of the device 100). The device 100 optionally includes one or more haptic output generators 167 for generating haptic output on the device 100 (e.g., generating haptic output on a touch-sensitive surface such as the touch-sensitive display system 112 of the device 100 or the touchpad 355 of the device 300). These components optionally communicate via one or more communication buses or signal lines 103.
[0083] As used in this specification and the claims, the term "intensity" of a contact on a touch-sensitive surface refers to the force or pressure (force per unit area) of a contact (e.g., finger contact) on the touch-sensitive surface, or to a surrogate for the force or pressure of a contact on the touch-sensitive surface. The intensity of a contact has a range of values that includes at least four different values and more typically includes hundreds of different values (e.g., at least 256). The intensity of a contact is optionally determined (or measured) using a variety of methods and a variety of sensors or combinations of sensors. For example, one or more force sensors underlying or adjacent to the touch-sensitive surface are optionally used to measure the force at various points on the touch-sensitive surface. In some implementations, force measurements from multiple force sensors are combined (e.g., weighted average) to determine an estimated contact force. Similarly, a pressure-sensitive tip of a stylus is optionally used to determine the pressure of the stylus on the touch-sensitive surface. Alternatively, the size of the contact area detected on the touch-sensitive surface and / or a change thereto, the capacitance of the touch-sensitive surface proximate to the contact and / or a change thereto, and / or the resistance of the touch-sensitive surface proximate to the contact and / or a change thereto are optionally used as a surrogate for the force or pressure of a contact on the touch-sensitive surface. In some implementations, the surrogate measurement of the contact force or pressure is directly used to determine whether an intensity threshold is exceeded (e.g., the intensity threshold is described in units corresponding to the surrogate measurement). In some implementations, the surrogate measurement of the contact force or pressure is converted into an estimated force or pressure, and the estimated force or pressure is used to determine whether an intensity threshold is exceeded (e.g., the intensity threshold is a pressure threshold measured in units of pressure). Using the intensity of a contact as an attribute of user input allows a user to access additional device functions that would otherwise not be accessible to the user on a downsized device, where the downsized device has a limited area to display cues (e.g., on a touch-sensitive display) and / or receive user input (e.g., via the touch-sensitive display, a touch-sensitive surface, or a physical / mechanical control device such as a knob or button).
[0084] As used in this specification and the claims, the term "haptic output" refers to a physical displacement of the device relative to its previous position that will be detected by the user using the user's sense of touch, a physical displacement of a component of the device (e.g., a touch-sensitive surface) relative to another component of the device (e.g., the housing), or a displacement of the component relative to the center of mass of the device. For example, in a case where the device or a component of the device is in contact with a surface that is sensitive to touch by the user (e.g., a finger, palm, or other part of the user's hand), the haptic output generated by the physical displacement will be interpreted by the user as a haptic sensation corresponding to a perceived change in the physical characteristics of the device or device component. For example, movement of a touch-sensitive surface (e.g., a touch-sensitive display or a touchpad) may optionally be interpreted by the user as a "down click" or an "up click" of a physical actuator button. In some cases, even when there is no movement of a physical actuator button associated with the touch-sensitive surface that is physically depressed (e.g., displaced) by the user's movement, the user will sense a haptic sensation such as a "down click" or an "up click". As another example, even when the smoothness of the touch-sensitive surface does not change, movement of the touch-sensitive surface may optionally be interpreted by the user as or sensed as a "roughness" of the touch-sensitive surface. Although the user's interpretation of touch will be subject to the user's individual sensory perception, there are many sensory perceptions of touch that are common to most users. Thus, when a haptic output is described as corresponding to a particular sensory perception of the user (e.g., "up click", "down click", "roughness"), unless otherwise stated, the generated haptic output corresponds to a physical displacement of the device or its component that will generate the described sensory perception for a typical (or average) user.
[0085] It should be understood that device 100 is merely an example of a portable multifunctional device, and device 100 may optionally have more or fewer components than shown, may optionally combine two or more components, or may optionally have a different configuration or arrangement of components. Figure 1A The various components shown are implemented in hardware, software, or a combination of hardware and software, including one or more signal processing and / or application specific integrated circuits.
[0086] Memory 102 may include one or more computer-readable storage media. The computer-readable storage media may be tangible and non-transitory. Memory 102 may include high-speed random access memory and may also include non-volatile memory, such as one or more disk storage devices, flash memory devices, or other non-volatile solid state memory devices. Memory controller 122 may control access to memory 102 by other components of device 100.
[0087] The peripheral interface 118 can be used to couple the input and output peripherals of the device to the CPU 120 and the memory 102. One or more processors 120 run or execute various software programs and / or instruction sets stored in the memory 102 to perform the various functions of the device 100 and process data. In some embodiments, the peripheral interface 118, the CPU 120, and the memory controller 122 can be implemented on a single chip, such as chip 104. In some other embodiments, they can be implemented on separate chips.
[0088] The RF (Radio Frequency) circuit system 108 receives and transmits RF signals, also known as electromagnetic signals. The RF circuit system 108 converts electrical signals into electromagnetic signals / from electromagnetic signals into electrical signals, and communicates with communication networks and other communication devices through electromagnetic signals. The RF circuit system 108 optionally includes well-known circuit systems for performing these functions, including but not limited to antenna systems, RF transceivers, one or more amplifiers, tuners, one or more oscillators, digital signal processors, CODEC chip sets, subscriber identity module (SIM) cards, memories, and so on. The RF circuit system 108 optionally communicates with networks and other devices wirelessly, networks such as the Internet, also known as the World Wide Web (WWW), intranets, and / or wireless networks, such as cellular phone networks, wireless local area networks (LANs), and / or metropolitan area networks (MANs). The RF circuit system 108 optionally includes well-known circuit systems for detecting near field communication (NFC) fields, such as through short-range communication radios. Wireless communication optionally uses any of a variety of communication standards, protocols, and technologies, including but not limited to Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), High-Speed Downlink Packet Access (HSDPA), High-Speed Uplink Packet Access (HSUPA), Evolution-Data Only (EV-DO), HSPA, HSPA+, Dual Cell HSPA (DC-HSPDA), Long Term Evolution (LTE), Near Field Communication (NFC), Wideband Code Division Multiple Access (W-CDMA), Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Bluetooth, Bluetooth Low Energy (BTLE), Wi-Fi (e.g., IEEE 802.11, IEEE 802.11b, IEEE 802.11g, IEEE 802.11n, and / or IEEE 802.11ac), Voice over Internet Protocol (VoIP), WiMAX, protocols for email (e.g., Internet Message Access Protocol (IMAP) and / or Post Office Protocol (POP)), instant messaging (e.g., Extensible Messaging and Presence Protocol (XMPP), Instant Messaging and Presence Support Extension for Session Initiation Protocol (SIMPLE), Instant Messaging and Presence Service (IMPS)), and / or Short Message Service (SMS), or any other suitable communication protocol, including communication protocols not yet developed as of the date of submission of this document.
[0089] The audio circuitry 110, speaker 111, and microphone 113 provide an audio interface between the user and the device 100. The audio circuitry 110 receives audio data from the peripheral interface 118, converts the audio data into an electrical signal, and transmits the electrical signal to the speaker 111. The speaker 111 converts the electrical signal into sound waves audible to a human. The audio circuitry 110 also receives the electrical signal converted from sound waves by the microphone 113. The audio circuitry 110 converts the electrical signal into audio data and transmits the audio data to the peripheral interface 118 for processing. The audio data may be retrieved by the peripheral interface 118 from the memory 102 and / or the RF circuitry 108 and / or transmitted to the memory 102 and / or the RF circuitry 108. In some embodiments, the audio circuitry 110 also includes a headphone jack (e.g., Figure 2 212). The headphone jack provides an interface between the audio circuitry 110 system and a detachable audio input / output peripheral, such as an earbud that only outputs or a headset that has both output (e.g., earbuds for one or both ears) and input (e.g., a microphone).
[0090] The I / O subsystem 106 couples input / output peripherals on the device 100, such as the touchscreen 112 and other input control devices 116, to the peripheral interface 118. The I / O subsystem 106 optionally includes a display controller 156, an optical sensor controller 158, an intensity sensor controller 159, a haptic feedback controller 161, and one or more input controllers 160 for other input or control devices. The one or more input controllers 160 receive / send electrical signals to / from the other input control devices 116. The other input control devices 116 optionally include physical buttons (e.g., push buttons, rocker buttons, etc.), dials, slider switches, joysticks, click wheels, etc. In some alternative embodiments, the input controller 160 is optionally coupled to any one (or none) of the following: a keyboard, an infrared port, a USB port, and a pointing device such as a mouse. One or more buttons (e.g., Figure 2 208) optionally include up / down buttons for volume control of the speaker 111 and / or the microphone 113. One or more buttons optionally include push buttons (e.g., Figure 2 206).
[0091] A quick press of the push button can unlock the touch screen 112 or initiate the process of unlocking the device using gestures on the touch screen, as described in U.S. Patent Application No. 11 / 322,549, "Unlocking a Device by Performing Gestures on an Unlock Image," filed on December 23, 2005, and U.S. Patent No. 7,657,849, the entire contents of which are incorporated herein by reference. A long press of the push button (e.g., 206) can turn the power of the device 100 on or off. The user may be able to customize the functions of one or more buttons. The touch screen 112 is used to implement virtual or soft buttons and one or more soft keyboards.
[0092] The touch-sensitive display 112 provides an input interface and an output interface between the device and the user. The display controller 156 receives / sends electrical signals to / from the touch screen 112. The touch screen 112 displays visual output to the user. The visual output may include graphics, text, icons, videos, and any combination thereof (collectively referred to as "graphics"). In some embodiments, some or all of the visual output may correspond to user interface objects.
[0093] The touch screen 112 has a touch-sensitive surface, sensor, or collection of sensors that receive input from the user based on haptic and / or tactile contact. The touch screen 112 and the display controller 156 (along with any associated modules and / or instruction sets in the memory 102) detect contact (and any movement or interruption of the contact) on the touch screen 112 and translate the detected contact into an interaction with user interface objects (e.g., one or more soft keys, icons, web pages, or images) displayed on the touch screen 112. In an exemplary embodiment, the point of contact between the touch screen 112 and the user corresponds to the user's finger.
[0094] The touch screen 112 may use LCD (liquid crystal display) technology, LPD (light emitting polymer display) technology, or LED (light emitting diode) technology, but other display technologies may be used in other embodiments. The touch screen 112 and the display controller 156 may detect contact and any movement or interruption thereof using any of a variety of presently known or later developed touch-sensing technologies, including but not limited to capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with the touch screen 112. In an exemplary embodiment, projected mutual capacitance sensing technology is used, such as those found in and those found in
[0095] In some embodiments of the touch screen 112, the touch-sensitive display may be similar to the multi-touch sensitive touchpad described in the following U.S. patents: 6,323,846 (issued to Westerman et al.), 6,570,557 (issued to Westerman et al.) and / or 6,677,932 (Westerman) and / or U.S. Patent Publication 2002 / 0015024A1, the entire contents of each of which are incorporated herein by reference. However, the touch screen 112 displays the visual output from the device 100, while the touch-sensitive touchpad does not provide a visual output.
[0096] In some embodiments of the touchscreen 112, the touch-sensitive display may be as described in the following applications: (1) U.S. Patent Application No. 11 / 381,313, "Multipoint Touch Surface Controller," filed on May 2, 2006; (2) U.S. Patent Application No. 0 / 840,862, "Multipoint Touchscreen," filed on May 6, 2004; (3) U.S. Patent Application No. 10 / 903,964, "Gestures For Touch Sensitive Input Devices," filed on July 30, 2004; (4) U.S. Patent Application No. 11 / 048,264, "Gestures For Touch Sensitive Input Devices," filed on January 31, 2005; (5) U.S. Patent Application No. 11 / 038,590, "Mode-Based Graphical User Interfaces For Touch Sensitive Input Devices," filed on January 18, 2005; (6) U.S. Patent Application No. 11 / 228,758, "Virtual Input Device Placement On A Touch Screen User Interface," filed on September 16, 2005; (7) U.S. Patent Application No. 11 / 228,700, "Operation Of A Computer With A Touch Screen Interface," filed on September 16, 2005; (8) U.S. Patent Application No. 11 / 228,737, "Activating Virtual Keys Of A Touch-Screen Virtual Keyboard," filed on September 16, 2005; and (9) U.S. Patent Application No. 11 / 367,749, "Multi-Functional Hand-Held Device," filed on March 3, 2006. The entire contents of all of these applications are incorporated herein by reference.
[0097] The touch screen 112 may have a video resolution of more than 100 dpi. In some embodiments, the touch screen may have a video resolution of approximately 160 dpi. A user may contact the touch screen 112 using any suitable object or appendage, such as a stylus, a finger, and the like. In some embodiments, the user interface is designed to work primarily with finger-based contacts and gestures, which may be less precise than stylus-based input due to the larger contact area of the finger on the touch screen. In some embodiments, the device translates the finger-based rough input into an accurate pointer / cursor position or command for performing the action desired by the user.
[0098] In some embodiments, in addition to the touch screen, the device 100 may further include a touchpad (not shown) for activating or deactivating specific functions. In some embodiments, the touchpad is a touch-sensitive area of the device. Unlike the touch screen, the touchpad does not display a visual output. The touchpad may be a touch-sensitive surface separate from the touch screen 112 or an extension of the touch-sensitive surface formed by the touch screen.
[0099] The device 100 further includes a power system 162 for powering various components. The power system 162 may include a power management system, one or more power sources (e.g., batteries, alternating current (AC)), a charging system, a power failure detection circuit, a power converter or inverter, a power status indicator (e.g., a light-emitting diode (LED)), and any other components associated with power generation, management, and distribution in a portable device.
[0100] The device 100 may further include one or more optical sensors 164. Figure 1A An optical sensor coupled to the optical sensor controller 158 in the I / O subsystem 106 is shown. The optical sensor 164 may include a charge-coupled device (CCD) or a complementary metal-oxide semiconductor (CMOS) phototransistor. The optical sensor 164 receives light from the environment, projects it through one or more lenses, and converts the light into data representing an image. In combination with the imaging module 143 (also referred to as a camera module), the optical sensor 164 may capture still images or videos. In some embodiments, the optical sensor is located on the back of the device 100, opposite the touch screen display 112 located on the front of the device, such that the touch screen display may be used as a viewfinder for still and / or video image acquisition. In some embodiments, the optical sensor is located on the front of the device, such that an image of the user may be obtained while the user views other video conference participants on the touch screen display for a video conference. In some embodiments, the position of the optical sensor 164 may be changed by the user (e.g., by rotating the lens and sensor in the device housing), such that a single optical sensor 164 may be used both for video conferencing and for still and / or video image acquisition in conjunction with the touch screen display.
[0101] Device 100 optionally further includes one or more contact intensity sensors 165. Figure 1A A contact intensity sensor coupled to an intensity sensor controller 159 in the I / O subsystem 106 is shown. The contact intensity sensor 165 optionally includes one or more piezoresistive strain gauges, capacitive force sensors, electric power sensors, piezoelectric force sensors, optical force sensors, capacitive touch-sensitive surfaces, or other intensity sensors (e.g., sensors for measuring contact force (or pressure) on a touch-sensitive surface). The contact intensity sensor 165 receives contact intensity information (e.g., pressure information or a surrogate for pressure information) from the environment. In some embodiments, at least one contact intensity sensor is placed together with, or in proximity to, a touch-sensitive surface (e.g., a touch-sensitive display system 112). In some embodiments, at least one contact intensity sensor is located on the back of the device 100, opposite the touch screen display 112 located on the front of the device 100.
[0102] Device 100 may further include one or more proximity sensors 166. Figure 1A A proximity sensor 166 coupled to the peripheral interface 118 is shown. Alternatively, the proximity sensor 166 may be coupled to an input controller 160 in the I / O subsystem 106. The proximity sensor 166 may operate as described in the following U.S. patent applications: Application No. 11 / 241,839, “Proximity Detector In Handheld Device”; Application No. 11 / 240,788, “ProximityDetector In Handheld Device”; Application No. 11 / 620,702, “Using Ambient Light Sensor ToAugment Proximity Sensor Output”; Application No. 11 / 586,862, “Automated Response To AndSensing Of User Activity In Portable Devices”; and Application No. 11 / 638,251, “MethodsAnd Systems For Automatic Configuration Of Peripherals”, the entire contents of which are incorporated herein by reference. In some embodiments, when the multifunctional device is placed near the user's ear (e.g., when the user is making a phone call), the proximity sensor turns off and disables the touch screen 112.
[0103] Device 100 optionally further includes one or more haptic output generators 167.Figure 1A An output generator for haptic feedback coupled to a haptic feedback controller 161 in an I / O subsystem 106 is shown. The haptic output generator 167 optionally includes one or more electroacoustic devices such as speakers or other audio components, and / or electromechanical devices that convert energy into linear movement, such as motors, solenoids, electroactive polymers, piezoelectric actuators, electrostatic actuators, or other haptic output generating components (e.g., components that convert an electrical signal into a haptic output on the device). The contact intensity sensor 165 receives haptic feedback generation instructions from the haptic feedback module 133 and generates a haptic output on the device 100 that can be sensed by a user of the device 100. In some embodiments, at least one haptic output generator is placed together with, or in proximity to, a touch-sensitive surface (e.g., the touch-sensitive display system 112), and optionally, a haptic output is generated by moving the touch-sensitive surface vertically (e.g., into / out of the surface of the device 100) or laterally (back and forth in the same plane as the surface of the device 100). In some embodiments, at least one haptic output generator sensor is located on the back of the device 100, opposite the touch screen display 112 located on the front of the device 100.
[0104] The device 100 may also include one or more accelerometers 168. Figure 1A An accelerometer 168 coupled to the peripheral interface 118 is shown. Alternatively, the accelerometer 168 may be coupled to an input controller 160 in the I / O subsystem 106. The accelerometer 168 may operate as described in U.S. Patent Publication No. 20050190059, "Acceleration-based Theft Detection System for Portable Electronic Devices" and U.S. Patent Publication No. 20060017692, "Methods And Apparatuses For Operating A Portable Device Based On An Accelerometer", the entire contents of both of which are incorporated herein by reference. In some embodiments, based on an analysis of data received from one or more accelerometers, information is displayed in a portrait view or a landscape view on the touch screen display. In addition to the accelerometer 168, the device 100 optionally includes a magnetometer (not shown) and a GPS (or GLONASS or other global navigation system) receiver (not shown) for obtaining information about the location and orientation (e.g., portrait or landscape) of the device 100.
[0105] In some embodiments, the software components stored in the memory 102 include an operating system 126, a communication module (or instruction set) 128, a touch / motion module (or instruction set) 130, a graphics module (or instruction set) 132, a text input module (or instruction set) 134, a Global Positioning System (GPS) module (or instruction set) 135, and applications (or instruction sets) 136. Additionally, in some embodiments, the memory 102 ( Figure 1A ) or 370 ( Figure 3 ) stores a device / global internal state 157, as Figure 1A and Figure 3 shown. The device / global internal state 157 includes one or more of the following: an active application state indicating which applications (if any) are currently active; a display state indicating which applications, views, or other information occupy the respective regions of the touch screen display 112; a sensor state including information obtained from the various sensors and input control devices 116 of the device; and location information regarding the location and / or orientation of the device.
[0106] The operating system 126 (e.g., Darwin, RTXC, LINUX, UNIX, OS X, iOS, WINDOWS, or an embedded operating system such as VxWorks) includes various software components and / or drivers for controlling and managing general system tasks (e.g., memory management, storage device control, power management, etc.) and for facilitating communication between various hardware and software components.
[0107] The communication module 128 helps to facilitate communication with other devices via one or more external ports 124 and also includes various software components for processing data received by the RF circuitry 108 and / or the external ports 124. The external ports 124 (e.g., Universal Serial Bus (USB), FIREWIRE, etc.) are adapted to be directly or indirectly coupled to other devices either directly or via a network (e.g., the Internet, a wireless LAN, etc.). In some embodiments, the external port is a multi-pin (e.g., 30-pin) connector that is the same as or similar and / or compatible with the 30-pin connector used on (a trademark of Apple Inc.) devices.
[0108] The contact / motion module 130 optionally detects contact with the touch screen 112 (in conjunction with the display controller 156) and other touch-sensitive devices (e.g., a touchpad or a physical click wheel). The contact / motion module 130 includes various software components for performing various operations related to contact detection, such as determining whether contact has occurred (e.g., detecting a finger-down event), determining the intensity of the contact (e.g., the force or pressure of the contact or a surrogate for the force or pressure of the contact), determining whether there is movement of the contact and tracking the movement across the touch-sensitive surface (e.g., detecting one or more finger-drag events), and determining whether the contact has stopped (e.g., detecting a finger-lift event or an interruption of the contact). The contact / motion module 130 receives contact data from the touch-sensitive surface. Determining the movement of the contact point represented by a series of contact data optionally includes determining the rate (magnitude), velocity (magnitude and direction), and / or acceleration (change in magnitude and / or direction) of the contact point. These operations are optionally applied to a single contact (e.g., a finger contact) or multiple simultaneous contacts (e.g., “multi-touch” / multi-finger contacts). In some embodiments, the contact / motion module 130 and the display controller 156 detect contact on the touchpad.
[0109] In some embodiments, the contact / motion module 130 uses a set of one or more intensity thresholds to determine whether an operation has been performed by the user (e.g., to determine whether the user has “clicked” on an icon). In some embodiments, at least a subset of the intensity thresholds is determined based on software parameters (e.g., the intensity thresholds are not determined by the activation thresholds of specific physical actuators and can be adjusted without changing the physical hardware of the device 100). For example, the mouse “click” threshold for a touchpad or a touch screen display can be set to any of a wide range of predefined thresholds without changing the touchpad or touch screen display hardware. Additionally, in some implementations, software settings are provided for the user of the device to adjust one or more of the set of intensity thresholds (e.g., by adjusting individual intensity thresholds and / or by adjusting multiple intensity thresholds at once using a system-level click “intensity” parameter).
[0110] The contact / motion module 130 optionally detects gesture inputs from the user. Different gestures on the touch-sensitive surface have different contact patterns (e.g., different motions, timings, and / or intensities of the detected contact). Thus, gestures are optionally detected by detecting specific contact patterns. For example, detecting a finger tap gesture includes detecting a finger-down event, followed by detecting a finger-lift (lift-off) event at the same position (or substantially the same position) as the finger-down event (e.g., at the position of an icon). As another example, detecting a finger swipe gesture on the touch-sensitive surface includes detecting a finger-down event, followed by detecting one or more finger-drag events, and then followed by detecting a finger-lift (lift-off) event.
[0111] The graphics module 132 includes various known software components for presenting and displaying graphics on the touch screen 112 or other display, including components for changing the visual effects of the displayed graphics (e.g., brightness, transparency, saturation, contrast, or other visual attributes). As used herein, the term "graphics" includes any object that can be displayed to the user, including but not limited to, text, web pages, icons (such as user interface objects including soft keys), digital images, videos, animations, and the like.
[0112] In some embodiments, the graphics module 132 stores data representing the graphics to be used. Each graphic is optionally assigned a corresponding code. The graphics module 132 receives one or more codes specifying the graphics to be displayed from an application or the like, along with coordinate data and other graphic attribute data if necessary, and then generates screen image data for output to the display controller 156.
[0113] The haptic feedback module 133 includes various software components for generating instructions that the haptic output generator 167 uses to generate haptic output at one or more locations on the device 100 in response to user interactions with the device 100.
[0114] The text input module 134, which can be a component of the graphics module 132, provides a soft keyboard for entering text in various applications (e.g., contacts 137, email 140, IM 141, browser 147, and any other application that requires text input).
[0115] The GPS module 135 determines the location of the device and provides this information for use in various applications (e.g., provided to the phone 138 for location-based dialing; provided to the camera 143 as picture / video metadata; and provided to applications that provide location-based services, such as weather widgets, local yellow pages widgets, and map / navigation widgets).
[0116] The application 136 can include the following modules (or instruction sets), or subsets or supersets thereof:
[0117] · The contacts module 137 (sometimes referred to as an address book or contact list);
[0118] · The phone module 138;
[0119] · The video conferencing module 139;
[0120] · The email client module 140;
[0121] · The instant messaging (IM) module 141;
[0122] · The workout support module 142;
[0123] · A camera module 143 for still and / or video images;
[0124] · An image management module 144;
[0125] · A video player module;
[0126] · A music player module;
[0127] · A browser module 147;
[0128] · A calendar module 148;
[0129] · A gadget module 149, which may include one or more of the following: a weather gadget 149-1, a stock gadget 149-2, a calculator gadget 149-3, an alarm clock gadget 149-4, a dictionary gadget 149-5, and other gadgets obtained by the user, as well as a user-created gadget 149-6;
[0130] · A gadget creator module 150 for creating user-created gadgets 149-6;
[0131] · A search module 151;
[0132] · A video and music player module 152, which combines the video player module and the music player module;
[0133] · A sticky note module 153;
[0134] · A map module 154; and / or
[0135] · An online video module 155.
[0136] Examples of other applications 136 that may be stored in the memory 102 include other word processing applications, other image editing applications, drawing applications, presentation applications, JAVA-enabled applications, encryption, digital rights management, speech recognition, and speech reproduction.
[0137] In combination with the touch screen 112, the display controller 156, the contact / motion module 130, the graphics module 132, and the text input module 134, the contacts module 137 can be used to manage an address book or a contacts list (e.g., the application internal state 192 of the contacts module 137 stored in the memory 102 or the memory 370), including: adding a name to the address book; deleting a name from the address book; associating a phone number, an email address, a physical address, or other information with a name; associating an image with a name; classifying and sorting names; providing a phone number or an email address to initiate and / or facilitate communication via the phone 138, the video conferencing module 139, the email 140, or the IM 141, etc.
[0138] In combination with RF circuit system 108, audio circuit system 110, speaker 111, microphone 113, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, the telephone module 138 can be used to input a character sequence corresponding to a telephone number, access one or more telephone numbers in the contact module 137, modify a telephone number already input, dial the corresponding telephone number, conduct a call, and disconnect or hang up when the call is completed. As noted above, wireless communication can use any of a variety of communication standards, protocols, and technologies.
[0139] In combination with RF circuit system 108, audio circuit system 110, speaker 111, microphone 113, touch screen 112, display controller 156, optical sensor 164, optical sensor controller 158, contact / motion module 130, graphics module 132, text input module 134, contact module 137, and telephone module 138, the video conferencing module 139 includes executable instructions to initiate, conduct, and terminate a video conference between the user and one or more other participants in accordance with user instructions.
[0140] In combination with RF circuit system 108, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, the email client module 140 includes executable instructions to create, send, receive, and manage emails in response to user instructions. In combination with the image management module 144, the email client module 140 makes it very easy to create and send emails with still or video images captured by the camera module 143.
[0141] In combination with the RF circuitry 108, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, the instant messaging module 141 includes executable instructions to input a character sequence corresponding to an instant message, modify previously entered characters, send the corresponding instant message (e.g., using the Short Message Service (SMS) or Multimedia Messaging Service (MMS) protocol for phone-based instant messaging, or using XMPP, SIMPLE, or IMPS for Internet-based instant messaging), receive instant messages, and view received instant messages. In some embodiments, the instant messages sent and / or received may include graphics, photos, audio files, video files, and / or other attachments, as supported in MMS and / or Enhanced Messaging Service (EMS). As used herein, "instant messaging" refers to both phone-based messages (e.g., messages sent using SMS or MMS) and Internet-based messages (e.g., messages sent using XMPP, SIMPLE, or IMPS).
[0142] In combination with the RF circuitry 108, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, GPS module 135, map module 154, and music player module, the workout support module 142 includes executable instructions to create a workout (e.g., with time, distance, and / or calorie burn goals); communicate with workout sensors (exercise equipment); receive workout sensor data; calibrate sensors used to monitor the workout; select and play music for the workout; and display, store, and send workout data.
[0143] In combination with the touch screen 112, display controller 156, optical sensor 164, optical sensor controller 158, contact / motion module 130, graphics module 132, and image management module 144, the camera module 143 includes executable instructions to capture still images or video (including video streams) and store them in the memory 102, modify the characteristics of the still images or video, or delete the still images or video from the memory 102.
[0144] In combination with the touch screen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, and camera module 143, the image management module 144 includes executable instructions to arrange, modify (e.g., edit), or otherwise manipulate, annotate, delete, present (e.g., in a digital slide show or album), and store still and / or video images.
[0145] In combination with the RF circuit system 108, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, the browser module 147 includes executable instructions to browse the Internet according to user instructions, including searching for, linking to, receiving, and displaying web pages or portions thereof, as well as attachments and other files linked to the web pages.
[0146] In combination with the RF circuit system 108, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, email client module 140, and browser module 147, the calendar module 148 includes executable instructions to create, display, modify, and store calendars and data associated with the calendars (e.g., calendar entries, to-do lists, etc.) according to user instructions.
[0147] In combination with the RF circuit system 108, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, and browser module 147, the gadget module 149 is a mini - application that can be downloaded and used by the user (e.g., weather gadget 149 - 1, stock gadget 149 - 2, calculator gadget 149 - 3, alarm clock gadget 149 - 4, and dictionary gadget 149 - 5) or created by the user (e.g., user - created gadget 149 - 6). In some embodiments, the gadgets include HTML (HyperText Markup Language) files, CSS (Cascading Style Sheets) files, and JavaScript files. In some embodiments, the gadgets include XML (eXtensible Markup Language) files and JavaScript files (e.g., Yahoo! gadgets).
[0148] In combination with the RF circuit system 108, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, and browser module 147, the gadget creator module 150 can be used by the user to create gadgets (e.g., turn a user - specified portion of a web page into a gadget).
[0149] In combination with the touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, the search module 151 includes executable instructions to search the memory 102 for text, music, sound, images, videos, and / or other files that match one or more search criteria (e.g., one or more user - specified search terms) according to the user's instructions.
[0150] In combination with the touch screen 112, the display controller 156, the touch / motion module 130, the graphics module 132, the audio circuitry 110, the speaker 111, the RF circuitry 108, and the browser module 147, the video and music player module 152 includes executable instructions that allow a user to download and play back recorded music and other sound files stored in one or more file formats such as MP3 or AAC files, as well as executable instructions to display, present, or otherwise play back video (e.g., on the touch screen 112 or on an external display connected via the external port 124). In some embodiments, the device 100 optionally includes the functionality of an MP3 player, such as an iPod (a trademark of Apple Inc.).
[0151] In combination with the touch screen 112, the display controller 156, the touch / motion module 130, the graphics module 132, and the text input module 134, the note module 153 includes executable instructions to create and manage notes, to-do lists, and the like in accordance with user instructions.
[0152] In combination with the RF circuitry 108, the touch screen 112, the display controller 156, the touch / motion module 130, the graphics module 132, the text input module 134, the GPS module 135, and the browser module 147, the map module 154 can be used to receive, display, modify, and store maps and data associated with the maps (e.g., driving directions, data about stores and other points of interest at or near a particular location, and other location-based data) in accordance with user instructions.
[0153] In combination with touch screen 112, display controller 156, contact / motion module 130, graphics module 132, audio circuit system 110, speaker 111, RF circuit system 108, text input module 134, e-mail client module 140, and browser module 147, online video module 155 includes instructions that allow a user to access, browse, receive (e.g., via streaming and / or downloading), play back (e.g., on the touch screen or on an external display connected via external port 124), send an e-mail with a link to a particular online video, and otherwise manage online videos in one or more file formats such as H.264. In some embodiments, instant messaging module 141, rather than e-mail client module 140, is used to send a link to a specific online video. Additional descriptions of the online video application can be found in U.S. Provisional Patent Application No. 60 / 936,562, filed Jun. 20, 2007, "Portable Multifunction Device, Method, and Graphical User Interface for Playing Online Videos" and U.S. Patent Application No. 11 / 968,067, filed Dec. 31, 2007, "Portable Multifunction Device, Method, and Graphical User Interface for Playing Online Videos", the entire contents of which are incorporated herein by reference.
[0154] Each of the above-identified modules and applications corresponds to a set of executable instructions for performing one or more of the above functions and the methods described in this application (e.g., the computer-implemented methods and other information processing methods described herein). These modules (e.g., instruction sets) need not be implemented as separate software programs, procedures, or modules, and thus various subsets of these modules may be combined or otherwise rearranged in various embodiments. For example, a video player module may be combined with a music player module into a single module (e.g., Figure 1A video and music player module 152). In some embodiments, memory 102 may store subsets of the above-identified modules and data structures. In addition, memory 102 may store additional modules and data structures not described above.
[0155] In some embodiments, device 100 is a device in which the operation of a predefined set of functions on the device is performed specifically via a touchscreen and / or a touchpad. By using the touchscreen and / or the touchpad as the main input control device for the operation of device 100, the number of physical input control devices (such as push buttons, dials, etc.) on device 100 can be reduced.
[0156] The predefined set of functions performed specifically via the touchscreen and / or the touchpad optionally includes navigation between user interfaces. In some embodiments, when the touchpad is touched by a user, the touchpad navigates device 100 from any user interface displayed on device 100 to the main, start, or root menu. In such an embodiment, the "menu button" is implemented using the touchpad. In some other embodiments, instead of the touchpad, the menu button is a physical push button or other physical input control device.
[0157] Figure 1B is a block diagram illustrating exemplary components for event handling according to some embodiments. In some embodiments, memory 102 ( Figure 1A ) or 370 ( Figure 3 ) includes an event sorter 170 (e.g., in operating system 126) and corresponding applications 136-1 (e.g., any of the above-mentioned applications 137-151, 155, 380-390).
[0158] Event sorter 170 receives event information and determines the application 136-1 to which the event information is to be delivered and the application view 191 of application 136-1. Event sorter 170 includes an event monitor 171 and an event scheduling module 174. In some embodiments, application 136-1 includes an application internal state 192, which indicates the current application view displayed on the touch-sensitive display 112 when the application is active and executing. In some embodiments, the device / global internal state 157 is used by event sorter 170 to determine which applications are currently active, and the application internal state 192 is used by event sorter 170 to determine the application view 191 to which the event information is to be delivered.
[0159] In some embodiments, application internal state 192 includes additional information, such as one or more of the following: recovery information used when application 136-1 resumes execution, user interface state information indicating information being displayed or ready to be displayed by application 136-1, a state queue for enabling the user to return to a previous state or view of application 136-1, and a redo / undo queue of previous actions taken by the user.
[0160] The event monitor 171 receives event information from the peripheral interface 118. The event information includes information about sub-events (e.g., a user touch on the touch-sensitive display 112 as part of a multi-touch gesture). The peripheral interface 118 sends the information it receives from the I / O subsystem 106 or sensors such as proximity sensor 166, accelerometer 168, and / or microphone 113 (via the audio circuitry 110). The information that the peripheral interface 118 receives from the I / O subsystem 106 includes information from the touch-sensitive display 112 or a touch-sensitive surface.
[0161] In some embodiments, the event monitor 171 sends requests to the peripheral interface 118 at a predetermined interval. In response, the peripheral interface 118 sends event information. In other embodiments, the peripheral interface 118 sends event information only when there is a significant event (e.g., an input received that is above a predetermined noise threshold and / or longer than a predetermined duration).
[0162] In some embodiments, the event sorter 170 further includes a hit view determination module 172 and / or an active event recognizer determination module 173.
[0163] The hit view determination module 172 provides a software process for determining where a sub-event occurs in one or more views when more than one view is displayed on the touch-sensitive display 112. A view is composed of controls and other elements that a user can see on the display.
[0164] Another aspect of the user interface associated with an application is a set of views, sometimes referred to herein as application views or user interface windows, in which information is displayed and touch-based gestures occur. The application view (of the corresponding application) in which a touch is detected may correspond to a program level in the program or view hierarchy of that application. For example, the lowest-level view in which a touch is detected may be referred to as the hit view, and the set of events identified as correct inputs may be determined at least in part based on the hit view of the initial touch that starts a touch-based gesture.
[0165] The hit view determination module 172 receives information related to sub-events of a touch-based gesture. When an application has multiple views organized in a hierarchy, the hit view determination module 172 identifies the hit view as the lowest view in the hierarchy that should process the sub-event. In most cases, the hit view is the lowest-level view in which the starting sub-event occurs (e.g., the first sub-event in a sequence of sub-events that make up an event or potential event). Once the hit view is identified by the hit view determination module 172, the hit view generally receives all sub-events related to the same touch or input source that was identified as the hit view.
[0166] The active event recognizer determination module 173 determines which view or views in the view hierarchy should receive a particular sequence of sub-events. In some embodiments, the active event recognizer determination module 173 determines that only the hit view should receive a particular sequence of sub-events. In other embodiments, the active event recognizer determination module 173 determines that all views that include the physical location of the sub-event are actively participating views, and thus determines that all actively participating views should receive a particular sequence of sub-events. In other embodiments, even if a touch sub-event is completely confined to an area associated with a particular view, higher views in the hierarchy will still remain actively participating views.
[0167] The event dispatching module 174 dispatches event information to an event recognizer (e.g., event recognizer 180). In embodiments that include the active event recognizer determination module 173, the event dispatching module 174 delivers the event information to the event recognizer determined by the active event recognizer determination module 173. In some embodiments, the event dispatching module 174 stores the event information retrieved by the corresponding event receiver 182 in an event queue.
[0168] In some embodiments, the operating system 126 includes the event sorter 170. Alternatively, the application 136-1 includes the event sorter 170. In other embodiments, the event sorter 170 is an independent module or is part of another module stored in the memory 102, such as the touch / motion module 130.
[0169] In some embodiments, application 136-1 includes a plurality of event processors 190 and one or more application views 191, each of which includes instructions for processing touch events occurring in a corresponding view of the application's user interface. Each application view 191 of application 136-1 includes one or more event recognizers 180. Typically, a corresponding application view 191 includes a plurality of event recognizers 180. In other embodiments, one or more event recognizers 180 are part of an independent module, such as a user interface toolkit (not shown) or a higher-level object from which application 136-1 inherits methods and other characteristics. In some embodiments, a corresponding event processor 190 includes one or more of the following: a data updater 176, an object updater 177, a GUI updater 178, and / or event data 179 received from event sorter 170. Event processor 190 may utilize or invoke data updater 176, object updater 177, or GUI updater 178 to update the application's internal state 192. Alternatively, one or more application views 191 include one or more corresponding event processors 190. Also, in some embodiments, one or more of data updater 176, object updater 177, and GUI updater 178 are included in a corresponding application view 191.
[0170] A corresponding event recognizer 180 receives event information (e.g., event data 179) from event sorter 170 and identifies an event from the event information. Event recognizer 180 includes an event receiver 182 and an event comparator 184. In some embodiments, event recognizer 180 further includes at least a subset of metadata 183 and event delivery instructions 188 (which may include sub-event delivery instructions).
[0171] Event receiver 182 receives event information from event sorter 170. The event information includes information about sub-events, e.g., a touch or a touch movement. Depending on the sub-event, the event information further includes additional information, e.g., the location of the sub-event. When the sub-event involves a movement of the touch, the event information may further include the speed and direction of the sub-event. In some embodiments, the event includes a rotation of the device from one orientation to another (e.g., from portrait to landscape, or vice versa), and the event information includes corresponding information about the current orientation of the device (also referred to as the device pose).
[0172] The event comparator 184 compares event information with predefined event or sub - event definitions and, based on that comparison, determines an event or sub - event, or determines or updates the state of an event or sub - event. In some embodiments, the event comparator 184 includes an event definition 186. The event definition 186 contains definitions of events (e.g., a predefined sequence of sub - events), such as Event 1 (187 - 1), Event 2 (187 - 2), and others. In some embodiments, the sub - events within an event (187) include, for example, touch start, touch end, touch move, touch cancel, and multiple touches. In one example, the definition of Event 1 (187 - 1) is a double - tap on a displayed object. For example, a double - tap includes a predefined phase of a first touch (touch start) on the displayed object, a predefined phase of a first lift - off (touch end), a predefined phase of a second touch (touch start) on the displayed object, and a predefined phase of a second lift - off (touch end). In another example, the definition of Event 2 (187 - 2) is a drag on a displayed object. For example, a drag includes a predefined phase of a touch (or contact) on the displayed object, a movement of the touch across the touch - sensitive display 112, and a lift - off of the touch (touch end). In some embodiments, the event also includes information for one or more associated event processors 190.
[0173] In some embodiments, the event definition 187 includes event definitions for corresponding user - interface objects. In some embodiments, the event comparator 184 performs a hit test to determine which user - interface object is associated with a sub - event. For example, in an application view where three user - interface objects are displayed on the touch - sensitive display 112, when a touch is detected on the touch - sensitive display 112, the event comparator 184 performs a hit test to determine which of the three user - interface objects is associated with the touch (sub - event). If each displayed object is associated with a corresponding event processor 190, the event comparator uses the result of the hit test to determine which event processor 190 should be activated. For example, the event comparator 184 selects the event processor associated with the sub - event and object that triggered the hit test.
[0174] In some embodiments, the definition for a corresponding event (187) also includes a delay action of delaying the delivery of event information until after it is determined whether the sub - event sequence corresponds to the event type of an event recognizer.
[0175] When the corresponding event recognizer 180 determines that a series of sub - events does not match any event in the event definition 186, the corresponding event recognizer 180 enters an event - impossible, event - failed, or event - ended state, after which it will ignore subsequent sub - events of a touch - based gesture. In this case, if there are any other event recognizers that are valid for the hit view, they continue to track and process the sub - events of the ongoing touch - based gesture.
[0176] In some embodiments, the corresponding event recognizer 180 includes metadata 183 having configurable attributes, flags, and / or lists, where the configurable attributes, flags, and / or lists are used to indicate how the event delivery system should perform sub-event delivery to the event recognizers that are actively participating. In some embodiments, the metadata 183 includes configurable attributes, flags, and / or lists indicating how the event recognizers can interact with each other or enabling them to interact with each other. In some embodiments, the metadata 183 includes configurable attributes, flags, and / or lists indicating whether sub-events are delivered to different levels in the view or program hierarchy.
[0177] In some embodiments, when one or more specific sub-events of an event are recognized, the corresponding event recognizer 180 activates the event processor 190 associated with the event. In some embodiments, the corresponding event recognizer 180 delivers the event information associated with the event to the event processor 190. Activating the event processor 190 is different from sending (and deferring) sub-events to the corresponding hit views. In some embodiments, the event recognizer 180 throws a flag associated with the recognized event, and the event processor 190 associated with the flag catches the flag and executes a predefined process.
[0178] In some embodiments, the event delivery instruction 188 includes a sub-event delivery instruction to deliver event information about sub-events without activating the event processor. Instead, the sub-event delivery instruction delivers the event information to the event processor associated with the sub-event series or to the actively participating view. The event processor associated with the sub-event series or with the actively participating view receives the event information and executes a predefined process.
[0179] In some embodiments, the data updater 176 creates and updates the data used in the application 136-1. For example, the data updater 176 updates the phone numbers used in the contact module 137, or the video files used in the video player module. In some embodiments, the object updater 177 creates and updates the objects used in the application 136-1. For example, the object updater 177 creates new user interface objects or updates the positions of user interface objects. The GUI updater 178 updates the GUI. For example, the GUI updater 178 prepares the display information and sends it to the graphics module 132 for display on the touch-sensitive display.
[0180] In some embodiments, the event processor 190 includes or has access to a data updater 176, an object updater 177, and a GUI updater 178. In some embodiments, the data updater 176, the object updater 177, and the GUI updater 178 are included in a single module of the corresponding application 136-1 or application view 191. In other embodiments, they are included in two or more software modules.
[0181] It should be understood that the above discussion regarding event handling of user touches on a touch-sensitive display also applies to other forms of user input that operate the multifunctional device 100 using an input device, not all of which are initiated on the touchscreen. For example, mouse movement and mouse button presses, optionally in combination with single or multiple keyboard presses or holds; contact movement on a touchpad, such as tapping, dragging, scrolling, etc.; stylus input; movement of the device; verbal instructions; detected eye movement; biometric input; and / or any combination thereof may optionally be used as input corresponding to sub-events that define the events to be recognized.
[0182] Figure 2 A portable multifunctional device 100 with a touchscreen 112 is illustrated in accordance with some embodiments. The touchscreen optionally displays one or more graphics in a user interface (UI) 200. In such embodiments, and in other embodiments described below, the user can select one or more graphics by making gestures on the graphics, for example, using one or more fingers 202 (not drawn to scale in the figure) or one or more styli 203 (not drawn to scale in the figure). In some embodiments, the selection of one or more graphics occurs when the user interrupts contact with the one or more graphics. In some embodiments, the gestures optionally include one or more taps, one or more swipes (from left to right, from right to left, up, and / or down), and / or rolling of a finger that has contacted the device 100 (from right to left, from left to right, up, and / or down). In some implementations or situations, an inadvertent contact with a graphic does not select the graphic. For example, when the gesture corresponding to selection is a tap, a swipe gesture over an application icon optionally does not select the corresponding application.
[0183] The device 100 may also include one or more physical buttons, such as a "back" or menu button 204. As previously described, the menu button 204 can be used to navigate to any of the set of applications 136 that can be executed on the device 100. Alternatively, in some embodiments, the menu button is implemented as a soft key in a GUI displayed on the touchscreen 112.
[0184] In one embodiment, device 100 includes a touch screen 112, menu buttons 204, a push button 206 for powering on / off and locking the device, volume adjustment buttons 208, a subscriber identity module (SIM) card slot 210, a headphone jack 212, and a plug-in / charging external port 124. The push button 206 is optionally used to power on / off the device by pressing the button and holding the button in the pressed state for a predefined time interval; lock the device by pressing the button and releasing the button before the predefined time interval has elapsed; and / or unlock the device or initiate an unlocking process. In an alternative embodiment, device 100 also accepts verbal input for activating or deactivating certain functions via a microphone 113. Device 100 also optionally includes one or more contact intensity sensors 165 for detecting the contact intensity on the touch screen 112, and / or one or more haptic output generators 167 for generating haptic outputs for a user of device 100.
[0185] Figure 3 is a block diagram of an exemplary multifunctional device having a display and a touch-sensitive surface, in accordance with some embodiments. Device 300 need not be portable. In some embodiments, device 300 is a laptop computer, desktop computer, tablet computer, multimedia player device, navigation device, educational device (such as a children's learning toy), game system, or control device (e.g., a home or industrial controller). Device 300 generally includes one or more processing units (CPUs) 310, one or more network or other communication interfaces 360, memory 370, and one or more communication buses 320 for interconnecting these components. Communication bus 320 optionally includes circuitry (sometimes referred to as a chipset) for interconnecting and controlling communication between system components. Device 300 includes an input / output (I / O) interface 330, which includes a display 340 that is typically a touch screen display. I / O interface 330 also optionally includes a keyboard and / or mouse (or other pointing device) 350 and a touchpad 355, a haptic output generator 357 for generating haptic outputs on device 300 (e.g., similar to the haptic output generator 167 described above with reference to Figure 1A the haptic output generator 167 described above), sensors 359 (e.g., optical, acceleration, proximity, touch-sensitive, and / or similar to those described above with reference to Figure 1AThe contact intensity sensor of the contact intensity sensor 165 described above). The memory 370 includes high-speed random access memory, such as DRAM, SRAM, DDR RAM, or other random access solid-state memory devices; and optionally includes non-volatile memory, such as one or more disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid-state storage devices. The memory 370 optionally includes one or more storage devices located remotely from the CPU (or CPUs) 310. In some embodiments, the memory 370 stores programs, modules, and data structures similar to those stored in the memory 102 of the portable multifunctional device 100( Figure 1A ), or a subset thereof. Additionally, the memory 370 optionally stores additional programs, modules, and data structures not present in the memory 102 of the portable multifunctional device 100. For example, the memory 370 of the device 300 optionally stores a drawing module 380, a presentation module 382, a word processing module 384, a website creation module 386, a disc authoring module 388, and / or a spreadsheet module 390, while the memory 102 of the portable multifunctional device 100( Figure 1A ) optionally does not store these modules.
[0186] Figure 3 Each of the elements identified above can be stored in one or more of the previously mentioned storage devices. Each of the modules identified above corresponds to a set of instructions for performing the functions described above. The modules or programs (e.g., sets of instructions) identified above need not be implemented as separate programs, processes, or modules, and thus various subsets of these modules can be combined or otherwise rearranged in various embodiments. In some embodiments, the memory 370 can store a subset of the modules and data structures identified above. Additionally, the memory 370 can store additional modules and data structures not described above.
[0187] Attention is now turned to embodiments of a user interface that can be implemented, for example, on the portable multifunctional device 100.
[0188] Figure 4A Illustrated is an exemplary user interface for a menu for an application on the portable multifunctional device 100 according to some embodiments. A similar user interface can be implemented on the device 300. In some embodiments, the user interface 400 includes the following elements, or a subset or superset thereof:
[0189] · A signal strength indicator 402 for wireless communication such as cellular and Wi-Fi signals;
[0190] · Time 404;
[0191] · A Bluetooth indicator 405;
[0192] · Battery status indicator 406;
[0193] · Tray 408 with icons for common applications, such as:
[0194] o Icon 146 for phone module 138, labeled "Phone", which optionally includes an indicator 414 of the number of missed calls or voicemail messages;
[0195] o Icon 418 for email client module 140, labeled "Email", which optionally includes an indicator 410 of the number of unread emails;
[0196] o Icon 420 for browser module 147, labeled "Browser"; and
[0197] o Icon 422 for video and music player module 152, also known as the iPod (trademark of Apple Inc.) module 152, labeled "iPod"; and
[0198] · Icons for other applications:
[0199] o Icon 424 for IM module 141, labeled "Messages";
[0200] o Icon 426 for calendar module 148, labeled "Calendar";
[0201] o Icon 428 for image management module 144, labeled "Photos";
[0202] o Icon 430 for camera module 143, labeled "Camera";
[0203] o Icon 432 for online video module 155, labeled "Online Video";
[0204] o Icon 434 for stock widget 149-2, labeled "Stock";
[0205] o Icon 436 for map module 154, labeled "Maps";
[0206] o Icon 438 for weather widget 149-1, labeled "Weather";
[0207] o Icon 440 for alarm clock widget 149-4, labeled "Clock";
[0208] o Icon 442 for workout support module 142, labeled "Workout Support";
[0209] o Icon 444 for note module 153, labeled "Notes"; and
[0210] o For setting the icon 446 of the application or module, labeled "Settings", which provides access to the settings of the device 100 and its various applications 136.
[0211] It should be noted that Figure 4A the icon labels described in are merely exemplary. For example, the icon 422 for the video and music player module 152 may optionally be labeled "Internet" or "Music Player". Other labels are optionally used for various application icons. In some embodiments, the label for the corresponding application icon includes the name of the application corresponding to the corresponding application icon. In some embodiments, the label for a specific application icon is different from the name of the application corresponding to the specific application icon.
[0212] Figure 4B illustrates an exemplary user interface on a device (e.g., Figure 3 device 300) having a touch-sensitive surface 451 (e.g., Figure 3 a tablet or touchpad 355) separate from the display 450 (e.g., touchscreen display 112). The device 300 also optionally includes one or more contact intensity sensors (e.g., one or more sensors 357) for detecting the intensity of contact on the touch-sensitive surface 451 and / or one or more haptic output generators 359 for generating haptic output for the user of the device 300.
[0213] Although some of the following examples will be given with reference to input on the touchscreen display 112 (where the touch-sensitive surface is combined with the display), in some embodiments, as Figure 4B shown in, the device detects input on a touch-sensitive surface separate from the display. In some embodiments, the touch-sensitive surface (e.g., Figure 4B 451 in) has a major axis (e.g., Figure 4B 452 in) corresponding to the major axis (e.g., Figure 4B 453 in) of the display (e.g., 450). According to these embodiments, the device detects contact (e.g., Figure 4B 460 and 462 in corresponding to 468 and 470 respectively) with the touch-sensitive surface 451 at positions corresponding to the respective positions on the display. Thus, when the touch-sensitive surface is separate from the display, the user input (e.g., contacts 460 and 462, and their movement) detected by the device on the touch-sensitive surface (e.g., Figure 4B 451 in) is used by the device to manipulate the display of the multifunctional device (e.g., Figure 4B Figure 4B The user interface on the 450). It should be understood that similar methods can optionally be used for other user interfaces described herein.
[0214] In addition, although the following examples are mainly given with reference to finger inputs (e.g., finger contact, finger tap gesture, finger swipe gesture), it should be understood that in some embodiments, one or more finger inputs are replaced by inputs from another input device (e.g., mouse-based input or stylus input). For example, a swipe gesture can optionally be replaced by a mouse click (e.g., instead of contact) followed by movement of the cursor along the swipe path (e.g., instead of movement of contact). As another example, a tap gesture can optionally be replaced by a mouse click when the cursor is above the tap gesture position (e.g., instead of detection of contact followed by cessation of detection of contact). Similarly, when multiple user inputs are detected simultaneously, it should be understood that multiple computer mice can optionally be used simultaneously, or a mouse and finger contact can optionally be used simultaneously.
[0215] Figure 4C illustrates an exemplary personal electronic device 460. The device 460 includes a body 462. In some embodiments, the device 460 can include some or all of the features described with respect to devices 100 and 300 (e.g., Figures 1A - 4B )). In some embodiments, the device 460 has a touch-sensitive display screen 464, hereinafter referred to as the touch screen 464. As an alternative, or in addition to the touch screen 464, the device 460 also has a display and a touch-sensitive surface. Similar to devices 100 and 300, in some embodiments, the touch screen 464 (or the touch-sensitive surface) can have one or more intensity sensors for detecting the intensity of an applied contact (e.g., touch). One or more intensity sensors of the touch screen 464 (or the touch-sensitive surface) can provide output data representing the intensity of the touch. The user interface of the device 460 can respond to the touch based on its intensity, meaning that touches of different intensities can invoke different user interface operations on the device 460.
[0216] Techniques for detecting and processing touch intensity can be found, for example, in the following related applications: International Patent Application Serial No. PCT / US2013 / 040061, titled "Device, Method, and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application," filed on May 8, 2013, and International Patent Application Serial No. PCT / US2013 / 069483, titled "Device, Method, and Graphical User Interface for Transitioning Between Touch Input to Display Output Relationships," filed on November 11, 2013. The entire contents of both applications are incorporated herein by reference.
[0217] In some embodiments, device 460 has one or more input mechanisms 466 and 468. If included, input mechanisms 466 and 468 can be physical. Examples of physical input mechanisms include push buttons and rotatable mechanisms. In some embodiments, device 460 has one or more attachment mechanisms. If included, such attachment mechanisms can allow device 460 to be attached to, for example, hats, glasses, earrings, necklaces, shirts, jackets, bracelets, watch bands, chains, pants, belts, leather shoes, leather bags, backpacks, etc. These attachment mechanisms can allow device 460 to be worn by a user.
[0218] Figure 4D An exemplary personal electronic device 470 is depicted. In some embodiments, device 470 can include some or all of the components described with respect to Figure 1A , Figure 1B and Figure 3 . Device 470 has a bus 472 that operatively couples an I / O section 474 with one or more computer processors 476 and a memory 478. The I / O section 474 can be connected to a display 480, which can have a touch-sensitive component 482 and optionally a touch-intensity sensitive component 484. Additionally, the I / O section 474 can be connected to a communication unit 490 for receiving application and operating system data using Wi-Fi, Bluetooth, near field communication (NFC), cellular, and / or other wireless communication technologies. Device 470 can include input mechanisms 486 and / or 488. For example, input mechanism 486 can be a rotatable input device or a pressable and rotatable input device. In some examples, input mechanism 488 can be a button.
[0219] In some examples, the input mechanism 488 can be a microphone. The personal electronic device 470 can include various sensors such as a GPS sensor 492, an accelerometer 494, an orientation sensor 495 (e.g., a compass), a gyroscope 496, a motion sensor 498, and / or combinations thereof, all of which can be operatively connected to the I / O section 474.
[0220] The personal electronic device 470 memory 478 can be a non-transitory computer-readable storage medium for storing computer-executable instructions that, when executed by one or more computer processors 476, can cause the computer processor to perform the techniques described above, including processes 900-1500 and 2000-2200 ( Figures 9 - 15 and 20-22). The computer-executable instructions can also be stored and / or transported in any non-transitory computer-readable storage medium used by or in connection with an instruction execution system, apparatus, or device, where the instruction execution system, apparatus, or device is such as a computer-based system, a system including a processor, or other systems that can retrieve and execute the instructions from the instruction execution system, apparatus, or device. For this document, a "non-transitory computer-readable storage medium" can be any medium that can tangibly contain or store computer-executable instructions for use by or in connection with an instruction execution system, apparatus, or device. The non-transitory computer-readable storage medium can include, but is not limited to, magnetic, optical, and / or semiconductor storage devices. Examples of such storage devices include magnetic disks, optical discs based on CD, DVD, or Blu-ray technology, and persistent solid-state memories such as flash memory, solid-state drives, etc. The personal electronic device 470 is not limited to Figure 4D the components and configurations shown, but can include other or additional components in a variety of configurations.
[0221] As used herein, the term "cue" refers to a user interaction graphical user interface object that can be displayed on the display screens of devices 100, 300, 460, and / or 470 (Figs. 1, 3, and 4C-D). For example, an image (e.g., an icon), a button, and text (e.g., a hyperlink) can each constitute a cue.
[0222] As used herein, the term "focus selector" refers to an input element that indicates the current portion of the user interface with which the user is interacting. In some implementations that include a cursor or other position marker, the cursor serves as the "focus selector" such that when the cursor is over a particular user interface element (e.g., a button, window, slider, or other user interface widget) on a touch-sensitive surface (e.g., Figure 3 the touchpad 355 in Figure 4BWhen an input (e.g., a press input) is detected on the touch-sensitive surface 451), the particular user interface element is adjusted according to the detected input. In some implementations including a touchscreen display (e.g., Figure 1A the touch-sensitive display system 112 in Figure 4A or the touchscreen 112 in
[0223] that enables direct interaction with user interface elements on the touchscreen display), the contact detected on the touchscreen acts as a "focus selector" such that when an input (e.g., a press input by contact) is detected at the location of a particular user interface element (e.g., a button, a window, a slider, or other user interface element) on the touchscreen display, the particular user interface element is adjusted according to the detected input. In some implementations, the focus is moved from one area of the user interface to another area of the user interface without a corresponding movement of a cursor or a movement of the contact on the touchscreen display (e.g., moving the focus from one button to another button by using the tab key or arrow keys); in these implementations, the focus selector moves according to the movement of the focus between different areas of the user interface. Regardless of the specific form taken by the focus selector, the focus selector is generally a user interface element (or a contact on the touchscreen display) that is controlled by the user to convey the user's intention to interact with the user interface (e.g., by indicating to the device the user interface element with which the user intends to interact). For example, the position of the focus selector (e.g., a cursor, a contact, or a selection box) above a corresponding button when a press input is detected on a touch-sensitive surface (e.g., a touchpad or a touchscreen) will indicate that the user intends to activate the corresponding button (relative to other user interface elements shown on the device's display).
[0223] As used in this specification and the claims, the term "feature intensity" of a contact refers to a feature of the contact based on one or more intensities of the contact. In some embodiments, the feature intensity is based on a plurality of intensity samples. The feature intensity is optionally based on a predefined number of intensity samples, or a set of intensity samples collected during a predefined period of time (e.g., 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10 seconds) relative to a predefined event (e.g., after detecting the contact, before detecting the lift-off of the contact, before or after detecting the start of movement of the contact, before detecting the end of the contact, before or after detecting an increase in the intensity of the contact, and / or before or after detecting a decrease in the intensity of the contact). The feature intensity of a contact is optionally based on one or more of the following: the maximum value of the contact intensity, the median value of the contact intensity, the average value of the intensity of the contact, the top ten percent value of the contact intensity, the value at half of the maximum value of the contact intensity, the value at 90% of the maximum value of the contact intensity, etc. In some embodiments, the duration of the contact is used to determine the feature intensity (e.g., when the feature intensity is the average of the contact intensity over time). In some embodiments, the feature intensity is compared with a set of one or more intensity thresholds to determine whether an operation has been performed by the user. For example, the set of one or more intensity thresholds can include a first intensity threshold and a second intensity threshold. In this example, a contact having a feature intensity not exceeding the first intensity threshold results in a first operation, a contact having a feature intensity exceeding the first intensity threshold and not exceeding the second intensity threshold results in a second operation, and a contact having a feature intensity exceeding the second intensity threshold results in a third operation. In some embodiments, the comparison between the feature intensity and one or more thresholds is used to determine whether to perform one or more operations (e.g., whether to perform the corresponding operation or to forgo performing the corresponding operation), rather than to determine whether to perform a first operation or a second operation.
[0224] In some embodiments, a portion of a gesture is identified to determine the feature intensity. For example, a touch-sensitive surface may receive a continuous swipe contact that transitions from a starting position to an ending position, at which time the intensity of the contact increases. In this example, the feature intensity of the contact at the ending position may be based on only a portion of the continuous swipe contact, rather than the entire swipe contact (e.g., only that portion of the swipe contact at the ending position). In some embodiments, a smoothing algorithm may be applied to the intensity of the swipe contact before determining the feature intensity of the contact. For example, the smoothing algorithm optionally includes one or more of the following: an unweighted moving average smoothing algorithm, a triangular smoothing algorithm, a median filter smoothing algorithm, and / or an exponential smoothing algorithm. In some cases, these smoothing algorithms eliminate narrow spikes or dips in the intensity of the swipe contact for determining the feature intensity.
[0225] The intensity of a contact on a touch-sensitive surface can be characterized relative to one or more intensity thresholds, such as a contact-detection intensity threshold, a light-press intensity threshold, a deep-press intensity threshold, and / or one or more other intensity thresholds. In some embodiments, the light-press intensity threshold corresponds to the intensity at which the device will perform an operation typically associated with clicking a button of a physical mouse or touchpad. In some embodiments, the deep-press intensity threshold corresponds to the intensity at which the device will perform an operation different from an operation typically associated with clicking a button of a physical mouse or touchpad. In some embodiments, when a contact is detected having a characteristic intensity below the light-press intensity threshold (e.g., and above a nominal contact-detection intensity threshold below which contact will no longer be detected), the device will move a focus selector in accordance with movement of the contact on the touch-sensitive surface without performing an operation associated with the light-press intensity threshold or the deep-press intensity threshold. In general, these intensity thresholds are consistent between different sets of user interface figures unless otherwise stated.
[0226] An increase in the characteristic intensity of a contact from an intensity below the light-press intensity threshold to an intensity between the light-press intensity threshold and the deep-press intensity threshold is sometimes referred to as a "tap" input. An increase in the characteristic intensity of a contact from an intensity below the deep-press intensity threshold to an intensity above the deep-press intensity threshold is sometimes referred to as a "deep tap" input. An increase in the characteristic intensity of a contact from an intensity below the contact-detection intensity threshold to an intensity between the contact-detection intensity threshold and the light-press intensity threshold is sometimes referred to as detecting a contact on the touch surface. A decrease in the characteristic intensity of a contact from an intensity above the contact-detection intensity threshold to an intensity below the contact-detection intensity threshold is sometimes referred to as detecting a lift-off of the contact from the touch surface. In some embodiments, the contact-detection intensity threshold is zero. In some embodiments, the contact-detection intensity threshold is greater than zero.
[0227] In some embodiments described herein, one or more operations are performed in response to detecting a gesture that includes a corresponding press input or in response to detecting a corresponding press input performed using a corresponding contact (or contacts), where the corresponding press input is detected at least in part based on an increase in the intensity of the detected contact (or contacts) above a press-input intensity threshold. In some embodiments, the corresponding operation is performed in response to detecting an increase in the intensity of the corresponding contact above the press-input intensity threshold (e.g., the "downstroke" of the corresponding press input). In some embodiments, the press input includes an increase in the intensity of the corresponding contact above the press-input intensity threshold and a subsequent decrease in the intensity of the contact below the press-input intensity threshold, and the corresponding operation is performed in response to detecting the subsequent decrease in the intensity of the corresponding contact below the press-input intensity threshold (e.g., the "upstroke" of the corresponding press input).
[0228] In some embodiments, the device employs strength hysteresis to avoid unexpected inputs sometimes referred to as "jitter", where the device defines or selects a hysteresis strength threshold having a predefined relationship to the press-input strength threshold (e.g., the hysteresis strength threshold is X strength units lower than the press-input strength threshold, or the hysteresis strength threshold is 75%, 90%, or some reasonable percentage of the press-input strength threshold). Thus, in some embodiments, a press input comprises an increase in the strength of the corresponding contact to above the press-input strength threshold and subsequent decrease in the strength of that contact to below the hysteresis strength threshold corresponding to the press-input strength threshold, and the corresponding operation is performed in response to detecting the subsequent decrease in the strength of the corresponding contact to below the hysteresis strength threshold (e.g., the "upstroke" of the corresponding press input). Similarly, in some embodiments, a press input is detected only if the device detects an increase in the strength of the contact from a strength at or below the hysteresis strength threshold to a strength at or above the press-input strength threshold, and optionally, the strength of the contact subsequently decreases to at or below the hysteresis strength, and the corresponding operation is performed in response to detecting the press input (e.g., depending on the situation, the increase or decrease in the contact strength).
[0229] For purposes of explanation, the description of an operation performed in response to a press input associated with a press-input strength threshold or in response to a gesture including a press input is optionally triggered in response to detecting any one of the following: an increase in the strength of the contact to above the press-input strength threshold, an increase in the strength of the contact from a strength below the hysteresis strength threshold to a strength above the press-input strength threshold, a decrease in the strength of the contact to below the press-input strength threshold, and / or a decrease in the strength of the contact to below the hysteresis strength threshold corresponding to the press-input strength threshold. Additionally, in examples where the operation is described as being performed in response to detecting a decrease in the strength of the contact to below the press-input strength threshold, the operation is optionally performed in response to detecting a decrease in the strength of the contact to below the hysteresis strength threshold corresponding to and below the press-input strength threshold.
[0230] As used herein, an "installed application" refers to a software application that has been downloaded to an electronic device (e.g., devices 100, 300, 460, and / or 470) and is ready to be launched (e.g., made open) on the device. In some embodiments, the downloaded application becomes an installed application via an installer that extracts program portions from the downloaded package and integrates the extracted portions with the operating system of the computer system.
[0231] As used herein, the term "open application" or "executing application" refers to a software application that has retained state information (e.g., as part of the device / global internal state 157 and / or the application internal state 192). An open or executing application can be any of the following types of applications:
[0232] · An active application, currently being displayed on the display screen of the device on which the application is being used;
[0233] · A background application (or background process), currently not being displayed, but one or more processes for the application are being executed by one or more processors; and
[0234] · A suspended or hibernated application, not running, but having state information stored in memory (volatile and non-volatile respectively) that can be used to resume application execution.
[0235] As used herein, the term "closed application" refers to a software application that does not have retained state information (e.g., the state information for the closed application is not stored in the memory of the device). Thus, closing an application includes stopping and / or removing the application process for the application and removing the state information for the application from the memory of the device. Generally, opening a second application within a first application does not close the first application. When the second application is being displayed and the first application stops being displayed, the first application becomes a background application.
[0236] Attention is now turned to embodiments of a user interface ("UI") and associated processes that can be implemented on a multifunctional device having a display and a touch-sensitive surface, such as devices 100, 300, 460, and / or 470, to improve the user experience of transitioning between different electronic devices. For brevity, the functionality described herein may be referred to as "continuity" functionality.
[0237] 1. Exemplary Use of Continuity Functionality
[0238] Figures 5A - 5D Demonstrates an exemplary transition between the use of two different electronic devices using the continuity functionality. In Figure 5AIn this example, user 502 is using electronic device 504. In some embodiments, electronic device 504 may be a portable multifunctional device 100. As shown, electronic device 504 is a cellular phone. Cellular phone 504 is displaying user interface screen 506. User interface screen 506 is part of a messaging application executing on cellular phone 504. User interface screen 506 shows a message log between user 502 and participant 510 named John. The illustrated message log includes message bubbles 508 representing the message conversation. In the ongoing conversation, John (participant 510) asks user 504 for a website URL.
[0239] Because cellular phone 504 has a relatively small display screen, it may prove inefficient to find the requested website URL on cellular phone 504. Instead, user 504 may wish to find the requested information on an electronic device with a relatively larger display. As Figure 5B shown, user 504 approaches tablet computer 512 for this purpose because tablet computer 512 has a larger screen and is more suitable for the task. When user 502, who is holding cellular phone 504, approaches tablet computer 512, the two devices come within wireless communication range of each other and begin wireless communication. Tablet computer 512 can detect the presence of cellular phone 504 via a low-energy wireless protocol. Upon detection, tablet computer 512 can obtain additional information from cellular phone 504, such as usage information, which indicates that the messaging application is active on cellular phone 504.
[0240] Turning Figure 5C to, based on this information, tablet computer 512 displays prompt 514, which indicates that it is possible for the user to continue his ongoing message conversation on tablet computer 512. Prompt 514 can be displayed in user interface lock screen 515. In other words, in response to detecting cellular phone 504 and receiving usage information (regarding the messaging application being used on cellular phone 504), tablet computer 512 displays a continuity prompt (e.g., an icon) 514 to notify the user that cross-device continuity of the messaging application is possible.
[0241] As used herein, the term "prompt" refers to a user-interactive graphical user interface object that can be displayed on the display screens of devices 100, 300, and / or 460 (FIGS. 1, 3, and 4C). For example, an image (e.g., an icon), a button, and text (e.g., a hyperlink) can each constitute a prompt.
[0242] The user can select the displayed continuity cue to launch the corresponding messaging application. In some embodiments, the user can select the continuity cue by a touch gesture (e.g., tap, swipe, flick, long touch). In some embodiments, the user can select the continuity cue by a mouse gesture (e.g., hover, click, double click, drag). In Figure 5D the example, user 502 can swipe up the continuity cue 514 (as indicated by arrow 516) to launch the corresponding messaging application on the tablet computer 512. That is, in response to a swipe gesture in a particular direction (e.g., up), the tablet computer 512 unlocks and launches the messaging application. The messaging application launched on the tablet computer 512 can be a version of the messaging application active on the cellular phone 504. For example, the messaging application active on the tablet computer 512 can be Messages for and the messaging application active on the cellular phone 504 can be Messages for both manufactured by Apple Inc. of Cupertino, California.
[0243] In addition to launching the corresponding messaging application, the tablet computer 512 can also display the same message transcript shown on the cellular phone 504. Additionally, since the tablet computer 512 has a larger display screen, additional message bubbles 518 can be shown (recall that only bubble 508 was shown on the cellular phone 504). From here, user 502 can switch to the web browsing application on the tablet computer 512 to find the URL requested by participant 510.
[0244] Through the above continuity technology, user 502 switches from the cellular phone 504 to the tablet computer 512 without loss of progress. During the switch, user 502 does not need to manually find and launch the messaging application. Additionally, during the switch, user 502 does not need to search through other message transcripts for the message transcript involving participant 510. Instead, the state of the messaging application survives the switch from the cellular phone 504 to the tablet computer 512.
[0245] U.S. Patent Application 11 / 322,549, now U.S. Patent No. 7,657,849, describes that, in a user interface locked state (hereinafter referred to as the "locked state"), devices such as devices 100, 300, or 460 are powered on and operate, but ignore most, if not all, user inputs. That is, the device does not take action in response to user input and / or the device is prevented from performing a predefined set of operations in response to user input. Such predefined operations can include navigating between user interfaces and activating or deactivating a predefined set of functions. The locked state can be used to prevent unintentional or unauthorized use of the device or activation or deactivation of functions on the device. When the device is in the locked state, the device can be said to be locked. In some embodiments, a device in the locked state can respond to a limited set of user inputs, including inputs corresponding to an attempt to transition the device to the user interface unlocked state or inputs corresponding to powering off the device. In other words, a locked device responds to user inputs corresponding to an attempt to transition the device to the user interface unlocked state or power off the device, but does not respond to user inputs corresponding to an attempt to navigate between user interfaces. It should be recognized that even though the device ignores user input, the device can still provide sensory feedback (such as visual, audio, or vibration feedback) indicating that the input will be ignored when the input is detected. However, a locked device can still respond to a limited class of inputs. The limited class can include inputs determined by the device to correspond to an attempt to transition the device to the user interface unlocked state, including inputs that invoke continuity features.
[0246] In a user interface unlocked state (hereinafter referred to as the "unlocked state"), the device is in its normal operating state and detects and responds to user inputs corresponding to interacting with the user interface. A device in the unlocked state can be described as an unlocked device. An unlocked device detects and responds to user inputs for navigating between user interfaces, entering data, and activating or deactivating functions. In embodiments in which the device includes a touch screen, the unlocked device detects and responds to contacts corresponding to navigating between user interfaces, entering data, and activating or deactivating functions via the touch screen.
[0247] Figure 5E Another example of continuity between a cellular phone 504 and a tablet computer 512 is illustrated, but involves a different exemplary application - in this example, a web browsing application. Figure 5EDemonstrates how the continuity feature can benefit users working on lengthy documents. As shown, a cell phone 504 is displaying a web page 520 via a web browsing application. Because the cell phone 504 has a relatively small display screen, the user may wish to switch to a larger device, such as a tablet computer 512, that is in-range. Because the two devices are in range, the tablet computer 512 can wirelessly detect the proximity of the cell phone 504 and can receive usage information about the active web browsing application from the cell phone 504. In response to this detection and the received usage information, the tablet computer 512 displays a continuity revelation 522. The continuity revelation 522 may include a thumbnail image indicating that the application to be launched is a web browsing application. When the revelation is selected, the tablet computer 512 launches its version of the web browsing application. In addition, when the corresponding web browsing application is launched, the tablet computer 512 displays the portion of the web page 520 displayed on the cell phone 504. Therefore, the user 502 can continue reading from where he left off. It should be noted that because tablet computer 512 has a larger display screen, additional portion 521 of web page 520 may also be displayed for viewing.
[0248] In some embodiments, the user selects (e.g., invokes) the continuity revelation by swiping the revelation in a particular direction. Figure 5D In the example of , an upward swipe is used to invoke continuity revelation 514. When this is the case, in response to tapping on the continuity revelation - which is not sufficient to invoke the continuity feature - the device may cause the continuity revelation to pop up (via visual animation) to indicate to the user that a swipe is required to invoke the continuity feature. Optionally, the device may display instructive text informing the user that a swipe is required. Optionally, device 100 may require the user to swipe the continuity revelation beyond a predetermined threshold distance in order for the swipe to be registered as a selection. When this is the case, in response to a swipe that is shorter than the threshold, the device may pop back the revelation, thereby suggesting to the user that a longer swipe is required to invoke the continuity feature. Optionally, the device may display instructive text informing the user that a longer swipe is required to invoke the continuity feature. Optionally, the device may display instructive text informing the user that a longer swipe is required to invoke the continuity feature. Optionally, the device may display instructive text only after the user has interacted with the revelation several times but failed to invoke the feature on each attempt. Alternatively, in some embodiments, the user selects the continuity revelation by tapping on the continuity revelation. Figure 5E In the example, continuity revelation 522 can be selected by tapping.
[0249] 2. Exemplary User Interface for Invoking Continuity Functionality
[0250] refer to Figures 5F - 5N , we now turn our attention to additional ways in which the implications for invoking continuity functions can be revealed. Figure 5FAs shown, in some embodiments, when device 100a senses a compatible external device within range and transmitting relevant application usage data, continuity cue 522 becomes displayed on user interface lock screen 523. (In some embodiments, device 100a may be device 100. The term "external device" is used herein only for convenience of description, and in different embodiments, the "external device" need not refer to the same device.) The display of continuity cue 522 may be temporary, meaning that after a certain condition, continuity cue 522 may stop being displayed. For example, after it has been displayed for a predetermined time (e.g., 8 seconds), continuity cue 522 may be removed from the display. As another example, if the compatible external device moves out of communication range, continuity cue 522 may be removed from the display. Optionally, if the touch-sensitive display of device 100a is powered on after a predetermined time (e.g., 8 seconds) has elapsed since the compatible external device entered the range, continuity cue 522 is not displayed even if the device has transmitted relevant application usage data. Optionally, continuity cue 522 becomes displayed on lock screen 523 only if the compatible external device (or the active application thereon) has been recently used within a predetermined amount of time (e.g., within the last 8 seconds).
[0251] And as Figure 5F shown, in some embodiments, continuity cue 526 permanently appears on user interface lock screen 525 of device 100b, meaning that the cue is displayed at any time lock screen 525 is displayed. (In some embodiments, device 100b may be device 100.) When a compatible device is nearby and continuity is possible, the permanent continuity cue 526 may assume one visual appearance. When there is no device to transition to, the cue may assume another visual appearance, e.g., it may appear disabled. The permanent continuity cue 526 may be used when a visual profile where the continuity feature is emphasized is desired.
[0252] And as Figure 5F shown, in some embodiments, continuity cue 526 is displayed on lock screen 527 of device 100c as a message in a queue of other system messages. (In some embodiments, device 100c may be device 100.) As shown, device 100c may display notification messages such as messages notifying the user of an incoming call, a calendar entry, etc. Device 100c may organize these notification messages into a queue. In these embodiments, continuity cue 526 may appear in the same manner to notify the user of the device's ability to launch corresponding applications. This placement may be used when a reduced, restricted visual profile for the continuity feature is desired.
[0253] Figure 5GIllustrates the combination of the Continuity feature with a biometric reader. Device 100 may have a biometric reader for unlocking the device. In Figure 5G , device 100 is equipped with a biometric reader in the form of a fingerprint reader 534. Device 100 may be configured to unlock when the fingerprint reader 534 reads a known fingerprint. When unlocked, if device 100 detects a compatible external device within range and sending relevant application usage data, device 100 may display a dialog 536. Dialog 536 asks the user if they expect Continuity. If the user indicates "Yes", device 100 launches the corresponding application using Continuity technology, as discussed above. For example, device 100 may launch a messaging application corresponding to the messaging application being executed on device 504 ( Figure 5A ). The launched application may display the message log shown in user interface screen 506 ( Figure 5A ).
[0254] Figure 5H Illustrates the incorporation of the Continuity feature into a multitasking user interface screen in some embodiments. As shown, device 100 may display a multitasking screen 538. Multitasking screen 538 may be a user interface for selecting, from among multiple active applications, the application that should become the active application on device 100. To this end, multitasking screen 538 may include cues 540, 542, and 544 corresponding to different applications. Cues 540, 542, and 544 are located near the left, center, and right sides of screen 538, respectively. The center cue 542 may represent the most recently active application on device 100. The right cue 544 may represent background applications running on device 100. User selection (e.g., tap) of cue 542 or 544 may cause the corresponding application to become the active application on device 100.
[0255] The leftmost cue 540 may be reserved for invoking the Continuity feature. Cue 540 may be displayed when device 100 detects a compatible external device within range and sending relevant application usage data. In the example shown, user selection (e.g., tap) of cue 540 causes device 100 to launch the corresponding application using Continuity technology. For example, in response to user selection of cue 540, device 100 may launch a messaging application corresponding to the messaging application most recently used on device 504 ( Figure 5A ). The launched messaging application may display the message log shown in user interface screen 506 ( Figure 5A ).
[0256] To facilitate user identification of the applications represented by cues 540, 542, and 544, each cue can display a thumbnail image of the application. For example, cue 540 can show a thumbnail image of user interface screen 506 to indicate the message recording (e.g., application status) that will be launched in response to a user selection of that cue. Additionally, to facilitate user selection of cue 540, the multitasking screen 538 can be scrollable. That is, the user can swipe the center cue 542 to the right to bring cue 540 to the center of the screen for more convenient selection.
[0257] Figure 5I The continuity features are illustrated as being included in other user interface screens as well. Just as the operating system of the device 100 can provide certain "pervasive" screens in the sense that they are generally accessible within the screen in that operating environment. Incorporating the continuity cues into one or more of these pervasive screens can facilitate the accessibility of the continuity features throughout the operating environment. As Figure 5I shown, when the device 100 displays the user interface screen 550, the user can swipe down from the top edge of the screen 550, as indicated by arrow 546, to expose the notification screen 530. (The user interface screen 550 can be an application screen or the "start" screen.) Alternatively, the user can swipe from the left edge of the screen 550 to the right to expose the search screen 560, as indicated by arrow 547. Alternatively, the user can swipe up from the bottom edge of the screen 550 to expose the control screen 570, as indicated by arrow 548. (As used herein, the left, top, and bottom edges lie in a plane coplanar with the display surface.)
[0258] The notification screen 530 can display notification messages that inform the user of the device's activity, such as incoming messages, phone calls, calendar entries, and so on. The notification screen 530 can also include a continuity cue 532 to inform the user of the device's ability to launch an application that corresponds to an active application of an external device within range. The user can select (e.g., tap) the continuity cue 532 to launch the corresponding application on the device 100. The search screen 560 can display search criteria and a set of relevant search results. The search results can include a continuity cue 562. The user can select (e.g., tap) the continuity cue 562 to launch the corresponding application on the device 100. The control screen 570 can have cues for controlling the operation of the device 100, such as switches for toggling flight mode, wireless communication, cellular communication, peer-to-peer communication, and so on. In some embodiments, the control screen 570 can include a continuity cue 572 for turning the continuity feature on / off, meaning that the user can select (e.g., tap) the continuity cue 572 to enable / disable the continuity feature. In some embodiments, the control screen 570 includes a continuity cue 572 for launching an application using the continuity feature, meaning that the user can select (e.g., tap) the continuity cue 572 to launch the corresponding application on the device 100.
[0259] The exact swipe gestures (and more generally, input methods) used to invoke the notification screen 530, the search screen 560, and the control screen 570 can vary in different embodiments. For example, in some embodiments, the notification screen 530 and the control screen 570 can be invoked in a manner opposite to the Figure 5I manner illustrated. That is, it is possible to invoke the control screen 570 with a swipe from the top edge down (e.g., 546), and the notification screen 530 with a swipe from the bottom edge up (e.g., 548). In still other embodiments, the device 100 can distinguish swipe gestures based on whether the swipe is made from the edge of the touch-sensitive display. That is, it is possible for the device 100 to display the notification screen 530 in response to a swipe from the top edge of the touch-sensitive display down, but display the search screen 560 in response to a downward swipe originating within the perimeter of the touch-sensitive display. Incorporating the continuity feature into one or more of these common screens can beneficially promote the accessibility of the continuity feature throughout the operating environment.
[0260] Figures 5J - 5L illustrates additional placements of the continuity cue in various user interfaces. In Figure 5JIn this case, the laptop 599 is in a user interface locked state and requires the input of a password to unlock. In some embodiments, the laptop 599 may be the device 300. In addition to the password input field 574, the lock screen 576 further includes a Continuity cue 578. In the illustrated example, the Continuity cue 578 is located in the upper right corner of the lock screen 576, where notification messages may also be displayed. In some embodiments, the user can invoke the Continuity feature by entering the correct password into the password input field 574 and clicking on the Continuity cue 578. That is, in response to receiving a valid password and a mouse event (e.g., click) on the Continuity cue 578, the device 599 can be unlocked and the application corresponding to the active application of the in-range device can be launched. In some embodiments ( Figure 5J not illustrated), the Continuity cue 578 is located within the password input field 574. In some embodiments ( Figure 5J not illustrated), the lock screen 576 includes a thumbnail image of the application that will be launched if the Continuity cue 578 is invoked. In some embodiments, after unlocking, the laptop 599 requests user confirmation before launching the corresponding application.
[0261] Also as Figure 5J shown, the laptop 599 can be unlocked and the desktop screen 580 can be displayed. The desktop screen 580 may have a dock area 582. The dock area 582 may have icons for launching application programs. The dock area 582 may further include a Continuity cue 584 for launching an application using the Continuity feature. In some embodiments, the Continuity cue 584 permanently resides in the area 582. In some embodiments, when a compatible device enters the range of the laptop 599 and sends usage data of the relevant application to the laptop 599, the Continuity cue 584 is inserted into the dock area 582. Optionally, the Continuity cue 584 may bounce when it is inserted into the dock area 582 to enhance visibility. In some embodiments, when displayed, the Continuity cue 584 is the leftmost icon on the dock area 582. In some embodiments, the Continuity cue 584 is removed from the area 582 after it has been displayed for a predetermined amount of time (e.g., 8 seconds). In response to a user selection (e.g., tap) of the Continuity cue 584, the laptop 599 can launch an application based on the Continuity feature, such as a different version of the messaging application active on the cellular phone 504 ( Figure 5A ).
[0262] An example of the docking area 582 is the Dock provided by the Mac OS operating system made by Apple Inc. located in Cupertino, California. However, in different embodiments, the docking area 582 can take other visual forms. For example, the docking area 582 can appear as a bar across the bottom or another edge of the screen, to which icons of enabled applications can be pinned.
[0263] As Figure 5K shown, the desktop screen 580 displayed by the laptop computer 599 can have a menu bar 586. The menu bar 586 can include an inspiration 588 for launching an application using the Continuity feature. In some embodiments, the Continuity inspiration 588 is the rightmost icon on the menu bar 586. In some embodiments, the Continuity inspiration 588 permanently resides on the menu bar 586. In some embodiments, when a compatible device enters the range of the laptop computer 599 and sends usage data of a relevant application to the laptop computer 599, the Continuity inspiration 588 is inserted into the menu bar 586. When it is inserted into the menu bar 586, the Continuity inspiration 588 can bounce (e.g., via animation) to enhance visibility. In some embodiments. After it has been displayed for a predetermined amount of time (e.g., 8 seconds), the Continuity inspiration 588 is removed from the menu bar 586. In response to a user selection (e.g., tap) of the Continuity inspiration 588, the laptop computer 599 can launch an application based on the Continuity feature, e.g., a different version of the messaging application active on the cellular phone 504( Figure 5A ).
[0264] Figure 5K An example of the menu bar 586 shown is the menu bar called "Finder" in the Mac OS operating system made by Apple Inc. located in Cupertino, California. However, in different embodiments, the menu bar 586 can reside at different screen positions, which means it can be positioned away from the top edge of the screen. For example, the menu bar 586 can appear as a bar across the bottom edge of the screen, from which a hierarchical menu for launching application programs can be found. In such an implementation, for example, the Continuity inspiration 588 can appear in the lower right area of the screen.
[0265] And as Figure 5KAs described, the laptop computer 599 can be unlocked and can display the desktop screen 590. The desktop screen 590 can have an icon grid 591. The icon grid 591 can have icons for launching applications on the laptop computer 599. For example, the icon grid 591 can have an icon 592 for launching a web browsing application on the device 100. The icon grid 590 can also include a continuity cue 593 for launching an application using the continuity feature. In response to a user selection (e.g., tap) of the continuity cue 593, the laptop computer 599 can launch the application based on the continuity feature, e.g., a different version of the messaging application active on the cellular phone 504( Figure 5A ).
[0266] As Figure 5L shown, the laptop computer 599 can display a task switch user interface (task switcher) 594 for switching between tasks being executed on the laptop computer 599. The task switcher 594 includes cues representing active applications. As shown, the task switcher 594 can include a cue 596 representing an application active at the front end of the laptop computer 599. The task switcher 594 can also include a cue 597 representing a background application on the laptop computer 599. The task switcher 594 can also include a continuity cue 595 for launching an application using the continuity feature. In some embodiments, the continuity cue 595 is the leftmost cue on the task switcher 594. In some embodiments, the continuity cue 595 is the rightmost cue on the task switcher 594.
[0267] In some embodiments, the laptop computer 599 displays the task switcher 594 in response to a command-tab input from the user. In some embodiments, the laptop computer 599 displays the task switcher 594 in response to a keystroke or keystroke combination, such as an altenate-tab input from the user. In some embodiments, the laptop computer 599 displays the task switcher 594 in response to the placement of the mouse cursor in a screen corner (e.g., bottom right). The user can select the continuity cue 595 to invoke the continuity feature. In some embodiments, the user can press the tab key multiple times while holding down the command key (or alternate key) to cycle through the displayed cues to reach the continuity cue 595. In response to each press of the tab key, the laptop computer 599 can highlight (or otherwise visually emphasize) different cues in the task switcher 594. When the continuity cue 595 is visually highlighted, the user can release the command key (or alternate key) to select the continuity cue 595. In response to the user selection, the laptop computer 599 can launch the application based on the continuity feature, e.g., on the cellular phone 504(Figure 5A ) Different versions of messaging applications active thereon.
[0268] And as Figure 5L shown, the laptop computer 599 can be unlocked and can display the desktop screen 581. When the laptop computer 599 receives usage information of an application from a compatible electronic device within its communication range, the laptop computer 599 can display a notification message 583. The user can select (e.g., click) the notification message 583 to launch the application corresponding to the active application being executed on the compatible electronic device within range.
[0269] In some embodiments, a device can "push" an application to another device. Figures 5M - 5N Exemplary user interfaces illustrating such "push" techniques are described according to some embodiments. As Figure 5M shown, the cellular phone 504 is executing a messaging application 511. Additionally, the device 199 (in some embodiments, it can be the device 100 or the device 300) is within the communication range of the cellular phone 504. The cellular phone 504 can display a prompt 513 for pushing the messaging application 511 to the device 199. In response to a user selection of "Yes" in the prompt 513, the cellular phone 504 sends information (e.g., an instruction) identifying the messaging application 511 to the device 199. The cellular phone 504 can also send status information about the messaging application 511, which information identifies the specific message record being displayed. As Figure 5N shown, in some embodiments, a continuity prompt 519 appears on the device 199 and can be selected by the user to launch the corresponding messaging application. In some (not shown) embodiments, the device 199 can automatically launch the corresponding messaging application after it receives the identification information from the cellular phone 504. In some embodiments, a confirmation message 517 that the push instruction has been sent to the device 199 is displayed on the cellular phone 504.
[0270] Figures 17A - 17E Additional exemplary user interfaces regarding the "push" technique are depicted according to some embodiments. As Figure 17A shown, the wearable electronic device 1704 worn by the user 1702 can obtain and display a web page 1706. In some embodiments, the wearable electronic device 1704 can be the device 460 ( Figure 4C ). Due to its form factor, the wearable electronic device 1704 can default to displaying a relatively small portion of the web page 1706 to improve readability. However, sometimes, the user may wish to see a larger portion of the web page.
[0271] Attention is now turned to how the user can view a larger portion of the web page 1706 on a compatible device in this case. AsFigure 17B As shown, when user 1702 walks into the wireless communication range of tablet computer 1708, device 1704 can communicate with tablet computer 1708 and determine that the two devices are compatible for continuity. As Figure 17C Depicted, user 1702 can touch the touch-sensitive display of wearable electronic device 1704 (indicated by contact 1710) while web page 1706 is being displayed to invoke menu 1711. Menu 1711 can include cues for invoking different functions of device 1704, including cue 1712 for invoking the continuity feature between wearable electronic device 1704 and tablet computer 1708.
[0272] In some embodiments, wearable electronic device 1704 may require contact 1710 to be a contact with a maximum intensity on the touch-sensitive display that exceeds a threshold intensity. In other words, if the maximum intensity of contact 1710 does not exceed the threshold, device 1704 may invoke another feature, such as the feature of obtaining and displaying another web page, for example, if the location of selection 1710 corresponds to a web page hyperlink.
[0273] Referring Figure 17C Turning Figure 17D to, when user 1702 selects cue 1712 (indicated by contact 1714), wearable electronic device 1704 can send information (e.g., instructions) identifying the web browsing application active at the front end of wearable electronic device 1704 to tablet computer 1708. Wearable electronic device 1704 can also send an indication of the web page being displayed, e.g., web page 1706, to tablet computer 1708. In some embodiments, confirmation message 1715 is displayed on wearable electronic device 1704 to indicate that the push instruction has been sent to the external device. The external device - tablet computer 1708 - can display continuity cue 1716 when it obtains the instruction.
[0274] Turning Figure 17E to, when user 1702 selects cue 1716, such as by swiping up on the cue, tablet computer 1708 launches the application corresponding to the web browser running on wearable electronic device 460. For example, tablet computer 1708 can launch the manufactured by Apple Inc. of Cupertino, California. Optionally, when launched, the application can display web page 1706. Optionally also, when launched, the application can display web page 1706 such that the (smaller) portion being displayed on wearable electronic device 1704 is part of the (larger) portion being displayed on tablet computer 1708. Since tablet computer 1708 has a larger display screen than wearable electronic device 460, a larger portion of web page 1706 can be displayed at one time.
[0275] Figures 18A - 18D Additional exemplary user interfaces for "push" technology are depicted according to some embodiments. As Figure 18A shown, the wearable electronic device 1804 worn by user 1802 can display a prompt 1806. In some embodiments, the wearable electronic device 1804 can be device 460. The prompt 1806 can be a message notifying the user of incoming application data. In the illustrated example, the incoming application data is a message. The prompt is useful for alerting the user to the availability of new application data when the corresponding application for processing the data is not executing at the front end of the device. Although it is possible for user 1802 to view the incoming message on the wearable electronic device 1804, sometimes the user may prefer to view the body of the message on a larger external computing device.
[0276] Attention will now be turned to how user 1804 can do this. Turning Figure 18B to, when a compatible external device is available, the user can invoke the continuity feature by touching and sliding the prompt 1806 in a specific direction, such as left or right, via a touch input 1808. In response, the wearable electronic device 1804 can send information (e.g., an instruction) identifying the incoming message to nearby devices. Turning Figure 18C to, in some embodiments, the wearable electronic device 1804 displays a confirmation message 1810 indicating that the push instruction has been sent to the external device. After obtaining the instruction, the external device - the tablet computer 1812 - can display a continuity cue 1814.
[0277] As Figure 18C shown, the user can invoke the continuity feature on the tablet computer 1812 by selecting the cue 1814 (e.g., by swiping up on the cue). In response to the selection of the cue 1814, device 1812 can launch an application for viewing the incoming message 1822 corresponding to the prompt 1806 ( Figure 18A ). After launching, the application displays the incoming message 1822 on the screen of the tablet computer 1812. Apple Inc. of Cupertino, California is an exemplary application that can be launched in this case to view a copy of the incoming message 1822.
[0278] It should be understood that device 199 ( Figures 5M - 5N ), device 1708 ( Figures 17A - 17E ), device 1812 ( Figures 18A - 18D ), and / or device 1910 ( Figures 19A - 19C ) can display cues for invoking the continuity feature in various ways. For example, in Figures 5C - 5LAny of the exemplary user interfaces described herein for presenting continuous cues may be used.
[0279] 3. Correspondence between applications
[0280] Reference Figure 6A and 6B , attention is now turned to the correspondence between applications that may be invoked using the continuity feature. Figure 6A illustrates launching different versions of an application executing on one device on another device using the continuity feature. As Figure 6A shown, cellular phone 504 is executing a web browser application presenting web page 602. Cellular phone 504 is within the communication range of tablet computer 512 and sends application usage data identifying the active web browser application and web page 602 to tablet computer 512. When the user invokes the continuity feature on tablet computer 512, tablet computer launches its own version of the web browser application presenting the same web page 602. That is, in this example, if the two applications are different versions of the same application, they are considered to correspond. In some embodiments, cellular phone 504 may execute for iPhone while tablet computer 512 may execute Safari. In some embodiments, tablet computer 512 may execute a portable document editor while cellular phone 504 may execute a portable document viewer.
[0281] Figure 6B illustrates launching an application different from but related to an application executing (or most recently executed) on one device on another device using the continuity feature. An example of a related application is a companion application. For example, if music management application 604 (e.g., from Apple Inc. in Cupertino, California) is playing a song on laptop computer 599 when the user invokes the continuity feature from cellular phone 504, cellular phone 504 may launch music player 606 to play the same song. Another example of a related application is an application that controls another. For example, if the music player application is executing on laptop computer 599 when continuity is invoked on cellular phone 504, cellular phone 504 may launch a remote control with transport controls for controlling the active music player on laptop computer 599.
[0282] Now turn attention to the continuity of the application state. As used herein, the "state" of an application refers to the mode or condition of the application. Exemplary application states include the condition of showing a particular screen, the mode or configuration settings in which the application operates, the condition of showing a particular location in the navigation hierarchy of the application, the condition of showing a particular portion or location within a document, and so on.
[0283] Referring back to Figure 5B , when the cellular phone 504 communicates with the tablet computer 512, the cellular phone 504 can send certain usage data to the tablet computer 512. The usage data can indicate the state of an active application on the cellular phone 504, such as a messaging application. The receiving tablet computer 512 can use this information to start the corresponding application in the same application state. For example, if the user is viewing a particular message thread on the cellular phone 504 when continuity is invoked on the tablet computer 512, the tablet computer 512 can start the corresponding messaging application and display the same message thread. If the message thread is long enough to require scrolling, the tablet computer 512 can display the message thread at the same scroll position based on the location information provided by the usage data.
[0284] In a case where the active application on the cellular phone 504 is presenting information from a particular location (e.g., a particular screen or sub-screen in the navigation hierarchy of the application) when continuity is invoked on the tablet computer 512, the tablet computer 512 can display the same application screen or sub-screen. For example, if the cellular phone 504 is showing a screen for configuring advanced messaging settings, the tablet computer 512 can display the same configuration screen when the user invokes continuity from the tablet computer 512. In other words, the display state can also persist after continuity.
[0285] In a case where the active application in the cellular phone 504 is in a particular mode when continuity is invoked on the tablet computer 512, the tablet computer 512 can start the corresponding application in the same mode. For example, if the cellular phone 504 is playing a video in (i) landscape orientation, (ii) a 16:9 aspect ratio, (iii) muted, and (iv) with closed captioning enabled when continuity is invoked on the tablet computer 512, the tablet computer 512 can start the corresponding video player to play the same video from the same location with settings (i)-(iv).
[0286] Refer to Figure 6C and 6D , now turn attention to invoking an application associated with a point of interest using the continuity feature. Figure 6CDescribes starting an application associated with an electronic point of interest using a continuity feature. For example, the electronic point of interest can be a home electronic device, such as a smart TV. The home electronic device can transmit a wireless signal conveying its identity to the cellular phone 504. When the user invokes the continuity feature from the cellular phone 504, the cellular phone 504 can use this information to start an application for controlling the smart TV. The application can be, for example, the smart TV controller 610. Figure 6D Describes starting an application associated with a physical point of interest using continuity technology. For example, the cellular phone 504 may be within a designated range of a landmark, such as the Statue of Liberty. If the continuity feature is invoked on the cellular phone 504 in such a case, the cellular phone 504 can start an application 612 that describes the statue and its history. In some embodiments, the physical proximity between the cellular phone 504 and the landmark can be determined based on GPS readings from the cellular phone 504 and the known coordinates of the landmark (e.g., from a map). In some embodiments, the cellular phone 504 can obtain and consider a location-based broadcast made by the landmark, such as a signal received from a Wi-Fi "beacon" that is broadcasting the location information of the landmark.
[0287] Sometimes, the cellular phone 504 can be within the wireless communication range of a point of interest for which an application is available on the Internet, but the application has not been installed on the cellular phone 504. For example, a user can carry the cellular phone 504 into a coffee shop that offers a mobile ordering and / or payment application that has not been previously installed on the cellular phone. In some embodiments, if the user invokes the continuity feature on the cellular phone 504 in such a case, the cellular phone 504 can display an invitation to download and install the relevant application. In this way, the user can instruct the cellular phone 504 to obtain the relevant application by simply selecting (e.g., tapping) the invitation. In some embodiments, if the user invokes the continuity feature on the cellular phone 504 in such a case, the cellular phone 504 can direct the user to an intermediate source of information for the point of interest - such as a web page - so that the user can make a more informed decision about whether to install the application associated with the point of interest. In these cases, the cellular phone 504 can obtain a deep link and display or access the deep link for further user consideration.
[0288] Because there can be a many-to-one relationship between available applications and points of interest, the cellular phone 504 can consider additional factors when determining which applications are most relevant for continuity. In some embodiments, the cellular phone 504 considers the usage frequency of certain applications at specific points of interest to identify the exact application that should be launched. For example, the cellular phone 504 may discover that both a fitness (sometimes referred to as exercise) application and a gym membership application are associated with the user's gym. The device 100 can further determine that the user accesses the exercise application more frequently when at the gym. In response to this determination, the device 100 can launch the exercise application when the user arrives at the gym and invokes the continuity function on the cellular phone 504.
[0289] In some embodiments, the cellular phone 504 considers the time of day to identify the exact application that should be launched. For example, the mobile phone 504 may discover that both a train schedule application and a news application are frequently accessed when the user is waiting for a train at a commuter station. The cellular phone 504 can further determine that the user tends to access the news application when waiting at the station in the morning. In response to this determination, if the user invokes the continuity feature when arriving at the station in the morning, the cellular phone 504 can launch the news application.
[0290] In some embodiments, the cellular phone 504 considers other context information to identify the exact application that should be launched. For example, the cellular phone 504 may discover that an in-vehicle entertainment application is frequently used when the phone's GPS sensor indicates that the device is moving at high speed and the RF circuitry of the cellular phone 504 indicates that the device is connected to a Bluetooth device named "CAR MEDIA". Thus, when the user invokes the continuity function on the cellular phone 504 in such a situation, the cellular phone 504 can launch the in-vehicle entertainment application in response.
[0291] Additional techniques for determining relationships between applications can be found in the following co-pending provisional applications: U.S. Patent Application Serial No. 62 / 005,781, "Activity Continuation Between Electronic Devices," filed May 30, 2014; U.S. Patent Application No. 62 / 005,793, "Companion Application for Activity Cooperation," filed May 30, 2014; U.S. Patent Application No. 62 / 005,751, "Predefined Wireless Pairing," filed May 30, 2014; and U.S. Patent Application Serial No. 62 / 005,755, "OPERATING-MODE TRANSITIONS BASED ON ADVERTISING INFORMATION," filed May 30, 2014. The entire contents of these applications are incorporated herein by reference.
[0292] Reference Figures 19A - 19C , and now turn attention to using the continuity feature in combination with voice-based intelligent automation assistant features. is an exemplary intelligent automation assistant. Automation assistant technology is also described, for example, in U.S. Utility Application Serial No. 12 / 987,982, "Intelligent Automated Assistant," filed January 10, 2011, the entire disclosure of which is incorporated herein by reference.
[0293] As Figure 19A shown, user 1902 can provide oral command 1903 to wearable electronic device 1904. In some embodiments, wearable electronic device 1904 can be device 460 ( Figure 4C ). Oral command 1903 can be a request for directions to a nearby coffee shop. In some embodiments, after receiving oral command 1903, wearable electronic device 1904 can send information indicating the oral command to an external device within range, in this example cellular phone 1910. In some embodiments, cellular phone 1910 can be device 100 (FIG. 1).
[0294] In response to receiving the instruction from wearable electronic device 1902, cellular phone 1910 can display cue 1912 for invoking the continuity feature. When the user invokes continuity via cue 1912 (e.g., by as Figure 19BIn the example shown in FIG. 2, the cellular phone 1910 can display the information obtained in response to the verbal command 1906. In the illustrated example, the cellular phone 1910 displays turn-by-turn navigation 1914 to a nearby coffee shop in response to the command 1903.
[0295] In some examples, the information sent from the wearable electronic device 1904 to the external device (cellular phone) 1910 can include data representing the verbal command 1906. In some examples, the information sent from the wearable electronic device 1904 to the external device (cellular phone) 1910 can include data representing a web service for obtaining information in response to the verbal command 1906. In some examples, the information sent from the wearable electronic device 1904 to the external device (cellular phone) 1910 can include data representing the information obtained in response to the verbal command 1906.
[0296] These examples illustrate that although the division of labor between the wearable electronic device 1904 and the external device 1910 regarding processing and providing intelligent automated responses can vary between embodiments, each embodiment can still allow the user to choose between obtaining intelligent automated responses on one or more of the involved devices according to their own preferences. It is particularly useful for the user to be able to query the assistant using a highly portable device (e.g., the wearable electronic device 1904) and then determine whether to receive the response from the assistant on the same device and / or a compatible external device (e.g., the cellular phone 1910), because one of the two devices may have audio / visual capabilities more suitable for presenting the resulting response (e.g., a speaker, a larger / higher-resolution screen).
[0297] As an example, as Figure 19C shown in FIG. 3, in some embodiments, the wearable electronic device 1904 can display turn-by-turn directions 1914 after receiving the verbal command 1906. However, the amount of information displayed at one time is limited by the form factor of the wearable electronic device 1904. If the user selects the continuity feature on the cellular phone 1910, a more complete view of the turn-by-turn directions 1914 can be displayed by the cellular phone 1910 because the cellular phone 1910 is equipped with a larger display screen. In this way, the user can conveniently invoke the voice assistant function through one device and, as needed, use one or two devices to view the information provided by the voice assistant.
[0298] 4. Disambiguation
[0299] There may be a situation where the device cannot unambiguously determine which application should be launched based on the incoming data, historical data, and / or context information. This situation may be caused by multiple external devices being within the range of the device. Consider Figure 7A , which illustrates a first external device 702 that executes a messaging application 704 and a second external device 706 that executes a web browsing application 708. The user interacts with both devices simultaneously because he intermittently sends text messages while web browsing. Both devices are within the range of a tablet computer 710. Both devices also wirelessly send usage data about applications 704 and 708 to the tablet computer 710. In this case, the tablet computer 710 may not be able to determine which of the two applications is actually more relevant to the user.
[0300] In some embodiments, for continuity, the tablet computer 710 may identify the most recently used application as the more relevant application. That is, if the user last accessed the messaging application 704 six seconds ago, but last accessed the web browser 708 ten seconds ago, then when continuity is invoked on the tablet computer 710, the tablet computer 710 launches the corresponding messaging application because the messaging application 704 was more recently accessed by the user. Optionally, the tablet computer 710 may display a thumbnail representation of the messaging application in the continuity cue 714 to indicate the application that is to be launched.
[0301] However, this approach may not always be appropriate. For example, the user may be more focused on web browsing on the larger tablet computer 710. In some embodiments, when such a situation is encountered, the tablet computer 710 may display additional information to allow the user to make a more informed choice of the application to launch. For example, the tablet computer 710 may display more than one continuity cue on the lock screen 712 to indicate the availability of multiple applications from which to continue. As Figure 7B shown, the tablet computer 710 may display cues 714 and 716 to signal the need for a user selection between the two.
[0302] Figures 7C - 7E Illustrates how the tablet computer 710 may respond to a selection (e.g., a tap) of the set of cues 714 and 716. In some embodiments, as Figure 7CAs shown, when the tablet computer 710 receives user input (e.g., a tap) in this set of cues, the tablet computer 710 visually ungroups the cues and pans the cues on the screen so that they are appropriately spaced apart for individual selection using touch objects. Ungrouping may involve visually panning cues 714 and 716 from their grouped positions to their ungrouped positions. In response to a user selection (e.g., a swipe or a tap) of the continuous cue 714, the tablet computer 710 may launch a messaging application corresponding to the messaging application of the device 702.
[0303] In response to a user selection of the continuous cue 716, the tablet computer 710 may launch a web browsing application corresponding to the web browsing application of the device 706.
[0304] In some embodiments, as Figure 7D shown, when the user selects the continuous cue 714 or 716, the tablet computer 710 displays an ambiguity resolution screen 718. The ambiguity resolution screen 718 may display 22 may display the continuous cue 714 or 716 for individual selection. In response to a user selection (e.g., a swipe or a tap) of the continuous cue 714, the tablet computer 710 may launch a messaging application corresponding to the messaging application of the device 702. In response to a user selection of the continuous cue 716, the tablet computer 710 may launch a web browsing application corresponding to the web browsing application of the device 706.
[0305] In some embodiments, as Figure 7E shown, the tablet computer 710 displays an ambiguity resolution screen 720. The ambiguity resolution screen 720 may organize the applications available for launching via the continuity feature by category. The categorization of the applications may be based on the relationship between the available applications and those executing on the external device. For example, corresponding applications that are different versions of applications executing on the external device may be placed under one category 722, while related (e.g., companion) applications may be placed under another category 724. In addition, applications displayed due to the proximity of the device to a point of interest may be displayed as another category of applications 726.
[0306] In some embodiments, as Figure 7FAs shown, tablet computer 710 displays disambiguation screen 730. Disambiguation screen 730 can organize the applications available for launching via the continuity feature into a tabular list. The separation of applications across tabs can be based on the relationship between the available applications and those executing on the external device. The tab titles can identify the relationships. When a tab to which an application belongs is selected, cues for launching the applications within each category (tab) are displayed. For example, cues for invoking the corresponding application are displayed under tab 732, while cues for invoking related (e.g., companion) applications are displayed under tab 734.
[0307] In some embodiments, as Figure 7G shown, tablet computer 710 displays disambiguation screen 740. Disambiguation screen 740 can list the applications corresponding to each compatible external device within the communication range. As shown, disambiguation screen 740 includes a header 742 representing a first external device (e.g., Figure 7A 702 in ). Disambiguation screen 740 also includes a header 744 representing a second external device (e.g., Figure 7A 706 in ). Disambiguation screen 740 also includes a header 745 representing a third external device. Tablet computer 710 also displays cues representing the applications corresponding to those applications executing (and / or having executed) on the respective external devices under each header.
[0308] As Figure 7G shown, cues 746, 748, and 750 represent the corresponding versions of three applications executing (and / or having executed) on external device 702. Optionally, the order of cues 746, 748, and 750 can reflect how recently each application has been used by the user relative to each other. Similarly, the cues listed together with header 744 represent the corresponding versions of the applications executing (and / or having executed) on external device 706. Screen 740 can be scrollable in one direction (e.g., horizontally) to expose additional external devices. Screen 740 can be scrollable in another direction (e.g., vertically) to expose more application cues.
[0309] In some embodiments, disambiguation screen 740 can include a "favorite" header (not shown). Tablet computer 710 can display cues showing the applications that have been designated as favorites by the user under this "favorite" header. In some embodiments, tablet computer 710 can organize this information into a tabular list (not shown). Such a tabular list would look similar to Figure 7F the tabular list illustrated in, which means that the applications corresponding to each external device can be displayed under tabs.
[0310] It should be noted that when the application is in terms of Figures 7A - 7GWhen the described manner is initiated, device 710 may resume the ongoing application to the same application state as the corresponding application on the external device, as discussed above.
[0311] It should be noted that the Figures 7A - 7G described user interface provides the user with a powerful way to categorize their application usage across multiple electronic devices and seamlessly switch between the use of those applications. For example, consider a scenario where the user has a compatible cellular phone, tablet computer, and laptop. Depending on which device is most suitable for a particular task, by presenting the user with the entire set of potentially open (and optionally closed) applications from which to resume, the user interface screen modeled after the disambiguation screen 740 ( Figure 7G ) will provide the user with a particularly powerful way to switch between different devices.
[0312] 5. Improved Wireless Communication Technology
[0313] In some embodiments, for continuity functionality, wireless communication occurs via peer-to-peer wireless communication protocols such as Bluetooth and / or Bluetooth Low Energy (BTLE). In some embodiments, for continuity functionality, more than one wireless communication protocol is used. For example, in addition to BTLE, WiFi can also be used. In these embodiments, the initial communication between two devices can occur via a lower power protocol such as BTLE, even if that protocol results in a slower data transfer speed. Subsequent communication can occur via a relatively faster secondary network such as WiFi.
[0314] As an example, a laptop can obtain usage information indicating that an email message is being drafted within range via BTLE. When the user invokes email continuity on the laptop, the two devices can communicate via WiFi to send application data including portions of the drafted email and attached attachments, such that the user can continue drafting on the laptop without losing progress. By this forking approach, the device can poll other compatible devices within range without excessive power requirements on the device power system. The reduced power consumption rate can also allow for a more frequent polling rate. At the same time, faster channels are reserved for data-intensive communication such as the transfer of application data and / or application state information.
[0315] In some embodiments, usage information sent over a slower communication protocol includes device authentication information. The authentication information can include a token or other identifier that is calculated (e.g., hashed) at least in part based on a user ID. In some examples, the user ID is an email address. In some embodiments, the user ID is an iCloud ID provided by Apple Inc. of Cupertino, California, which can in turn be associated with an email address. Two compatible devices can determine to allow or deny use of the Continuity feature (at least in part) based on whether the devices are associated with the same user ID. In this way, privacy between devices owned by different (but physically proximate) users can be maintained, meaning that continuity between devices of different users can be blocked (or allowed) as desired.
[0316] In some embodiments, the device can also conserve power by allowing the user to specify how much Continuity information should be automatically obtained from compatible devices within wireless communication range. In these embodiments, the device can receive initial information identifying one or more compatible devices over a lower power peer-to-peer communication protocol. In response to detecting an external device and the initial information, the device can display a Continuity prompt notifying the user of the potential availability of the Continuity feature. However, the displayed Continuity prompt can have a visual appearance indicating that the Continuity feature has not been fully enabled. Specifically, the device can avoid doing so until the device receives a user instruction to obtain additional usage and / or application data information from the compatible device. The user can do so by selecting (e.g., tapping) on the displayed prompt. In response to the user selection, the device can obtain additional usage and / or application data information that will allow the device to launch the corresponding application in an appropriate application state. Additionally, the device can update the visual appearance of the prompt to indicate that continuity with the compatible device is now enabled and can thus be invoked from the device (e.g., by swiping).
[0317] This power-saving technique is described in Figures 8A - 8C This illustration. In Figure 8A FIG. 10, devices 504 and 199 are within communication range and are compatible for Continuity. Although both devices are within range, device 199 initially receives a first portion of usage information from device 504 indicating its presence and support for the Continuity feature. This initial communication 801 can occur over a low-power communication protocol, such as BTLE. In response to receiving this first portion of usage information, device 199 displays a Continuity prompt 802 with a disabled appearance. The user can select (e.g., tap) the prompt 802 to enable further communication 803 between the devices for Continuity. Turning to Figure 8B, in response to a user selection of the cue 802, the device 199 obtains an additional second portion of usage information from the device 504. Among other factors, this additional usage information may indicate the usage of the messaging application 804 on the device 504 and the status of the messaging application 804. Moreover, the device 199 may change the visual appearance of the cue 802 such that it appears enabled. Optionally, the device 199 may include a thumbnail image of the application 804 with respect to the cue 802. As Figure 8C shown, the user may then swipe or otherwise activate the cue 802 to launch the corresponding application on the device 199.
[0318] Figure 9 is a flowchart illustrating a process 900 for switching between two electronic devices. The process 900 may be performed on an electronic device having a display and a touch-sensitive surface, such as the device 100 (FIG. 1), the device 300 ( Figure 3 ), the device 460 ( Figure 4C ), and the device 470 ( Figure 4D ). At block 902, the device detects an external device via wireless communication. The external device is executing or has executed a first application. At block 904, the device receives usage information from the external device indicating the usage of the first application on the external device. Optionally, the usage information includes usage statistics regarding when and how recently the first application has been used. Optionally, the usage information indicates the status of the first application. At block 906, in response to detecting the external device and receiving the usage information, the device displays a cue on its screen. Optionally, at block 906, the device may determine how long the cue has been displayed and stop displaying the cue after a predetermined amount of time. At block 908, the device receives input data representing a user selection of the displayed cue. At block 910, in response to receiving the input data, the device launches a second application on the electronic device, where the second application corresponds to the first application. In some embodiments, the second application may correspond to the first application because the second application is a different version of the first application. In some embodiments, the second application may correspond to the first application because the two applications both have at least one common application function. For example, both applications may be able to view a particular type of presentation file. In some embodiments, the second application may correspond to the first application because the second application is a companion application to the first application and / or the second application provides a function for controlling the operation of the first application. Optionally, when the device launches the second application, the device also places the second application in the same application state as the first application.
[0319] In some embodiments (e.g., touch screen embodiments), the device executing process 900 has a touch screen display and the touch sensitive surface is on the display. In some embodiments (e.g., non-touch screen embodiments), the device has a display separate from the touch sensitive surface. Thus, the appearance of the continuity cue 514 shown in block 908 can be different. For example, in a touch screen embodiment, the displayed cue may look like Figures 5C - 5I , Figures 7A - 7G and / or Figures 8A - 8C as illustrated. In a non-touch screen embodiment, the displayed cue can look like Figures 5J - 5L as illustrated. The exact user input to which the device responds in block 910 can also be different. For example, in a touch screen embodiment, the displayed cue can respond to touch input using a touch object, such as a tap, a long touch, a flick, a swipe, or another suitable touch gesture. In a non-touch screen embodiment, the displayed cue can respond to mouse events generated using a mouse or equivalent input device, such as a click, a double click, a drag, etc. Combinations of embodiments are possible. For example, a touch screen device can respond to an external wireless mouse, so a device in a touch screen embodiment can also respond to mouse and mouse cursor input techniques. Similarly, a non-touch screen device can respond to a touch sensitive surface (e.g., a touchpad), such that a device in a non-touch screen embodiment can also respond to touch input. In other words, it is entirely possible for a tablet computer to display Figures 5J - 5L one of the screens illustrated and launch an application using the continuity feature in response to wireless keyboard / mouse input. Similarly, it is entirely possible for a laptop computer to also have a touch sensitive display and thus be able to provide the screens illustrated in Figures 5C - 5I , Figures 7A - 7G and / or Figures 8A - 8C and respond to keyboard, mouse, and touch input. Other combinations are possible.
[0320] Figure 43 is a flow diagram illustrating process 4300 for transitioning between two electronic devices. Process 4300 can be executed at an electronic device having a touch sensitive display, such as device 100 (FIG. 1), device 300( Figure 3 ), device 460( Figure 4C ) and device 470( Figure 4D)。At block 4302, when the electronic device is in a user interface locked state, the electronic device detects an external device. The external device is executing a first application, and the first application is in a state. At block 4304, the device displays a prompt corresponding to the first application for a predetermined amount of time. At block 4306, the device detects contact with the touch-sensitive display at the location of the displayed prompt. At block 4308, in response to the contact, the device launches a second application that corresponds to the first application. The state of the second application corresponds to the state of the first application.
[0321] Figure 44 is a flowchart of process 4400 that illustrates the process of switching between two electronic devices. Process 4400 may be performed at an electronic device having a touch-sensitive display and buttons, such as device 100 (FIG. 1), device 300 ( Figure 3 ), device 460 ( Figure 4C ), and device 470 ( Figure 4D ). At block 4402, the electronic device detects an external device. The external device is executing a first application, and the first application is in a state. At block 4404, the electronic device detects two presses of a button. At block 4406, in response to detecting the two presses, the electronic device displays a left prompt, a center prompt, and a right prompt. The left prompt is for launching a second application corresponding to the first application on the electronic device, and the center prompt indicates the application most recently used on the electronic device. At block 4408, the electronic device detects contact with the left prompt. At block 4410, in response to the contact with the left prompt, the electronic device launches the second application on the electronic device. The state of the second application corresponds to the state of the first application.
[0322] Figure 45 is a flowchart of process 4500 that illustrates the process of switching between two electronic devices. Process 4500 may be performed at an electronic device having a touch-sensitive display, such as device 100 (FIG. 1), device 300 ( Figure 3 ), device 460 ( Figure 4C ), and device 470 ( Figure 4D ). At block 4502, the device detects an external device. The external device is executing a first application, and the first application is in a state. At block 4504, the electronic device detects a downward swipe on the touch-sensitive display that starts from the top edge of the touch-sensitive display. At block 4506, in response to the downward swipe, the electronic device: displays a prompt for launching a second application on the electronic device, where the second application corresponds to the first application. At block 4508, the electronic device detects contact with the prompt. At block 4510, in response to the contact with the prompt, the electronic device launches the second application on the electronic device. The state of the second application corresponds to the state of the first application.
[0323] Figure 46 is a flowchart illustrating process 4600 for switching between two electronic devices. Process 4600 can be executed at an electronic device having a touch-sensitive display and a biometric reader, such as device 100 (FIG. 1), device 300 ( Figure 3 ), device 460 ( Figure 4C ), and device 470 ( Figure 4D ). At block 4602, while the electronic device is in a user interface locked state, the electronic device detects an external device. The external device is executing a first application, and the first application is in a state. At block 4604, the electronic device receives biometric input from the biometric reader. At block 4606, in response to receiving the biometric input:
[0324] the electronic device unlocks the electronic device. At block 4608, after unlocking, the electronic device displays a prompt corresponding to the first application. At block 4610, the electronic device detects a touch on the displayed prompt. At block 4612, in response to detecting the touch, the electronic device launches a second application that corresponds to the first application. The state of the second application corresponds to the state of the first application.
[0325] Figure 47 is a flowchart illustrating process 4700 for switching between two electronic devices. Process 4700 can be executed at an electronic device having a touch-sensitive display, such as device 100 (FIG. 1), device 300 ( Figure 3 ), device 460 ( Figure 4C ), and device 470 ( Figure 4D ). At block 4702, the device detects an external device. The external device is executing a first application, and the first application is in a state. At block 4704, the electronic device displays a plurality of application icons on the touch-sensitive display. At block 4706, the electronic device detects a right swipe on the touch-sensitive display that starts from the left edge of the touch-sensitive display. At block 4708, in response to the right swipe, the electronic device displays a prompt for launching a second application on the electronic device that corresponds to the first application. At block 4710, the electronic device detects a touch on the prompt. At block 4712, in response to the touch on the prompt, the electronic device launches the second application on the electronic device. The state of the second application corresponds to the state of the first application.
[0326] Figure 48 is a flowchart illustrating process 4800 for switching between two electronic devices. Process 4800 can be executed at an electronic device having an input device for controlling a user interface cursor, such as device 100 (FIG. 1), device 300 ( Figure 3 ), device 460 ( Figure 4C ), and device 470 ( Figure 4D)。At block 4802, when the electronic device is in a user interface locked state, the electronic device detects an external device. The external device is executing a first application, and the first application is in a state. At block 4804, the electronic device displays a password input field and a prompt corresponding to the first application. At block 4806, the electronic device receives a password. At block 4808, the electronic device detects a mouse event on the displayed prompt. At block 4810, in response to receiving the password and detecting the mouse event, the electronic device launches a second application, where the second application corresponds to the first application. The state of the second application corresponds to the state of the first application.
[0327] Figure 49 is a flowchart of process 4900 that illustrates the process of transitioning between two electronic devices. Process 4900 can be executed at an electronic device having a keyboard, such as device 100 (FIG. 1), device 300 ( Figure 3 ), device 460 ( Figure 4C ) and device 470 ( Figure 4D ). At block 4902, the electronic device detects an external device, where the external device is executing a first application, and the first application is in a state. At block 4904, the electronic device detects a key press of a first key of the keyboard simultaneous with a key press of a second key of the keyboard. At block 4906, in response to the simultaneous key presses: the electronic device displays a plurality of prompts, including: a prompt identifying a plurality of active applications on the electronic device, and a prompt for launching a second application corresponding to the first application. At block 4908, the electronic device detects a sequence of keyboard inputs, including (i) at least one additional key press of the second key (ii) holding the first key simultaneously (iii) then releasing both the first key and the second key. At block 4910, in response to the keyboard input sequence, the electronic device launches the second application. The state of the second application corresponds to the state of the first application.
[0328] Figure 50 is a flowchart of process 5000 that illustrates the process of transitioning between two electronic devices. Process 5000 can be executed at an electronic device having an input device for controlling a user interface cursor, such as device 100 (FIG. 1), device 300 ( Figure 3 ), device 460 ( Figure 4C ) and device 470 ( Figure 4D)。At block 5002, the electronic device detects an external device. The external device is executing a first application, and the first application is in a state. At block 5004, the electronic device detects the movement of a cursor towards a corner of the screen of the electronic device. At block 5006, in response to detecting the movement of the cursor, the electronic device displays a plurality of cues, including: a cue identifying a plurality of active applications on the electronic device, and a cue for launching a second application corresponding to the first application. At block 5008, the electronic device detects a sequence of inputs, including: (i) the movement of the cursor over the cue for launching the second application and (ii) a mouse event on the cue. At block 5010, in response to detecting the sequence of inputs, the electronic device launches the second application. The state of the second application corresponds to the state of the first application.
[0329] Figure 51 is a flowchart of a process 5100 for transitioning between two electronic devices. The process 5100 may be performed at an electronic device having a display screen and an input device for controlling a user interface cursor, such as device 100 (FIG. 1), device 300 ( Figure 3 ), device 460 ( Figure 4C ) and device 470 ( Figure 4D ). At block 5102, the electronic device detects an external device. The external device is executing a first application, and the first application is in a state. At block 5104, the electronic device displays a plurality of application icons for launching a plurality of applications on the electronic device in a portion of the display screen. At block 5106, the electronic device displays an icon for launching a second application corresponding to the first application in this portion of the display screen. At block 5108, the electronic device detects the movement of the cursor onto the displayed icon and a mouse event on the displayed icon. At block 5110, in response, the electronic device launches the second application. The state of the second application corresponds to the state of the first application.
[0330] Figure 52 is a flowchart of a process 5200 for transitioning between two electronic devices. The process 5200 may be performed at an electronic device having an input device for controlling a user interface cursor, such as device 100 (FIG. 1), device 300 ( Figure 3 ), device 460 ( Figure 4C ) and device 470 ( Figure 4D ). At block 5202, the electronic device detects an external device. The external device is executing a first application, and the first application is in a state. At block 5204, the electronic device displays a menu bar that includes an icon for launching a second application corresponding to the first application. At block 5206, the electronic device detects the movement of the cursor onto the displayed icon and a mouse event on the displayed icon. At block 5208, in response, the electronic device launches the second application. The state of the second application corresponds to the state of the first application.
[0331] Figure 10 is a flow chart illustrating process 1000 of transitioning between two electronic devices. Process 1000 may be performed at an electronic device having a display and a touch-sensitive surface, such as device 100 (FIG. 1), device 300 ( Figure 3 ), and device 460 ( Figure 4C ). At block 1002, the device detects an external device via wireless communication. The external device is executing or has executed a first application. At block 1004, the device receives usage information from the external device indicating usage of the first application on the external device. Such usage information may be received using a first wireless communication protocol. At block 1006, the device receives application data of the first application from the external device. Such usage information may be received using a second wireless communication protocol different from the first wireless communication protocol. At block 1008, in response to detecting the external device and the information received at blocks 1004 and 1006, the device displays a continuity prompt. Optionally, at block 1008, the device may determine how long the prompt has been displayed and stop displaying the prompt after a predetermined amount of time. At block 1010, the device receives input data representing a user selection of the displayed prompt. At block 1012, in response to receiving the input data, the device launches a second application on the electronic device, the second application corresponding to the first application. When the device launches the second application, the device also causes the second application to display the same application data as that displayed by the first application.
[0332] In some embodiments, the usage information received at block 1004 is received via a lower-power wireless communication protocol, while the information received at block 1006 is received via a higher-power wireless communication protocol. The lower-power wireless communication protocol may have a lower bandwidth and / or a slower data transfer rate, which means the lower-power wireless communication protocol has a lower data transfer capacity. In some embodiments, the lower-power wireless communication protocol is a peer-to-peer protocol, while the higher-power wireless communication protocol is a local area network protocol. In some embodiments, the lower-power wireless communication protocol is Bluetooth or Bluetooth Low Energy protocol, while the higher-power wireless communication protocol is an IEEE 802.11x Wi-Fi protocol.
[0333] The division of labor between communications according to the first and second wireless communication protocols can vary. In other words, if a device needs to receive a certain complete set of information in order to provide a continuity function, how much of that complete set of information needs to be sent via the first wireless communication protocol as compared to the second wireless communication protocol can vary between embodiments and / or can vary in a particular embodiment based on factors such as the remaining battery charge of the device. In some embodiments, device authentication information is sent via the first wireless communication protocol. In some embodiments, device identification information is sent via the first wireless communication protocol, while application data, such as the content of a drafted email, is sent via the second wireless communication protocol. For example, the device identification information can be a Bluetooth token, a user ID such as an Apple ID or an email address.
[0334] More details regarding information transfer for supporting continuity functions can be found in the following co-pending provisional applications: U.S. Patent Application Serial No. 62 / 005,781, "ACTIVITY CONTINUATION BETWEEN ELECTRONIC DEVICES", filed on May 30, 2014; U.S. Patent Application Serial No. 62 / 005,793, "COMPANION APPLICATION FOR ACTIVITY COOPERATION", filed on May 30, 2014; U.S. Patent Application Serial No. 62 / 005,751, "PREDEFINED WIRELESS PAIRING", filed on May 30, 2014; and U.S. Patent Application Serial No. 62 / 005,755, "OPERATING-MODE TRANSITIONS BASED ON ADVERTISING INFORMATION", filed on May 30, 2014. The entire contents of these applications are incorporated herein by reference.
[0335] Figure 11 is a flowchart illustrating a process 1100 for transitioning between two electronic devices. Process 1100 can be executed at an electronic device having a display and a touch-sensitive surface, such as device 100 (FIG. 1), device 300 ( Figure 3 ), device 460 ( Figure 4C)。At block 1102, the device detects its proximity to the point of interest. At block 1104, the device determines whether the proximity is within a threshold range. At block 1106, based on the determination that the proximity is within the threshold range, the device displays a prompt on the screen. At block 1108, the device receives input data representing a selection of the displayed prompt. At block 1110, in response to receiving the input data, the device launches an application associated with the point of interest on the electronic device.
[0336] In some embodiments, the device is locked at block 1102 and unlocked at block 1110. The point of interest can be electronic or a physical landmark with an electronic device that identifies its location. When the point of interest is an electronic device, at block 1110, the device can launch an application for controlling the electronic point of interest. For example, if the point of interest is a smart TV, at block 1110, the remote control application for the TV can be launched. When the point of interest is a physical landmark, at block 1110, the device can launch an application associated with the landmark. For example, the device can launch a travel brochure for the landmark at block 1110.
[0337] Optionally, at block 1110, the device 100 can consider other factors when determining which application to launch. As discussed above, the device 100 can consider context information such as access time and frequency when determining which application to launch. Also, as discussed above, the device 100 can discover a desired application that is not yet installed. In these cases, the device 100 can proceed to block 1112 to download, install, and launch the application. Alternatively, the device 100 can display additional information for the user to determine whether a particular application should be installed.
[0338] Figure 12 is a flowchart illustrating a process 1200 for selecting an application to launch when multiple applications are available for continuity. The process 1200 can be performed at an electronic device having a display and a touch-sensitive surface, such as device 100 (FIG. 1), device 300 ( Figure 3 ) and / or device 460 ( Figure 4C ). At block 1202, the device detects a first external device via wireless communication. The first external device can be executing a first application. The first application can have a particular state. At block 1204, the device detects a second external device different from the first external device via wireless communication. The second external device is executing a second application. The second application can have a particular state. At block 1206, based on detecting the first external device and the second external device, the device displays at least one prompt on the screen of the electronic device. The displayed prompt can have, for example, at Figures 7A - 7GThe visual appearance of the user interface screen shown in. At block 1208, the device receives input data representing a user selection of a revelation among at least one of the displayed revelations. Possible inputs include those described above, including those discussed with reference to process 900( Figure 9 ). At block 1210, in response to receiving the input data, the device launches a third application on the electronic device. The third application can be a version of the first application or the second application.
[0339] Figure 13 is a flowchart illustrating process 1300 for transitioning between two electronic devices. Process 1300 can be performed at an electronic device having a display and a touch-sensitive surface, such as device 100 (FIG. 1), device 300( Figure 3 ), and / or device 460( Figure 4C ). At block 1302, the device executing the first application detects an external device via wireless communication. At block 1304, the device displays a push revelation on the screen for instructing the external device to launch a second application corresponding to the first application. At block 1306, the device detects a user selection of the push revelation. At block 1308, in response to detecting the user selection, the device sends an instruction to the external device to cause the external device to display a revelation for launching the second application on the external device.
[0340] Figure 14 is a flowchart illustrating process 1400 for transitioning between two electronic devices. Process 1400 can be performed at an electronic device having a display and a touch-sensitive surface, such as device 100 (FIG. 1), device 300( [[ID ), and / or device 460( ). At block 1402, the device detects an external device via wireless communication. The external device is executing the first application. At block 1404, the device receives a first portion of usage information from the external device indicating that the first application has been used by the user on the external device within a time interval. At block 1406, in response to detecting the external device and receiving the first portion of the usage information, the device displays a revelation on the screen of the electronic device. At block 1408, the device detects a user selection of the displayed revelation. At block 1410, in response to detecting the user selection, the device: (i) changes the visual appearance of the displayed revelation; and (ii) obtains a second portion of the usage information associated with the first application from the external device. At block 1412, the device detects a user input to the changed revelation. At block 1414, in response to receiving the user input, the device launches the second application on the electronic device based on at least the second portion of the usage information. The second application corresponds to the first application.
[0341] is a flowchart illustrating a process 1500 for transitioning between multiple electronic devices. The process 1500 may be performed at an electronic device having a display and a touch-sensitive surface, such as device 100 (FIG. 1), device 300( ), and / or device 460( ). At block 1502, the device receives, via wireless communication, first data representing a first plurality of applications that are being executed and / or have been executed on a first external device. At block 1504, the device displays a first plurality of cues representing the first plurality of applications, the plurality of cues including a first cue corresponding to a first application of the first external device. At block 1506, the device detects a user selection of the first cue. At block 1508, in response to detecting the user selection of the first cue, the device launches a first local application on the electronic device. The first local application is a version of the first application.
[0342] In addition to receiving information from the first external device, the local device on which the process 1500 is being executed may receive information from a second external device. Optionally, the process 1500 may include block 1510, during which the device receives, via wireless communication, second data representing a second plurality of applications that are being executed and / or have been executed on a second external device. Further, at block 1512, the device may display a second plurality of cues representing the second plurality of applications, the plurality of cues including a second cue corresponding to a second application of the second external device. Still further, at block 1514, the device may detect a user selection of the second cue and, in response, launch a second local application on the electronic device, wherein the local application is a version of the second application.
[0343] It should be noted that, in some embodiments, the first and second pluralities of cues representing the applications on the first and second external devices may be displayed together on the same screen. For example, this user interface may have the visual appearance of the mid-screen 740. From this screen, the user can identify the various applications running on nearby devices. Moreover, from this screen, the user can choose to continue his work on the local device by invoking the corresponding application on the local device. In this way, the process 1500 provides a powerful way to categorize a user's application usage across multiple electronic devices and allows the user to seamlessly transition from the use of one device to another. For example, consider a scenario in which the user owns a compatible cellular phone, a tablet computer, and a laptop computer. A device that executes the process 1500 to display the disambiguation screen 740( ) will allow the user to easily transition between different devices and the local device that is more suitable for the task at hand.
[0344] It is a flowchart illustrating the process 2000 of switching between two electronic devices. In some embodiments, the process 2000 may be executed at an electronic device having a display and a touch-sensitive surface capable of detecting the intensity of a touch contact. In some embodiments, the process 2000 may be executed at an electronic device having a display and a touch-sensitive surface capable of determining a substitute for the contact force or pressure on the touch-sensitive surface. Exemplary devices on which the process 2000 may be executed include devices 100, 300, and 460 (FIGS. 1, 3, and 4C).
[0345] At block 2002, a first touch contact is detected on the touch-sensitive display. The first contact has a first maximum intensity. The location of the first contact on the touch screen may correspond to an icon for launching an application on the device. At block 2004, a determination is made as to whether the first maximum intensity exceeds a threshold intensity. If the first maximum intensity is below the threshold intensity, the process continues to block 2006, where the corresponding application is launched. If the first maximum intensity is above the threshold intensity, the process proceeds to block 2005, where other features are executed in addition to launching the corresponding application. For example, in some embodiments, a context-sensitive menu is displayed.
[0346] At block 2008, a second touch contact may be detected on the touch-sensitive display, the second contact having a second maximum intensity. At block 2010, a determination is made as to whether the second maximum intensity exceeds the threshold intensity. If the second maximum intensity is above the threshold intensity, the process continues to block 2012, where an instruction may be sent via wireless communication to an external device. The instruction may cause the external device to display an indication for launching a second application corresponding to the first application on the external device. In some embodiments, the second contact and the sending of the instruction are separated by one or more intermediate steps. For example, in order for the instruction to be sent, the user may be required to select an additional indication (e.g., an icon on the screen) after the second contact. The additional indication may be marked in a way that indicates to the user that he intends to "push" information from one electronic device to another. If the second maximum intensity is below the threshold intensity, the process proceeds to block 2011, where other features are executed in addition to sending the instruction to launch the second application. For example, in some embodiments, features of the first application may be invoked.
[0347] is a flowchart illustrating process 2100 for transitioning between two electronic devices. In some embodiments, process 2100 may be performed at an electronic device having a display and a touch-sensitive surface, such as devices 100, 300, and 460 (Figs. 1, 3, and 4C). Applications may be installed on the device and be executable. At block 2102, application data for an installed application may be obtained when the installed application is not displayed (e.g., when the application is not front and active). At block 2104, a cue indicating the obtained application data may be displayed. For example, the installed application may be manufactured by Apple Inc. of Cupertino, California The obtained application data may be an incoming text message; and the cue may include text notifying the user of the incoming text message. At block 2106, a swipe on the cue may be detected. At block 2108, in response to determining that the detected movement is substantially in a first direction, an instruction may be sent via wireless communication to an external device. The instruction may provide information for causing the external device to display an indication for launching a second application corresponding to the first application on the external device. As used herein, a "cue" may consist of a graphical user interface object in the form of text and images.
[0348] is a flowchart illustrating process 2200 for transitioning between two electronic devices. In some embodiments, process 2200 may be performed at an electronic device having a display and a microphone, such as devices 100, 300, and 460 (Figs. 1, 3, and 4C). The electronic device may have an intelligent automation assistant responsive to voice input received via the microphone. At block 2202, voice input may be detected. The voice input may include an oral request for information. At block 2204, an external device within wireless communication range may be detected. At block 2206, in response at least in part to detecting the voice input and detecting the external device, an instruction may be sent via wireless communication to the external device. The instruction may provide the external device with information for displaying an indication for displaying the requested information. The instruction may direct the external device to display the indication.
[0349] is a flowchart illustrating process 5300 for transitioning between two electronic devices. Process 5300 may be performed at an electronic device having a touch-sensitive display and a microphone, such as device 100 (Fig. 1), device 300( ), device 460( ), and device 470( )。At block 5302, the electronic device detects a voice input from a microphone. The voice input includes an oral request for information. At block 5304, the electronic device detects an external device via wireless communication. At block 5306, in response at least in part to detecting the voice input and detecting the external device, the electronic device sends an instruction to the external device via wireless communication. The instruction causes the external device to display a prompt for displaying the requested information.
[0350] It should be understood that the particular order of operations described in FIGS. 20-22 is exemplary and is not intended to indicate that the described order is the only order in which the operations may be performed. Those of ordinary skill in the art will recognize various ways of rearranging the operations described herein. For the sake of brevity, these details are not repeated here. Additionally, it should be noted that aspects of processes 900-1500 ( ) and processes 2000-2200 ( ) may be combined with each other. For example, process 900 describes the reception of input in a device equipped with a touch screen and a non-touch screen. The touch screen and non-touch screen devices may be used to perform one or more of processes 1000-1500 and 2000-2200 ( and FIGS. 20-22). Thus, the input techniques described with respect to process 900 may be relevant to processes 1000-1500 and 2000-2200. For the sake of brevity, the permutations of user input techniques are not repeated.
[0351] The operations in the above information processing method may be implemented by running one or more functional modules in an information processing device, such as a general-purpose processor or a dedicated chip. These modules, combinations of these modules, and / or their combinations with general hardware (e.g., as described above with respect to , 1B , 3, 4C, and 4D) are all within the scope of the present invention.
[0352] FIG. shows example functional blocks of an electronic device 1600, which in some embodiments perform the above features. As As shown, the electronic device 1600 includes a display unit 1602 configured to display graphical objects; a touch-sensitive surface unit 1604 configured to receive user gestures; one or more RF units 1606 configured to detect external electronic devices and communicate with external electronic devices; and a processing unit 1608 coupled to the display unit 1602, the touch-sensitive surface unit 1604, and the RF unit 1606. In some embodiments, the processing unit 1608 is configured to support an operating system 1610 that runs one or more applications 1612. In some embodiments, the processing unit 1608 is configured to receive data representing an external device within the wireless communication range from the RF unit 1606 and display a graphical user interface prompt on the touch-sensitive surface unit 1604. In some embodiments, the continuity unit 1610 is configured to parse the received data and determine the corresponding application to be launched on the device 1600, as well as the state of the application. In some embodiments, the continuity unit 1610 is further configured to parse the received data and determine the state of the application such that the corresponding application can be launched in that state. The application unit 1612 may be configured to launch the corresponding application in the desired state.
[0353] The functional blocks of the device 1600 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various examples described. Those skilled in the art should understand that the functional blocks described may be optionally combined or separated into sub-blocks to implement the principles of the various examples described. Accordingly, the description herein optionally supports any possible combination or segmentation or further definition of the functional blocks described herein.
[0354] According to some embodiments, FIG. shows an example functional block diagram of an electronic device 2300 configured according to the principles of the various embodiments described. According to some embodiments, the functional blocks of the electronic device 2300 are configured to perform the above-described techniques. The functional blocks of the device 2300 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various examples described. Those skilled in the art should understand that Figure 23 the functional blocks described may be optionally combined or separated into sub-blocks to implement the principles of the various examples described. Accordingly, the description herein optionally supports any possible combination or segmentation or further definition of the functional blocks described herein.
[0355] As Figure 23As shown in FIG. 0, the electronic device 2300 includes a display unit 2320 coupled to a processing unit 2326 and an optional touch-sensitive surface unit 2322. The touch-sensitive surface unit 2322 is optionally combined with the display unit 2320 to form a touch screen display. In some embodiments, the processing unit 2326 includes an external device detection unit 2330, a data receiving unit 2332, a display enabling unit 2334, an input detection unit 2336, and an application launching unit 2338. Optionally, the processing unit 2326 further includes an application state calling unit 2340 and a swipe distance determination unit 2342.
[0356] The processing unit 2326 is configured to: detect an external device (e.g., using the external device detection unit 2330) via wireless communication, where the external device is executing or has executed a first application; receive (e.g., using the data receiving unit 2332) usage information indicating the usage of the first application on the external device from the external device; in response to detecting the external device and receiving the usage information, enable (e.g., using the display enabling unit 2334) a revelation to be displayed on the screen (e.g., the display unit 2320) of the electronic device 2300; detect (e.g., using the input detection unit 2336) a user selection of the displayed revelation; and launch (e.g., using the application launching unit 2338) a second application on the electronic device 2300 in response to detecting the user selection, where the second application corresponds to the first application.
[0357] In some embodiments, the processing unit 2326 is further configured to: stop (e.g., using the display enabling unit 2334) displaying the revelation after a predetermined amount of time.
[0358] In some embodiments, the first application was used on the external device within a predetermined amount of time before the current time.
[0359] In some embodiments, the first application and the second application have at least one common application feature.
[0360] In some embodiments, the usage information indicates the state of the first application, and launching the second application includes invoking (e.g., using the application state calling unit 2340) the state in the second application on the electronic device 2300.
[0361] In some embodiments, the state of the first application corresponds to the user interface screen of the first application.
[0362] In some embodiments, the state of the first application corresponds to a position in the navigation hierarchy in the first application.
[0363] In some embodiments, the state of the first application corresponds to a position in a document displayed in the first application.
[0364] In some embodiments, the state of the first application corresponds to whether a feature of the first application is active.
[0365] In some embodiments, the first application and the second application are versions of the same application.
[0366] In some embodiments, the processing unit 2326 is further configured to: receive, by the electronic device 2300 (e.g., using the data receiving unit 2332), application data of the first application; and enable (e.g., using the display enabling unit 2334) the display of the application data via the second application.
[0367] In some embodiments, the application data represents a part of a message displayed by the first application, and the processing unit 2326 is further configured to: enable (e.g., using the display enabling unit 2334) the display of the part of the message in the second application.
[0368] In some embodiments, the application data represents a part of a web page, and the processing unit 2326 is further configured to: enable (e.g., using the display enabling unit 2334) the display of the part of the web page via the second application.
[0369] In some embodiments, at least one application feature can only be accessed from one of the first application and the second application.
[0370] In some embodiments, the first application executes at least one application feature, and starting the second application includes: enabling (e.g., using the display enabling unit 2334) the display of a prompt for wirelessly invoking an application feature of the first application executed on an external device from the second application executed on the electronic device 2300.
[0371] In some embodiments, the electronic device 2300 includes a touch-sensitive display unit 2320, and a user selection of the displayed prompt is a swipe starting from the displayed prompt.
[0372] In some embodiments, the processing unit 2326 is further configured to: determine (e.g., using the swipe distance determination unit 2342) whether the distance of the swipe exceeds a threshold distance; and start (e.g., using the application start unit 2338) the second application only when it is determined that the distance of the swipe exceeds the threshold distance.
[0373] In some embodiments, the processing unit 2326 is further configured to: bounce up (e.g., using the display enabling unit 2334) the displayed prompt based on the determination that the distance of the swipe does not exceed the threshold distance.
[0374] In some embodiments, the display unit 2320 and the touch-sensitive surface 2322 form a touch screen display, and a user selection of a displayed cue is a tap on the displayed cue, and the processing unit 2326 is further configured to: in response to detecting the tap, launch (e.g., using the application launch unit 2338) a second application on the electronic device 2300, the second application corresponding to the first application.
[0375] In some embodiments, the display unit 2320 and the touch-sensitive surface 2322 form a touch screen display, and a user selection of a displayed cue is a tap on the displayed cue, and the processing unit 2326 is configured to, in response to detecting the tap, pop up (e.g., using the display enabling unit 2334) the displayed cue to indicate how to launch an application; and only launch (e.g., using the application launch unit 2338) the second application when a swipe of the displayed cue is detected.
[0376] In some embodiments, the processing unit 2326 is further configured to: in response to detecting the tap, enable (e.g., using the display enabling unit 2334) the display of indicative text that notifies the user to swipe the displayed cue.
[0377] In some embodiments, the electronic device 2300 is a laptop or a desktop computer.
[0378] In some embodiments, the electronic device 2300 is a tablet computer.
[0379] In some embodiments, the electronic device 2300 is a phone or a wearable electronic device.
[0380] In some embodiments, the external device is a laptop or a desktop computer.
[0381] In some embodiments, the external device is a tablet computer.
[0382] In some embodiments, the external device is a phone or a wearable electronic device.
[0383] The above reference Figure 9 The operations described above are optionally performed by Figures 1A-1B or Figure 23implemented by the components depicted therein. For example, detection operation 902, reception operation 904, and display operation 906 may be implemented by event sorter 170, event recognizer 180, and event processor 190. Event monitor 171 in event sorter 170 detects a contact on touch-sensitive display 112, and event dispatch module 174 delivers event information to application 136-1. The corresponding event recognizer 180 of application 136-1 compares the event information with corresponding event definition 186 and determines whether a first contact at a first position on the touch-sensitive surface corresponds to a predefined event or sub-event, such as activation on the user interface. When a corresponding predefined event or sub-event is detected, event recognizer 180 activates event processor 190 associated with the detection of the event or sub-event. Event processor 190 may utilize or invoke data updater 176 or object updater 177 to update application internal state 192. In some embodiments, event processor 190 accesses corresponding GUI updater 178 to update what is displayed by the application. Similarly, it will be clear to those of ordinary skill in the art how other processes may be implemented based on Figures 1A-1B the components depicted therein.
[0384] According to some embodiments, Figure 24 FIG. shows an example functional block diagram of an electronic device 2400 configured in accordance with the principles of the various described embodiments. According to some embodiments, the functional blocks of electronic device 2400 are configured to perform the above-described techniques. The functional blocks of device 2400 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various described examples. Those skilled in the art should understand that Figure 24 the functional blocks described therein are optionally combined or separated into sub-blocks to implement the principles of the various described examples. Thus, the description herein optionally supports any possible combination or segmentation or further definition of the functional blocks described herein.
[0385] As Figure 24 shown in FIG., electronic device 2400 includes a touch-sensitive display unit 2420 and a processing unit 2426 coupled to touch-sensitive display unit 2420. In some embodiments, processing unit 2426 includes an external device detection unit 2430, a display enabling unit 2432, an input detection unit 2434, and an application start unit 2436. Optionally, processing unit 2426 further includes a data reception unit 2438 and a swipe distance determination unit 2440.
[0386] As Figure 24As shown, electronic device 2400 includes a touch-sensitive display unit 2420 and a processing unit 2426 coupled to the touch-sensitive display unit 2420. In some embodiments, the processing unit 2426 includes an external device detection unit 2430, a display enabling unit 2432, an input detection unit 2434, and an application launch unit 2436. Optionally, the processing unit 2426 further includes a data receiving unit 2438 and a swipe distance determination unit 2440.
[0387] The processing unit 2426 is configured to: when the electronic device 2400 is in a user interface locked state, detect (e.g., using the external device detection unit 2430) an external device, where the external device is executing a first application that is in a state; enable (e.g., using the display enabling unit 2432) a display corresponding to the first application on the touch-sensitive display unit 2420 for a predetermined amount of time; detect (e.g., using the input detection unit 2434) a contact at the position of the display shown on the touch-sensitive display unit 2420; and in response to the contact, launch (e.g., using the application launch unit 2436) a second application that corresponds to the first application, where the state of the second application corresponds to the state of the first application.
[0388] In some embodiments, the contact is a tap on the displayed prompt, and the processing unit 2426 is further configured to: in response to detecting the tap, launch (e.g., using the application launch unit 2436) the second application.
[0389] In some embodiments, the contact is a tap on the displayed prompt, and the processing unit 2426 is further configured to: in response to detecting the tap: bounce up (e.g., using the display enabling unit 2432) the prompt; and not launch the second application.
[0390] In some embodiments, the contact is a swipe starting from the displayed prompt, and the processing unit 2426 is further configured to: in response to detecting the swipe, launch (e.g., using the application launch unit 2436) the second application.
[0391] In some embodiments, the processing unit 2426 is further configured to: determine (e.g., using the swipe distance determination unit 2440) whether the distance of the swipe exceeds a threshold distance; and only when it is determined that the distance of the swipe exceeds the threshold distance, launch (e.g., using the application launch unit 2436) the second application from the locked state.
[0392] In some embodiments, the processing unit 2426 is further configured to: in accordance with the determination that the distance of the swipe does not exceed the threshold distance, bounce up (e.g., using the display enabling unit 2432) the prompt.
[0393] In some embodiments, the first application and the second application have at least one common application feature.
[0394] In some embodiments, the state of the first application corresponds to a position in the navigation hierarchy within the first application.
[0395] In some embodiments, the state of the first application corresponds to a position within a document displayed in the first application.
[0396] In some embodiments, the state of the first application corresponds to whether a feature of the first application is active.
[0397] In some embodiments, the first application and the second application are versions of the same application.
[0398] In some embodiments, the processing unit 2426 is further configured to: receive, by the electronic device 2400 (e.g., using the data receiving unit 2438), application data of the first application; and enable, via the second application (e.g., using the display enabling unit 2432), the display of the application data.
[0399] In some embodiments, the application data represents a part of a message displayed by the first application, and the processing unit 2426 is further configured to: enable, in the second application (e.g., using the display enabling unit 2432), the display of the part of the message.
[0400] In some embodiments, the application data represents a part of a web page, and the processing unit 2426 is further configured to: enable, via the second application (e.g., using the display enabling unit 2432), the display of the part of the web page.
[0401] In some embodiments, at least one application feature can only be accessed from one of the first application and the second application.
[0402] In some embodiments, the first application executes at least one application feature, and launching the second application includes: enabling (e.g., using the display enabling unit 2342) the display of a prompt for wirelessly invoking, from the second application executing on the electronic device 2400, the application feature of the first application executing on an external device.
[0403] In some embodiments, the electronic device 2400 is a laptop or a desktop computer.
[0404] In some embodiments, the electronic device 2400 is a tablet computer.
[0405] In some embodiments, the electronic device 2400 is a phone or a wearable electronic device.
[0406] In some embodiments, the external device is a laptop or a desktop computer.
[0407] In some embodiments, the external device is a tablet computer.
[0408] In some embodiments, the external device is a phone or a wearable electronic device.
[0409] The above reference Figure 43 The operations described above are optionally performed by Figures 1A-1B or Figure 24 the components depicted in Figures 1A-1B . For example, the external device detection operation 4302, the display operation 4304, and the input detection operation 4306 can be implemented by the event sorter 170, the event recognizer 180, and the event processor 190. The event monitor 171 in the event sorter 170 detects contacts on the touch-sensitive display 112, and the event dispatching module 174 delivers event information to the application 136-1. The corresponding event recognizer 180 of the application 136-1 compares the event information with the corresponding event definition 186 and determines whether the first contact at the first position on the touch-sensitive surface corresponds to a predefined event or sub-event, such as the activation of the user interface. When the corresponding predefined event or sub-event is detected, the event recognizer 180 activates the event processor 190 associated with the detection of the event or sub-event. The event processor 190 can utilize or call the data updater 176 or the object updater 177 to update the application internal state 192. In some embodiments, the event processor 190 accesses the corresponding GUI updater 178 to update what is displayed by the application. Similarly, it will be clear to those of ordinary skill in the art how other processes can be implemented based on Figures 1A-1B the components depicted in
[0410] According to some embodiments, Figure 25 FIG. shows an example functional block diagram of an electronic device 2500 configured in accordance with the principles of the various described embodiments. According to some embodiments, the functional blocks of the electronic device 2500 are configured to perform the above-described techniques. The functional blocks of the device 2500 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various described examples. Those skilled in the art should understand that Figure 25 the functional blocks described in Figure 25 are optionally combined or separated into sub-blocks to implement the principles of the various described examples. Accordingly, the description herein optionally supports any possible combination or division or further definition of the functional blocks described herein.
[0411] As Figure 25As shown in FIG. 0, the electronic device 2500 includes a touch-sensitive display unit 2520, a button unit 2522, and a processing unit 2526 coupled to the touch-sensitive display 2520 and the button unit 2522. In some embodiments, the processing unit 2526 includes an external device detection unit 2530, a display enabling unit 2534, an input detection unit 2532, and an application launching unit 2536. Optionally, the processing unit 2526 further includes a data receiving unit 2538.
[0412] The processing unit 2526 is configured to: detect (e.g., using the external device detection unit 2530) an external device, where the external device is executing a first application, and the first application is in a state; detect (e.g., using the input detection unit 2532) two presses of a button; in response to detecting the two presses: enable (e.g., using the display enabling unit 2534) the display of a left cue, a center cue, and a right cue, where the left cue is for launching a second application corresponding to the first application on the electronic device 2500, and the center cue indicates the application most recently used on the electronic device 2500; detect (e.g., using the input detection unit 2532) contact with the left cue; and in response to the contact with the left cue, launch (e.g., using the application launching unit 2536) the second application on the electronic device 2500, where the state of the second application corresponds to the state of the first application.
[0413] In some embodiments, enabling the display of the left cue includes enabling (e.g., using the display enabling unit) the display of a thumbnail image indicating the state of the first application.
[0414] In some embodiments, the right cue indicates a third application being executed on the electronic device 2500.
[0415] In some embodiments, the first application and the second application have at least one common application feature.
[0416] In some embodiments, the state of the first application corresponds to a position in the navigation hierarchy in the first application.
[0417] In some embodiments, the state of the first application corresponds to a position in a document displayed in the first application.
[0418] In some embodiments, the state of the first application corresponds to whether a feature of the first application is active.
[0419] In some embodiments, the first application and the second application are versions of the same application.
[0420] In some embodiments, the processing unit 2526 is further configured to: receive, by the electronic device 2500 (e.g., using the data receiving unit 2538), application data of a first application; and enable, via a second application (e.g., using the display enabling unit 2534), the display of the application data.
[0421] In some embodiments, the application data represents a part of a message displayed by the first application, and the processing unit 2526 is further configured to: enable, in the second application (e.g., using the display enabling unit 2534), the display of the part of the message.
[0422] In some embodiments, the application data represents a part of a web page, and the processing unit 2526 is further configured to: enable, via the second application (e.g., using the display enabling unit 2534), the display of the part of the web page.
[0423] In some embodiments, at least one application feature is accessible only from one of the first application and the second application.
[0424] In some embodiments, the first application performs at least one application feature, and launching the second application includes: enabling, (e.g., using the display enabling unit 2534), the display of a prompt for wirelessly invoking, from the second application executing on the electronic device 2500, the application feature of the first application executing on an external device.
[0425] In some embodiments, the electronic device 2500 is a laptop or a desktop computer.
[0426] In some embodiments, the electronic device 2500 is a tablet computer.
[0427] In some embodiments, the electronic device 2500 is a phone or a wearable electronic device.
[0428] In some embodiments, the external device is a laptop or a desktop computer.
[0429] In some embodiments, the external device is a tablet computer.
[0430] In some embodiments, the external device is a phone or a wearable electronic device.
[0431] The operations described above are optionally performed by Figure 44 or Figures 1A-1B or Figure 25implemented by the components depicted therein. For example, the external device detection operation 4402, the button press detection operation 4404, and the display operation 4406 can be implemented by the event sorter 170, the event recognizer 180, and the event processor 190. The event monitor 171 in the event sorter 170 detects contacts on the touch-sensitive display 112, and the event dispatch module 174 delivers the event information to the application 136-1. The corresponding event recognizer 180 of the application 136-1 compares the event information with the corresponding event definition 186 and determines whether the first contact at the first position on the touch-sensitive surface corresponds to a predefined event or sub-event, such as activation on the user interface. When the corresponding predefined event or sub-event is detected, the event recognizer 180 activates the event processor 190 associated with the detection of the event or sub-event. The event processor 190 can utilize or call the data updater 176 or the object updater 177 to update the application internal state 192. In some embodiments, the event processor 190 accesses the corresponding GUI updater 178 to update what is displayed by the application. Similarly, for those of ordinary skill in the art, how other processes can be implemented based on Figures 1A-1B the components depicted therein will be clear.
[0432] According to some embodiments, Figure 26 FIG. shows an example functional block diagram of an electronic device 2600 configured in accordance with the principles of the various embodiments described. According to some embodiments, the functional blocks of the electronic device 2600 are configured to perform the techniques described above. The functional blocks of the device 2600 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various examples described. Those skilled in the art should understand that Figure 26 the functional blocks described therein are optionally combined or separated into sub-blocks to implement the principles of the various examples described. Thus, the description herein optionally supports any possible combination or partitioning or further definition of the functional blocks described herein.
[0433] As Figure 26 shown in FIG., the electronic device 2600 includes a touch-sensitive display unit 2620 and a processing unit 2626 coupled to the touch-sensitive display unit 2620. In some embodiments, the processing unit 2626 includes an external device detection unit 2630, a display enabling unit 2634, an input detection unit 2632, and an application launch unit 2636. Optionally, the processing unit 2626 further includes a data receiving unit 2638.
[0434] The processing unit 2626 is configured to: detect an external device (e.g., using an external device detection unit 2630), where the external device is executing a first application that is in a state; detect a downward swipe on the touch-sensitive display unit 2620 (e.g., using an input detection unit 2632), where the downward swipe starts from the top edge of the touch-sensitive display unit 2620; in response to the downward swipe: enable the display of an indication (e.g., using a display enabling unit 2634) for launching a second application on the electronic device 2600, where the second application corresponds to the first application; detect contact with the indication (e.g., using an input detection unit 2632); and in response to the contact with the indication, launch (e.g., using an application launch unit 2636) the second application on the electronic device 2600, where the state of the second application corresponds to the state of the first application.
[0435] In some embodiments, enabling the display of the indication includes enabling the display (e.g., using a display enabling unit 2634) of a thumbnail image identifying the first application.
[0436] In some embodiments, the first application has been used on the external device within a predetermined amount of time before the current time.
[0437] In some embodiments, the first application and the second application have at least one common application feature.
[0438] In some embodiments, the state of the first application corresponds to a position in a navigation hierarchy within the first application.
[0439] In some embodiments, the state of the first application corresponds to a position in a document displayed in the first application.
[0440] In some embodiments, the state of the first application corresponds to whether a feature of the first application is active.
[0441] In some embodiments, the first application and the second application are versions of the same application.
[0442] In some embodiments, the processing unit 2626 is further configured to: receive (e.g., using a data receiving unit 2638) application data of the first application by the electronic device 2600; and enable the display of the application data via the second application (e.g., using a display enabling unit 2634).
[0443] In some embodiments, the application data represents a part of a message displayed by the first application, and the processing unit 2626 is further configured to: enable the display of the part of the message in the second application (e.g., using a display enabling unit 2634).
[0444] In some embodiments, the application data represents a portion of a web page, and the processing unit 2626 is further configured to: enable the display of the portion of the web page via a second application (e.g., using the display enabling unit 2634).
[0445] In some embodiments, at least one application feature is accessible only from one of the first application and the second application.
[0446] In some embodiments, the first application executes at least one application feature, and launching the second application includes: enabling the display of a prompt for wirelessly invoking an application feature of the first application executed on an external device from the second application executed on the electronic device 2600.
[0447] In some embodiments, the electronic device 2600 is a laptop or a desktop computer.
[0448] In some embodiments, the electronic device 2600 is a tablet computer.
[0449] In some embodiments, the electronic device 2600 is a phone or a wearable electronic device.
[0450] In some embodiments, the external device is a laptop or a desktop computer.
[0451] In some embodiments, the external device is a tablet computer.
[0452] In some embodiments, the external device is a phone or a wearable electronic device.
[0453] The above reference Figure 45 The operations described above are optionally performed by Figures 1A-1B or Figure 26implemented by the components depicted therein. For example, the external device detection operation 4502, the swipe detection operation 4504, and the display operation 4506 may be implemented by the event sorter 170, the event recognizer 180, and the event processor 190. The event monitor 171 in the event sorter 170 detects a contact on the touch-sensitive display 112, and the event scheduling module 174 delivers the event information to the application 136-1. The corresponding event recognizer 180 of the application 136-1 compares the event information with the corresponding event definition 186 and determines whether the first contact at the first position on the touch-sensitive surface corresponds to a predefined event or sub-event, such as activation on the user interface. When the corresponding predefined event or sub-event is detected, the event recognizer 180 activates the event processor 190 associated with the detection of the event or sub-event. The event processor 190 may utilize or invoke the data updater 176 or the object updater 177 to update the application internal state 192. In some embodiments, the event processor 190 accesses the corresponding GUI updater 178 to update what is displayed by the application. Similarly, it will be clear to those of ordinary skill in the art how other processes may be implemented based on Figures 1A-1B the components depicted therein.
[0454] According to some embodiments, Figure 27 FIG. shows an exemplary functional block diagram of an electronic device 2700 configured in accordance with the principles of the various embodiments described. According to some embodiments, the functional blocks of the electronic device 2700 are configured to perform the above-described techniques. The functional blocks of the device 2700 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various examples described. Those skilled in the art should understand that Figure 27 the functional blocks described therein are optionally combined or separated into sub-blocks to implement the principles of the various examples described. Thus, the description herein optionally supports any possible combination or segmentation or further definition of the functional blocks described herein.
[0455] As Figure 27 shown in FIG., the electronic device 2700 includes a touch-sensitive display unit 2720, a biometric reader unit 2722, and a processing unit 2726 coupled to the touch-sensitive display unit 2720 and the biometric reader unit 2722. In some embodiments, the processing unit 2726 includes an external device detection unit 2730, a data receiving unit 2732, an unlocking unit 2734, a display enabling unit 2736, an input detection unit 2738, and an application launching unit 2740.
[0456] The processing unit 2726 is configured to: when the electronic device 2700 is in a user interface locked state, detect (e.g., using the external device detection unit 2730) an external device, where the external device is executing a first application, and the first application is in a state; receive (e.g., using the data receiving unit 2732) biometric input from the biometric reader unit 2722; in response to receiving the biometric input: unlock (e.g., using the unlocking unit 2734) the electronic device 2700; after unlocking, enable (e.g., using the display enabling unit 2736) the display of a revelation corresponding to the first application; detect (e.g., using the input detection unit 2738) a contact with the displayed revelation; and in response to detecting the contact, start (e.g., using the application starting unit 2740) a second application, where the second application corresponds to the first application, and the state of the second application corresponds to the state of the first application.
[0457] In some embodiments, the biometric reader unit 2722 is a fingerprint reader.
[0458] In some embodiments, the first application has been used on the external device within a predetermined amount of time before the current time.
[0459] In some embodiments, the first application and the second application have at least one common application feature.
[0460] In some embodiments, the state of the first application corresponds to a position in the navigation hierarchy in the first application.
[0461] In some embodiments, the state of the first application corresponds to a position in a document displayed in the first application.
[0462] In some embodiments, the state of the first application corresponds to whether a feature of the first application is active.
[0463] In some embodiments, the first application and the second application are versions of the same application.
[0464] In some embodiments, the processing unit 2726 is further configured to: receive (e.g., using the data receiving unit 2732) application data of the first application from the electronic device 2700; and enable (e.g., using the display enabling unit 2736) the display of the application data via the second application.
[0465] In some embodiments, the application data represents a part of a message displayed by the first application, and the processing unit 2726 is further configured to: enable (e.g., using the display enabling unit 2736) the display of that part of the message in the second application.
[0466] In some embodiments, the application data represents a portion of a web page, and the processing unit 2726 is further configured to: enable the display of the portion of the web page via a second application (e.g., using the display enabling unit 2736).
[0467] In some embodiments, at least one application feature is accessible only from one of the first application and the second application.
[0468] In some embodiments, the first application performs at least one application feature, and launching the second application includes: enabling (e.g., using the display enabling unit 2736) the display of a prompt for wirelessly invoking the application feature of the first application executed on an external device from the second application executed on the electronic device 2700.
[0469] In some embodiments, the electronic device 2700 is a laptop or a desktop computer.
[0470] In some embodiments, the electronic device 2700 is a tablet computer.
[0471] In some embodiments, the electronic device 2700 is a phone or a wearable electronic device.
[0472] In some embodiments, the external device is a laptop or a desktop computer.
[0473] In some embodiments, the external device is a tablet computer.
[0474] In some embodiments, the external device is a phone or a wearable electronic device.
[0475] The above reference Figure 46 The operations described above are optionally performed by Figures 1A-1B or Figure 27implemented by the components depicted therein. For example, the external device detection operation 4602, the biometric input reception operation 4604, and the unlocking operation 4606 may be implemented by the event sorter 170, the event recognizer 180, and the event processor 190. The event monitor 171 in the event sorter 170 detects a contact on the touch-sensitive display 112, and the event dispatch module 174 delivers the event information to the application 136-1. The corresponding event recognizer 180 of the application 136-1 compares the event information with the corresponding event definition 186 and determines whether the first contact at the first position on the touch-sensitive surface corresponds to a predefined event or sub-event, such as activation on the user interface. When the corresponding predefined event or sub-event is detected, the event recognizer 180 activates the event processor 190 associated with the detection of the event or sub-event. The event processor 190 may utilize or call the data updater 176 or the object updater 177 to update the application internal state 192. In some embodiments, the event processor 190 accesses the corresponding GUI updater 178 to update what is displayed by the application. Similarly, it will be clear to those of ordinary skill in the art how other processes may be implemented based on Figures 1A-1B the components depicted therein.
[0476] According to some embodiments, Figure 28 FIG. shows an example functional block diagram of an electronic device 2800 configured in accordance with the principles of the various embodiments described. According to some embodiments, the functional blocks of the electronic device 2800 are configured to perform the above-described techniques. The functional blocks of the device 2800 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various examples described. Those skilled in the art will appreciate that Figure 28 the functional blocks described therein are optionally combined or separated into sub-blocks to implement the principles of the various examples described. Accordingly, the description herein optionally supports any possible combination or segmentation or further definition of the functional blocks described herein.
[0477] As Figure 28 shown in FIG., the electronic device 2800 includes a touch-sensitive display unit 2820 and a processing unit 2826 coupled to the touch-sensitive display unit 2820. In some embodiments, the processing unit 2826 includes an external device detection unit 2830, a display enabling unit 2834, an input detection unit 2832, and an application launch unit 2836. Optionally, the processing unit 2826 further includes a data reception unit 2838.
[0478] The processing unit 2826 is configured to: detect an external device (e.g., using an external device detection unit 2830), where the external device is executing a first application, and the first application is in a state; enable the display of a plurality of application icons on the touch-sensitive display unit 2820 (e.g., using a display enabling unit 2834); detect a right swipe on the touch-sensitive display unit (e.g., using an input detection unit 2832), the right swipe starting from the left edge of the touch-sensitive display unit 2820; in response to the right swipe: enable the display of a cue for launching a second application on the electronic device 2800, where the second application corresponds to the first application; detect contact with the cue; and in response to contact with the cue, launch the second application on the electronic device 2800 (e.g., using an application launch unit 2836), where the state of the second application corresponds to the state of the first application.
[0479] In some embodiments, the first application has been used on the external device within a predetermined amount of time before the current time.
[0480] In some embodiments, the first application and the second application have at least one common application feature.
[0481] In some embodiments, the state of the first application corresponds to a position in the navigation hierarchy within the first application.
[0482] In some embodiments, the state of the first application corresponds to a position in a document displayed in the first application.
[0483] In some embodiments, the state of the first application corresponds to whether a feature of the first application is active.
[0484] In some embodiments, the first application and the second application are versions of the same application.
[0485] In some embodiments, the processing unit 2836 is further configured to: receive, by the electronic device 2800, application data of the first application (e.g., using a data receiving unit 2838); and enable the display of the application data via the second application (e.g., using a display enabling unit 2834).
[0486] In some embodiments, the application data represents a part of a message displayed by the first application, and the processing unit 2826 is further configured to: enable the display of the part of the message in the second application (e.g., using a display enabling unit 2834).
[0487] In some embodiments, the application data represents a portion of a web page, and the processing unit 2826 is further configured to: enable the display of the portion of the web page via a second application (e.g., using the display enabling unit 2834).
[0488] In some embodiments, at least one application feature can only be accessed from one of the first application and the second application.
[0489] In some embodiments, the first application executes at least one application feature, and launching the second application includes: enabling (e.g., using the display enabling unit 2834) the display of a prompt for wirelessly invoking an application feature of the first application executed on an external device from the second application executed on the electronic device 2800.
[0490] In some embodiments, the electronic device 2800 is a laptop or desktop computer.
[0491] In some embodiments, the electronic device 2800 is a tablet computer.
[0492] In some embodiments, the electronic device 2800 is a phone or a wearable electronic device.
[0493] In some embodiments, the external device is a laptop or desktop computer.
[0494] In some embodiments, the external device is a tablet computer.
[0495] In some embodiments, the external device is a phone or a wearable electronic device.
[0496] The above reference Figure 47 The operations described are optionally performed by Figures 1A-1B or Figure 28implemented by the components depicted therein. For example, the external device detection operation 4702, the display operation 4704, and the swipe detection operation 4706 may be implemented by the event sorter 170, the event recognizer 180, and the event processor 190. The event monitor 171 in the event sorter 170 detects contacts on the touch-sensitive display 112, and the event dispatch module 174 delivers event information to the application 136-1. The corresponding event recognizer 180 of the application 136-1 compares the event information with the corresponding event definition 186 and determines whether the first contact at the first position on the touch-sensitive surface corresponds to a predefined event or sub-event, such as activation on the user interface. When the corresponding predefined event or sub-event is detected, the event recognizer 180 activates the event processor 190 associated with the detection of the event or sub-event. The event processor 190 may utilize or call the data updater 176 or the object updater 177 to update the application internal state 192. In some embodiments, the event processor 190 accesses the corresponding GUI updater 178 to update what is displayed by the application. Similarly, it will be clear to those of ordinary skill in the art how other processes may be implemented based on Figures 1A-1B the components depicted therein.
[0497] According to some embodiments, Figure 29 FIG. shows an example functional block diagram of an electronic device 2900 configured in accordance with the principles of the various embodiments described. According to some embodiments, the functional blocks of the electronic device 2900 are configured to perform the above-described techniques. The functional blocks of the device 2900 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various examples described. Those skilled in the art should understand that Figure 29 the functional blocks described therein are optionally combined or separated into sub-blocks to implement the principles of the various examples described. Accordingly, the description herein optionally supports any possible combination or segmentation or further definition of the functional blocks described herein.
[0498] As Figure 29 shown, the electronic device 2900 includes an optional display unit 2920, an input device unit 2922 for providing user input, and a processing unit 2926 coupled to the input device unit 2920 and optionally coupled to the display unit 2920. In some embodiments, the processing unit 2926 includes an external device detection unit 2930, a display enabling unit 2934, an input detection unit 2932, an application launch unit 2936, and a data receiving unit 2938.
[0499] The processing unit 2926 is configured to: when the electronic device 2900 is in a user interface locked state, detect (e.g., using the external device detection unit 2930) an external device, where the external device is executing a first application, and the first application is in a state; enable (e.g., using the display enabling unit 2934) the display of a password input field and a prompt corresponding to the first application (e.g., using the display unit 2920); receive (e.g., using the input detection unit 2932 and / or the input device unit 2922) a password; detect (e.g., using the input detection unit 2932) a mouse event on the displayed prompt; and in response to the received password and the detected mouse event, start (e.g., using the application start unit 2936) a second application, where the second application corresponds to the first application, and the state of the second application corresponds to the state of the first application.
[0500] In some embodiments, the first application has been used on the external device within a predetermined amount of time before the current time.
[0501] In some embodiments, the first application and the second application have at least one common application feature.
[0502] In some embodiments, the state of the first application corresponds to a position in the navigation hierarchy within the first application.
[0503] In some embodiments, the state of the first application corresponds to a position in a document displayed in the first application.
[0504] In some embodiments, the state of the first application corresponds to whether a feature of the first application is active.
[0505] In some embodiments, the first application and the second application are versions of the same application.
[0506] In some embodiments, the processing unit 2926 is further configured to: receive (e.g., using the data receiving unit 2938) application data of the first application; and enable (e.g., using the display enabling unit 2934) the display of the application data via the second application (e.g., using the display unit 2920).
[0507] In some embodiments, the application data represents a part of a message displayed by the first application, and the processing unit 2926 is further configured to: enable (e.g., using the display enabling unit 2934) the display of that part of the message in the second application.
[0508] In some embodiments, the application data represents a part of a web page, and the processing unit 2926 is further configured to: enable (e.g., using the display enabling unit 2934) the display of that part of the web page via the second application.
[0509] In some embodiments, at least one application feature can only be accessed from one of the first application and the second application.
[0510] In some embodiments, the first application executes at least one application feature, and starting the second application includes: enabling (e.g., using the display enabling unit 2934) the display of an inspiration for wirelessly invoking an application feature of the first application executed on an external device from the second application executed on the electronic device 2900.
[0511] In some embodiments, the electronic device 2800 is a laptop or a desktop computer.
[0512] In some embodiments, the electronic device 2800 is a tablet computer.
[0513] In some embodiments, the electronic device 2800 is a phone or a wearable electronic device.
[0514] In some embodiments, the external device is a laptop or a desktop computer.
[0515] In some embodiments, the external device is a tablet computer.
[0516] In some embodiments, the external device is a phone or a wearable electronic device.
[0517] The above reference Figure 48 The operations described above are optionally performed by Figures 1A-1B or Figure 29 The components depicted in. For example, the external device detection operation 4802, the display operation 4804, and the password receiving operation 4806 can be implemented by the event sorter 170, the event recognizer 180, and the event handler 190. The event monitor 171 in the event sorter 170 detects a contact on the touch-sensitive display 112, and the event scheduling module 174 delivers the event information to the application 136-1. The corresponding event recognizer 180 of the application 136-1 compares the event information with the corresponding event definition 186 and determines whether the first contact at the first position on the touch-sensitive surface corresponds to a predefined event or sub-event, such as the activation of an inspiration on the user interface. When the corresponding predefined event or sub-event is detected, the event recognizer 180 activates the event processor 190 associated with the detection of the event or sub-event. The event processor 190 can utilize or invoke the data updater 176 or the object updater 177 to update the application internal state 192. In some embodiments, the event processor 190 accesses the corresponding GUI updater 178 to update what is displayed by the application. Similarly, it will be clear to those of ordinary skill in the art how other processes can be implemented based on Figures 1A-1B The components depicted in.
[0518] According to some embodiments, Figure 30 FIG. 3000 shows an exemplary functional block diagram of an electronic device 3000 configured in accordance with the principles of the various embodiments described herein. According to some embodiments, the functional blocks of the electronic device 3000 are configured to perform the techniques described above. The functional blocks of the device 3000 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various examples described herein. Those skilled in the art will appreciate that Figure 30 the functional blocks described in FIG. 3000 are optionally combined or separated into sub-blocks to implement the principles of the various examples described herein. Accordingly, the description herein optionally supports any possible combination or partitioning or further definition of the functional blocks described herein.
[0519] As Figure 30 shown in FIG. 3000, the electronic device 3000 includes an optional display unit 3020, a keyboard unit 3022, and a processing unit 3026 coupled to the keyboard unit 3020 and optionally coupled to the display unit 3020. In some embodiments, the processing unit 3026 includes an external device detection unit 3030, a display enabling unit 3034, an input detection unit 3032, and an application launch unit 3036. Optionally, the processing unit 3026 further includes a data receiving unit 3038.
[0520] The processing unit 3026 is configured to: detect (e.g., using the external device detection unit 3030) an external device, where the external device is executing a first application that is in a state; detect (e.g., using the input detection unit 3032) a key press of a first key of the keyboard unit 3022 simultaneous with a key press of a second key of the keyboard unit; in response to the simultaneous key presses: enable (e.g., using the display enabling unit 3034) a display of multiple cues (e.g., using the display unit 3020), including: cues identifying multiple active applications on the electronic device 3000, and cues for launching a second application corresponding to the first application; detect (e.g., using the input detection unit 3032) a sequence of keyboard inputs, including (i) at least one additional key press of the second key (ii) holding the first key simultaneously (iii) then releasing both the first key and the second key; in response to the keyboard input sequence, launch (e.g., using the application launch unit 3036) the second application, where the state of the second application corresponds to the state of the first application.
[0521] In some embodiments, enabling the display of multiple cues includes visually highlighting (e.g., using the display enabling unit 3034) one of the cues, and the processing unit 3026 is further configured to: while detecting the keyboard input sequence, in response to a key press of the second key while the first key is held, highlight (e.g., using the display enabling unit 3034) a different one of the multiple cues.
[0522] In some embodiments, the processing unit 3026 is further configured to start (e.g., using the application start unit 3036) the second application in response to a sequence of keyboard inputs only when the cue for starting the second application is highlighted when the first key and the second key are released.
[0523] In some embodiments, the first key is a control key and the second key is a tab key.
[0524] In some embodiments, the first application has been used on an external device within a predetermined amount of time before the current time.
[0525] In some embodiments, the first application and the second application have at least one common application feature.
[0526] In some embodiments, the state of the first application corresponds to a position in the navigation hierarchy within the first application.
[0527] In some embodiments, the state of the first application corresponds to a position in a document displayed within the first application.
[0528] In some embodiments, the state of the first application corresponds to whether a feature of the first application is active.
[0529] In some embodiments, the first application and the second application are versions of the same application.
[0530] In some embodiments, the processing unit 3026 is further configured to receive (e.g., using the data receiving unit 3038) application data of the first application by the electronic device 3000; and enable (e.g., using the display enabling unit 3034) the display of the application data via the second application.
[0531] In some embodiments, the application data represents a part of a message displayed by the first application, and the processing unit 3026 is further configured to enable (e.g., using the display enabling unit 3034) the display of that part of the message in the second application.
[0532] In some embodiments, the application data represents a part of a web page, and the processing unit 3026 is further configured to enable (e.g., using the display enabling unit 3034) the display of that part of the web page via the second application.
[0533] In some embodiments, at least one application feature can only be accessed from one of the first application and the second application.
[0534] In some embodiments, the first application performs at least one application feature, and launching the second application includes: enabling (e.g., using the display enabling unit 3034) the display of a revelation for wirelessly invoking an application feature of the first application executed on an external device from the second application executed on the electronic device 3000.
[0535] In some embodiments, the electronic device 3000 is a laptop or desktop computer.
[0536] In some embodiments, the electronic device 3000 is a tablet computer.
[0537] In some embodiments, the electronic device 3000 is a phone or a wearable electronic device.
[0538] In some embodiments, the external device is a laptop or desktop computer.
[0539] In some embodiments, the external device is a tablet computer.
[0540] In some embodiments, the external device is a phone or a wearable electronic device.
[0541] The above reference Figure 49 The operations described above are optionally implemented by Figures 1A-1B or Figure 30 the components depicted in. For example, the external device detection operation 4902, the key press detection operation 4904, and the display operation 4906 may be implemented by the event sorter 170, the event recognizer 180, and the event handler 190. The event monitor 171 in the event sorter 170 detects a contact on the touch-sensitive display 112, and the event dispatching module 174 delivers the event information to the application 136-1. The corresponding event recognizer 180 of the application 136-1 compares the event information with the corresponding event definition 186 and determines whether the first contact at the first position on the touch-sensitive surface corresponds to a predefined event or sub-event, such as the activation of a revelation on the user interface. When the corresponding predefined event or sub-event is detected, the event recognizer 180 activates the event processor 190 associated with the detection of the event or sub-event. The event processor 190 may utilize or invoke the data updater 176 or the object updater 177 to update the application internal state 192. In some embodiments, the event processor 190 accesses the corresponding GUI updater 178 to update what is displayed by the application. Similarly, it will be clear to those of ordinary skill in the art how other processes may be implemented based on Figures 1A-1B the components depicted in.
[0542] According to some embodiments, Figure 31FIG. 0 shows an example functional block diagram of an electronic device 3100 configured in accordance with the principles of the various embodiments described herein. In accordance with some embodiments, the functional blocks of the electronic device 3100 are configured to perform the techniques described above. The functional blocks of the device 3100 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various examples described herein. Those skilled in the art will appreciate that Figure 31 the functional blocks described in
[0543] are optionally combined or separated into sub-blocks to implement the principles of the various examples described herein. Accordingly, the description herein optionally supports any possible combination or segmentation or further definition of the functional blocks described herein. Figure 31 As shown in
[0544] FIG. 7, the electronic device 3100 includes an optional display unit 3120, an input device unit 3122 for providing user interface input, and a processing unit 3126 coupled to the input device unit 3122 and optionally coupled to the display unit 3120. In some embodiments, the processing unit 3126 includes an external device detection unit 3130, a display enabling unit 3134, an input detection unit 3132, and an application launch unit 3136. Optionally, the processing unit 3126 further includes a data receiving unit 3138.
[0545] In some embodiments, the first application is used on the external device within a predetermined amount of time prior to the current time.
[0546] In some embodiments, the first application and the second application have at least one common application feature.
[0547] In some embodiments, the state of the first application corresponds to a position in a navigation hierarchy within the first application.
[0548] In some embodiments, the state of the first application corresponds to the position in the document displayed in the first application.
[0549] In some embodiments, the state of the first application corresponds to whether a feature of the first application is active.
[0550] In some embodiments, the first application and the second application are versions of the same application.
[0551] In some embodiments, the processing unit 3126 is further configured to: receive, by the electronic device 3100 (e.g., using the data receiving unit 3138), the application data of the first application; and enable the display of the application data via the second application (e.g., using the display enabling unit 3134).
[0552] In some embodiments, the application data represents a part of the message displayed by the first application, and the processing unit 3126 is further configured to: enable the display of this part of the message in the second application (e.g., using the display enabling unit 3134).
[0553] In some embodiments, the application data represents a part of a web page, and the processing unit 3126 is further configured to: enable the display of this part of the web page via the second application (e.g., using the display enabling unit 3134).
[0554] In some embodiments, at least one application feature can only be accessed from one of the first application and the second application.
[0555] In some embodiments, the first application executes at least one application feature, and starting the second application includes: enabling (e.g., using the display enabling unit 3134) the display of a prompt for wirelessly invoking the application feature of the first application executed on an external device from the second application executed on the electronic device 3100.
[0556] In some embodiments, the electronic device 3100 is a laptop or a desktop computer.
[0557] In some embodiments, the electronic device 3100 is a tablet computer.
[0558] In some embodiments, the electronic device 3100 is a phone or a wearable electronic device.
[0559] In some embodiments, the external device is a laptop or a desktop computer.
[0560] In some embodiments, the external device is a tablet computer.
[0561] In some embodiments, the external device is a phone or a wearable electronic device.
[0562] Above referenceFigure 50 The described operations are optionally implemented by Figures 1A-1B or Figure 31 the components depicted in. For example, the external device detection operation 5002, the movement detection operation 5004, and the display operation 5006 can be implemented by the event sorter 170, the event recognizer 180, and the event handler 190. The event monitor 171 in the event sorter 170 detects contacts on the touch-sensitive display 112, and the event dispatch module 174 delivers event information to the application 136-1. The corresponding event recognizer 180 of the application 136-1 compares the event information with the corresponding event definition 186 and determines whether the first contact at the first position on the touch-sensitive surface corresponds to a predefined event or sub-event, such as activation on the user interface. When the corresponding predefined event or sub-event is detected, the event recognizer 180 activates the event processor 190 associated with the detection of the event or sub-event. The event processor 190 can utilize or invoke the data updater 176 or the object updater 177 to update the application internal state 192. In some embodiments, the event processor 190 accesses the corresponding GUI updater 178 to update what is displayed by the application. Similarly, it will be clear to those of ordinary skill in the art how other processes can be implemented based on Figures 1A-1B the components depicted in.
[0563] According to some embodiments, Figure 32 FIG. shows an example functional block diagram of an electronic device 3200 configured in accordance with the principles of the various described embodiments. According to some embodiments, the functional blocks of the electronic device 3200 are configured to perform the above-described techniques. The functional blocks of the device 3200 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various described examples. Those skilled in the art should understand that Figure 32 the functional blocks described in can be optionally combined or separated into sub-blocks to implement the principles of the various described examples. Thus, the description herein optionally supports any possible combination or segmentation or further definition of the functional blocks described herein.
[0564] As Figure 32 shown in, the electronic device 3200 includes a display screen unit 3220, an input device unit 3222 for controlling the user interface cursor, and a processing unit 3226 coupled to the display screen unit 3220 and the input device unit 3222. In some embodiments, the processing unit 3226 includes an external device detection unit 3230, a display enabling unit 3234, an input detection unit 3232, and an application start unit 3236. Optionally, the processing unit 3226 further includes a data receiving unit 3238.
[0565] The processing unit 3226 is configured to: detect an external device (e.g., using an external device detection unit 3230), where the external device is executing a first application that is in a state; enable (e.g., using a display enabling unit 3234) the display of a plurality of application icons for launching a plurality of applications on the electronic device 3200 in a part of the display screen unit 3220; enable (e.g., using a display enabling unit 3234) the display of an icon for launching a second application corresponding to the first application in this part of the display screen unit 3220; detect (e.g., using an input detection unit 3232) the movement of a cursor to the displayed icon and a mouse event on the displayed icon; and in response: launch (e.g., using an application launch unit 3236) the second application, where the state of the second application corresponds to the state of the first application.
[0566] In some embodiments, the plurality of application icons and the icon for launching the second application are horizontally arranged across the said part of the display screen unit 3220.
[0567] In some embodiments, the cue for launching the second application corresponding to the first application is the leftmost cue of the dock.
[0568] In some embodiments, the first application was used on the external device within a predetermined amount of time before the current time.
[0569] In some embodiments, the first application and the second application have at least one common application feature.
[0570] In some embodiments, the state of the first application corresponds to a position in the navigation hierarchy within the first application.
[0571] In some embodiments, the state of the first application corresponds to a position in the document displayed in the first application.
[0572] In some embodiments, the state of the first application corresponds to whether a feature of the first application is active.
[0573] In some embodiments, the first application and the second application are versions of the same application.
[0574] In some embodiments, the processing unit 3226 is further configured to: receive (e.g., using a data receiving unit 3228) application data of the first application by the electronic device 3200; and enable (e.g., using a display enabling unit 3234) the display of the application data via the second application.
[0575] In some embodiments, the application data represents a portion of a message displayed by a first application, and the processing unit 3226 is further configured to: enable (e.g., using the display enabling unit 3234) the display of the portion of the message in a second application.
[0576] In some embodiments, the application data represents a portion of a web page, and the processing unit 3226 is further configured to: enable (e.g., using the display enabling unit 3234) the display of the portion of the web page via a second application.
[0577] In some embodiments, at least one application feature can only be accessed from one of the first application and the second application.
[0578] In some embodiments, the first application performs at least one application feature, and launching the second application includes: enabling (e.g., using the display enabling unit 3234) the display of a revelation for wirelessly invoking the application feature of the first application executed on an external device from the second application executed on the electronic device 3200.
[0579] In some embodiments, the electronic device 3200 is a laptop or desktop computer.
[0580] In some embodiments, the electronic device 3200 is a tablet computer.
[0581] In some embodiments, the electronic device 3200 is a phone or a wearable electronic device.
[0582] In some embodiments, the external device is a laptop or desktop computer.
[0583] In some embodiments, the external device is a tablet computer.
[0584] In some embodiments, the external device is a phone or a wearable electronic device.
[0585] The above reference Figure 51 The operations described are optionally performed by Figures 1A-1B or Figure 32implemented by the components depicted therein. For example, the external device detection operation 5102 and the display operation 5104 can be implemented by the event sorter 170, the event recognizer 180, and the event processor 190. The event monitor 171 in the event sorter 170 detects a contact on the touch-sensitive display 112, and the event dispatching module 174 delivers the event information to the application 136-1. The corresponding event recognizer 180 of the application 136-1 compares the event information with the corresponding event definition 186 and determines whether the first contact at the first position on the touch-sensitive surface corresponds to a predefined event or sub-event, such as activation on the user interface. When the corresponding predefined event or sub-event is detected, the event recognizer 180 activates the event processor 190 associated with the detection of the event or sub-event. The event processor 190 can utilize or invoke the data updater 176 or the object updater 177 to update the application internal state 192. In some embodiments, the event processor 190 accesses the corresponding GUI updater 178 to update what is displayed by the application. Similarly, it will be clear to those of ordinary skill in the art how other processes can be implemented based on Figures 1A-1B the components depicted therein.
[0586] According to some embodiments, Figure 33 FIG. shows an exemplary functional block diagram of an electronic device 3300 configured in accordance with the principles of the various embodiments described. According to some embodiments, the functional blocks of the electronic device 3300 are configured to perform the above-described techniques. The functional blocks of the device 3300 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various examples described. Those skilled in the art should understand that Figure 33 the functional blocks described therein are optionally combined or separated into sub-blocks to implement the principles of the various examples described. Thus, the description herein optionally supports any possible combination or segmentation or further definition of the functional blocks described herein.
[0587] As Figure 33 shown in FIG., the electronic device 3300 includes an optional display unit 3320, an input device unit 3322 for controlling a user interface cursor, and a processing unit 3326 coupled to the input device unit 3322 and optionally coupled to the display unit 3320. In some embodiments, the processing unit 3326 includes an external device detection unit 3330, a display enabling unit 3334, an input detection unit 3332, and an application start unit 3336. Optionally, the processing unit 3326 further includes a data receiving unit 3338.
[0588] The processing unit 3326 is configured to: detect (e.g., using the external device detection unit 3330) an external device that is executing a first application, where the first application is in a state; enable (e.g., using the display enabling unit 3334) the display (e.g., using the display unit 3320) of a menu bar that includes an icon for launching a second application corresponding to the first application; detect (e.g., using the input detection unit 3332) the movement of a cursor (e.g., using the input device unit 3322) to the displayed icon and a mouse event on the displayed icon; and in response: launch (e.g., using the application launch unit 3336) the second application, where the state of the second application corresponds to the state of the first application.
[0589] In some embodiments, the first application has been used on the external device within a predetermined amount of time before the current time.
[0590] In some embodiments, the first application and the second application have at least one common application feature.
[0591] In some embodiments, the state of the first application corresponds to a position in the navigation hierarchy within the first application.
[0592] In some embodiments, the state of the first application corresponds to a position in a document displayed in the first application.
[0593] In some embodiments, the state of the first application corresponds to whether a feature of the first application is active.
[0594] In some embodiments, the first application and the second application are versions of the same application.
[0595] In some embodiments, the processing unit 3326 is further configured to: receive (e.g., using the data receiving unit 3338) application data of the first application from the electronic device 3300; and enable (e.g., using the display enabling unit 3334) the display of the application data via the second application.
[0596] In some embodiments, the application data represents a part of a message displayed by the first application, and the processing unit 3326 is further configured to: enable (e.g., using the display enablin...
Claims
1. A method for displaying an inspiration corresponding to a most recently opened application, comprising: At an electronic device having a display: Detect an external device, wherein the external device is executing an external application, and the external application is in a first state; Receive a first user input; In response to receiving the first user input: Display a first inspiration and a second inspiration on the display, wherein the first inspiration corresponds to a first most recently opened application, and wherein the second inspiration corresponds to a second most recently opened application, and the second most recently opened application is different from the first most recently opened application; And display a third inspiration corresponding to a respective local application and the external application on the display, wherein: Based on determining that the first external application has been executed on the external device more recently than the second external application has been executed on the external device, the third inspiration corresponds to the first local application; and Based on determining that the second external application has been executed on the external device more recently than the first external application has been executed on the external device, the third inspiration corresponds to the second local application; Receive a second user input; and In response to receiving the second user input: Based on determining that the second user input corresponds to the first inspiration, launch the first most recently opened application; Based on determining that the second user input corresponds to the second inspiration, launch the second most recently opened application; Based on determining that the second user input corresponds to the third inspiration and the third inspiration corresponds to the first local application, launch the first local application in a second state corresponding to the first state; and Based on determining that the second user input corresponds to the third inspiration and the third inspiration corresponds to the second local application, launch the second local application in a third state corresponding to the first state.
2. The method according to claim 1, wherein, Displaying the third inspiration includes displaying a thumbnail image indicative of the external application.
3. The method according to claim 1, wherein The respective local application and the external application have at least one common application feature.
4. The method according to claim 1, wherein The first state of the external application corresponds to a position in the navigation hierarchy of the external application.
5. The method according to claim 1, wherein The first state of the external application corresponds to a position in a document displayed in the external application.
6. The method according to claim 1, wherein, The first state of the external application corresponds to whether a feature of the external application is active.
7. The method according to claim 1, wherein The respective local application and the external application are versions of the same application.
8. The method according to claim 1, further comprising: Receiving, by the electronic device, application data of the external application; And Displaying the application data via the respective local application.
9. The method according to claim 8, wherein The application data represents a part of a message displayed by the external application, and wherein the method further comprises: Displaying the part of the message in the respective local application.
10. The method according to claim 8, wherein, The application data represents a part of a web page, and wherein the method further comprises: Displaying the part of the web page via the respective local application.
11. The method according to claim 1, wherein At least one application feature can only be accessed from one of the external application and the respective local application.
12. The method according to claim 1, wherein, The external application executes at least one application feature, and wherein launching the respective local application includes: Displaying an inspiration for wirelessly invoking the application feature of the external application executed on the external device from the respective local application executed on the electronic device.
13. The method according to claim 1, wherein, The electronic device is a laptop or desktop computer.
14. The method according to claim 1, wherein, The electronic device is a tablet computer.
15. The method according to claim 1, wherein, The electronic device is a phone.
16. The method according to claim 1, wherein, The external device is a laptop or desktop computer.
17. The method according to claim 1, wherein, The external device is a tablet computer.
18. The method according to claim 1, wherein, The external device is a phone.
19. A computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display, cause the electronic device to: Detect an external device, where the external device is executing an external application and the external application is in a first state; Receive a first user input; In response to receiving the first user input: Display a first prompt and a second prompt on the display, where the first prompt corresponds to a first most recently opened application, and where the second prompt corresponds to a second most recently opened application, the second most recently opened application being different from the first most recently opened application; And Display a third prompt on the display corresponding to a respective local application and the external application, where: Based on determining that a first external application has been executed on the external device more recently than a second external application has been executed on the external device, the third prompt corresponds to a first local application; and Based on determining that the second external application has been executed on the external device more recently than the first external application has been executed on the external device, the third prompt corresponds to a second local application; Receive a second user input; and In response to receiving the second user input: Based on determining that the second user input corresponds to the first prompt, launch the first most recently opened application; Based on determining that the second user input corresponds to the second prompt, launch the second most recently opened application; Based on determining that the second user input corresponds to the third prompt and the third prompt corresponds to the first local application, launch the first local application in a second state corresponding to the first state; and Based on determining that the second user input corresponds to the third prompt and the third prompt corresponds to the second local application, launch the second local application in a third state corresponding to the first state.
20. The computer-readable storage medium according to claim 19, wherein, Displaying the third prompt includes displaying a thumbnail image indicating the external application.
21. The computer-readable storage medium according to claim 19, wherein, The respective local application and the external application have at least one common application feature.
22. The computer-readable storage medium according to claim 19, wherein, The first state of the external application corresponds to a position in the navigation hierarchy of the external application.
23. The computer-readable storage medium according to claim 19, wherein, The first state of the external application corresponds to a position in a document displayed in the external application.
24. The computer-readable storage medium according to claim 19, wherein, The first state of the external application corresponds to whether a feature of the external application is active.
25. The computer-readable storage medium according to claim 19, wherein, The respective local application and the external application are versions of the same application.
26. The computer-readable storage medium according to claim 19, wherein, The one or more programs further include instructions that cause the electronic device to: Receive application data of the external application by the electronic device; and Display the application data via the respective local application.
27. The computer-readable storage medium according to claim 26, wherein, The application data represents a part of a message displayed by the external application, and where the one or more programs further include instructions that cause the electronic device to: Display the part of the message in the respective local application.
28. The computer-readable storage medium according to claim 26, wherein, The application data represents a part of a web page, and where the one or more programs further include instructions that cause the electronic device to: Display the part of the web page via the respective local application.
29. The computer-readable storage medium according to claim 19, wherein, At least one application feature can only be accessed from one of the external application and the respective local application.
30. The computer-readable storage medium according to claim 19, wherein, The external application executes at least one application feature, and where launching the respective local application includes: Displaying a prompt for wirelessly invoking the application feature of the external application executed on the external device from the respective local application executed on the electronic device.
31. The computer-readable storage medium according to claim 19, wherein, The electronic device is a laptop or desktop computer.
32. The computer-readable storage medium according to claim 19, wherein, The electronic device is a tablet computer.
33. The computer-readable storage medium according to claim 19, wherein, The electronic device is a phone.
34. The computer-readable storage medium according to claim 19, wherein, The external device is a laptop or desktop computer.
35. The computer-readable storage medium according to claim 19, wherein, The external device is a tablet computer.
36. The computer-readable storage medium according to claim 19, wherein, The external device is a phone.
37. An electronic device, comprising: A display; One or more processors; A memory; And One or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, and the one or more programs include instructions for: Detecting an external device, wherein the external device is executing an external application and the external application is in a first state; Receiving a first user input; In response to receiving the first user input: Displaying a first revelation and a second revelation on the display, wherein the first revelation corresponds to a first most recently opened application, and wherein the second revelation corresponds to a second most recently opened application, and the second most recently opened application is different from the first most recently opened application; And displaying a third revelation corresponding to a respective local application and the external application on the display, wherein: Based on determining that a first external application has been executed on the external device more recently than a second external application has been executed on the external device, the third revelation corresponds to a first local application; and Based on determining that the second external application has been executed on the external device more recently than the first external application has been executed on the external device, the third revelation corresponds to a second local application; Receiving a second user input; and In response to receiving the second user input: Based on determining that the second user input corresponds to the first revelation, launching the first most recently opened application; Based on determining that the second user input corresponds to the second revelation, launching the second most recently opened application; Based on determining that the second user input corresponds to the third revelation and the third revelation corresponds to the first local application, launching the first local application in a second state corresponding to the first state; and Based on determining that the second user input corresponds to the third revelation and the third revelation corresponds to the second local application, launching the second local application in a third state corresponding to the first state.
38. The electronic device according to claim 37, wherein, Displaying the third revelation includes displaying a thumbnail image indicating the external application.
39. The electronic device according to claim 37, wherein, The respective local application and the external application have at least one common application feature.
40. The electronic device according to claim 37, wherein, The first state of the external application corresponds to a position in the navigation hierarchy of the external application.
41. The electronic device according to claim 37, wherein, The first state of the external application corresponds to a position in a document displayed in the external application.
42. The electronic device according to claim 37, wherein, The first state of the external application corresponds to whether a feature of the external application is active.
43. The electronic device according to claim 37, wherein, The respective local application and the external application are versions of the same application.
44. The electronic device according to claim 37, wherein the one or more programs further include instructions for: Receiving, by the electronic device, application data of the external application; and Displaying the application data via the respective local application.
45. The electronic device according to claim 44, wherein, The application data represents a part of a message displayed by the external application, and wherein the one or more programs further include instructions for: Displaying the part of the message in the respective local application.
46. The electronic device according to claim 44, wherein The application data represents a part of a web page, and wherein the one or more programs further include instructions for: Displaying the part of the web page via the respective local application.
47. The electronic device according to claim 37, wherein, At least one application feature can only be accessed from one of an external application and a corresponding native application.
48. The electronic device according to claim 37, wherein, The external application executes at least one application feature, and launching the corresponding native application includes: Displaying an indication for wirelessly invoking an application feature of the external application executed on an external device from the corresponding native application executed on the electronic device.
49. The electronic device according to claim 37, wherein, The electronic device is a laptop or desktop computer.
50. The electronic device according to claim 37, wherein, The electronic device is a tablet computer.
51. The electronic device according to claim 37, wherein, The electronic device is a phone.
52. The electronic device according to claim 37, wherein, The external device is a laptop or desktop computer.
53. The electronic device according to claim 37, wherein, The external device is a tablet computer.
54. The electronic device according to claim 37, wherein, The external device is a phone.
55. An electronic device, comprising: A display; And Means for performing the method according to any one of claims 1-18.
Citation Information
Patent Citations
Method and apparatus for integrating manual input
US20020015024A1
Acceleration-based theft detection system for portable electronic devices
US20050190059A1
Methods and apparatuses for operating a portable device based on an accelerometer
US20060017692A1
Gestures for touch sensitive input devices
US20060026521A1
Gestures for touch sensitive input devices
US20060026536A1
Cited By
Continuity
CN120872200A