Continuity
By detecting external device usage and launching corresponding applications, the method facilitates seamless transitions between devices, reducing cognitive burden and enhancing productivity.
Patent Information
- Application Number
- JP2024077441
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2015-03-06
- Filing Date
- 2024-05-10
- Publication Date
- 2025-12-04
- Estimated Expiration
- 2035-05-07
AI Technical Summary
Existing technologies fail to allow seamless transitions between electronic devices, requiring users to manually launch applications on new devices, which disrupts continuity and increases cognitive burden.
An electronic device detects an external device running an application, receives usage information, displays an affordance, and launches a corresponding application upon user selection, enabling seamless transitions.
This method reduces cognitive burden and minimizes redundant user input, enhancing productivity by maintaining application continuity across devices.
Smart Images

Figure 0007780572000001 
Figure 0007780572000002 
Figure 0007780572000003
Abstract
Description
[Technical Field]
[0001] [CROSS-REFERENCE TO RELATED APPLICATIONS] This application claims the benefit of priority to International Application No. PCT / US2015 / 019309, filed March 6, 2015, entitled "CONTINUITY," International Application No. PCT / US2015 / 019306, filed March 6, 2015, entitled "CONTINUITY," International Application No. PCT / US2015 / 019317, filed March 6, 2015, entitled "CONTINUITY," U.S. Provisional Patent Application No. 62 / 035,348, filed August 8, 2014, entitled "CONTINUITY," and U.S. Provisional Patent Application No. 62 / 006,043, filed May 30, 2014, entitled "CONTINUITY."
[0002] This application is related to the following co-pending provisional applications: International Application No. PCT / US2015 / 019309, filed March 6, 2015, entitled "CONTINUITY," International Application No. PCT / US2015 / 019306, filed March 6, 2015, entitled "CONTINUITY," International Application No. PCT / US2015 / 019317, filed March 6, 2015, entitled "CONTINUITY," U.S. Patent Application No. 62 / 005,781, filed May 30, 2014, entitled "ACTIVITY CONTINUATION BETWEEN ELECTRONIC DEVICES," and U.S. Patent Application No. 62 / 005,781, filed May 30, 2014, entitled "COMPANION APPLICATION FOR ACTIVITY No. 62 / 005,793, filed May 30, 2014, entitled "PREDEFINED WIRELESS PAIRING," U.S. Patent Application No. 62 / 005,751, filed May 30, 2014, entitled "OPERATING-MODE CONFIGURATIONS BASED ON ADVERTISING INFORMATION," U.S. Patent Application No. 62 / 005,755, filed May 30, 2014, entitled "OPERATING-MODE CONFIGURATIONS BASED ON ADVERTISING INFORMATION," U.S. Patent Application No. 62 / 006,043, filed May 30, 2014, entitled "CONTINUITY," and U.S. Provisional Patent Application No. 62 / 035,348, filed August 8, 2014, entitled "CONTINUITY."
[0003] This application is also related to the following applications: International Patent Application No. PCT / US2013 / 040087, filed May 8, 2013, and entitled "Device, Method, and Graphical User Interface for Moving a User Interface Object Based on an Intensity of a Press Input," International Patent Application No. PCT / US2013 / 040072, filed May 8, 2013, and entitled "Device, Method, and Graphical User Interface for Providing Feedback for Changing Activation States of a User Interface Object," International Patent Application No. PCT / US2013 / 040070, filed May 8, 2013, and entitled "Device, Method, and Graphical User Interface for Providing Tactile Feedback for Operations Performed in a User Interface," and International Patent Application No. PCT / US2013 / 040071, filed May 8, 2013, and entitled "Device, Method, and Graphical User Interface for Facilitating User Interaction with Controls in a User Interface," No. PCT / US2013 / 040067, filed May 8, 2013, entitled "Device, Method, and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application" and International Patent Application No. PCT / US2013 / 040061, filed May 8, 2013, entitled "Device, Method, and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application" and International Patent Application No. PCT / US2013 / 040062, filed May 8, 2013, entitled "Device, Method, and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application" and International Patent Application No. PCT / US2013 / 040063, filed May 8, 2013, entitled "Device, Method,No. PCT / US2013 / 040058, filed May 8, 2013, entitled "Device, Method, and Graphical User Interface for Displaying Additional Information in Response to a User Contact," International Patent Application No. PCT / US2013 / 040056, filed May 8, 2013, entitled "Device, Method, and Graphical User Interface for Scrolling Nested Regions," International Patent Application No. PCT / US2013 / 040054, filed May 8, 2013, entitled "Device, Method, and Graphical User Interface for Manipulating Framed Graphical Objects," International Patent Application No. PCT / US2013 / 069489, filed November 11, 2013, entitled "Device, Method, and Graphical User Interface for Switching Between User Interfaces," and International Patent Application No. PCT / US2013 / 069489, filed November 11, 2013, entitled "Device, Method, and Graphical User Interface for Determining Whether to Scroll or Select No. PCT / US2013 / 069486, filed November 11, 2013, entitled "Device, Method, and Graphical User Interface for Moving a Cursor According to a Change in Appearance of a Control Icon with Simulated Three-Dimensional Characteristics" and International Patent Application No. PCT / US2013 / 069484, filed November 11, 2013, entitled "Device, Method, and Graphical User Interface for Moving a Cursor According to a Change in Appearance of a Control Icon with Simulated Three-Dimensional Characteristics."and Graphical User Interface for Transitioning Between Touch Input to Display Output Relationships,” filed on November 11, 2013; International Patent Application No. PCT / US2013 / 069483, entitled “Device, Method, and Graphical User Interface for Forgoing Generation of Tactile Output for a Multi-Contact Gesture,” filed on November 11, 2013; International Patent Application No. PCT / US2013 / 069479, entitled “Device, Method, and Graphical User Interface for Navigating User Interface Hierarchies,” filed on November 11, 2013; International Patent Application No. PCT / US2013 / 040108, entitled “Device, Method, and Graphical User Interface for Moving and Dropping a User Interface Object,” filed on May 8, 2013; No. PCT / US2013 / 040101, filed May 8, 2013, entitled "Device, Method, and Graphical User Interface for Displaying Content Associated with a Corresponding Affordance" and International Patent Application No. PCT / US2013 / 040098, filed May 8, 2013, entitled "Device, Method, and Graphical User Interface for Displaying Content Associated with a Corresponding Affordance" and International Patent Application No. PCT / US2013 / 040109, filed May 8, 2013, entitled "Device, Method, and Graphical User Interface for Displaying Content Associated with a Corresponding Affordance" and International Patent Application No. PCT / US2013 / 040101, filed May 8, 2013, entitled "Device, Method, and Graphical User Interface for Selecting User Interface Objects" and International Patent Application No. PCT / US2013 / 04No. PCT / US2013 / 040093, filed May 8, 2013, entitled "Device, Method, and Graphical User Interface for Transitioning Between Display States in Response to a Gesture"; International Patent Application No. PCT / US2013 / 040053, filed May 8, 2013, entitled "Device, Method, and Graphical User Interface for Selecting Object within a Group of Objects"; U.S. Patent Application No. 61 / 778,211, filed March 12, 2013, entitled "Device, Method, and Graphical User Interface for Facilitating User Interaction with Controls in a User Interface"; U.S. Patent Application No. 61 / 778,191, filed March 12, 2013, entitled "Device, Method, and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application"; and U.S. Patent Application No. 61 / 778,191, filed March 12, 2013, entitled "Device, Method, and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application"; No. 61 / 778,171, filed March 12, 2013, entitled "Device, Method, and Graphical User Interface for Scrolling Nested Regions," and U.S. patent application Ser. No. 61 / 778,179, filed March 12, 2013, entitled "Device, Method, and Graphical User Interface for Manipulating Framed Graphical Objects."No. 156, U.S. patent application Ser. No. 61 / 778,125, filed March 12, 2013, entitled "Device, Method, and Graphical User Interface for Navigating User Interface Hierarchies," U.S. patent application Ser. No. 61 / 778,092, filed March 12, 2013, entitled "Device, Method, and Graphical User Interface for Selecting Object Within a Group of Objects," U.S. patent application Ser. No. 61 / 778,418, filed March 13, 2013, entitled "Device, Method, and Graphical User Interface for Switching Between User Interfaces," U.S. patent application Ser. No. 61 / 778,416, filed March 13, 2013, entitled "Device, Method, and Graphical User Interface for Determining Whether to Scroll or Select Content," U.S. patent application Ser. No. 61 / 778,416, filed December 29, 2012, entitled "Device, Method, and Graphical User Interface for Manipulating User Interface," No. 61 / 747,278, filed March 13, 2013, entitled "Device, Method, and Graphical User Interface for Moving and Dropping a User Interface Object," and U.S. patent application Ser. No. 61 / 778,414, filed March 13, 2013, entitled "Device, Method, and Graphical User Interface for Selecting User Interface Objects," and U.S. patent application Ser. No. 61 / 778,413, filed March 13, 2013, entitled "Device, Method, and Graphical User Interface for Selecting User Interface Objects," and U.S. patent application Ser. No. 61 / 778,414, filed March 13, 2013, entitled "Device, Method, and Graphical User Interface for Selecting User Interface Objects."No. 61 / 778,412, filed March 12, 2013, entitled "Device, Method, and Graphical User Interface for Managing Activation of a Control Based on Contact Intensity," U.S. Patent Application No. 61 / 778,373, filed March 12, 2013, entitled "Device, Method, and Graphical User Interface for Transitioning Between Display States in Response to a Gesture," U.S. Patent Application No. 61 / 778,265, filed March 12, 2013, entitled "Device, Method, and Graphical User Interface for Managing Activation of a Control Based on Contact Intensity," U.S. Patent Application No. 61 / 778,265, filed March 12, 2013, entitled "Device, Method, and Graphical User Interface for Transitioning Between Display States in Response to a Gesture," U.S. Patent Application No. No. 61 / 778,367, filed March 12, 2013, entitled "Device, Method, and Graphical User Interface for Moving a User Interface Object Based on an Intensity of a Press Input"; U.S. patent application Ser. No. 61 / 778,363, filed March 12, 2013, entitled "Device, Method, and Graphical User Interface for Transitioning Between Touch Input to Display Output Relationships"; U.S. patent application Ser. No. 61 / 778,287, filed March 12, 2013, entitled "Device, Method, and Graphical User Interface for Providing Feedback for Changing Activation States of a User Interface Object"; U.S. patent application Ser. No. 61 / 778,284, filed March 12, 2013, entitled "Device, Method, and Graphical User Interface for Providing Tactile Feedback for Operations Performed in a User Interface"; The two patent applications are U.S. patent application Ser. No. 61 / 778,239, filed May 9, 2012, entitled "Device, Method, and Graphical User Interface for Manipulating User Interface Objects with Visual and / or Haptic Feedback," and U.S. patent application Ser. No. 61 / 688,227, filed May 9, 2012, entitled "Device, Method, and Graphical User Interface for Manipulating User Interface Objects with Visual and / or Haptic Feedback."
[0004] This application is also related to the following application: U.S. Utility Application No. 12 / 987,982, filed January 10, 2011, and entitled "Intelligent Automated Assistant."
[0005] The contents of these applications are incorporated herein by reference in their entirety.
[0006] [Technical field] The present disclosure relates generally to computer user interfaces, and more particularly to techniques that allow a user to seamlessly transition from using one device to using another. [Background technology]
[0007] Modern electronic devices can support a variety of software applications. Cellular phones, tablet computers, and laptop computers can each run messaging programs such as email editors and web browsers. Users who have multiple electronic devices may choose one device over another based on the suitability of the device at the time. For example, while on the go, a user may want to read email using a cellular phone. However, device suitability may change. For example, if an email requires a long response, the user may want to compose the long response using the full-sized keyboard of a laptop computer. To accomplish this transition using conventional techniques, a user would turn on the laptop, launch the email application, locate the specific email that requires a response, and begin preparing the response. It would be beneficial if users could transition from using one device to using another in a seamless, cognitively continuous manner, such as transitioning from reading email on one device to composing a reply on another. Summary of the Invention
[0008] In some embodiments, a method includes an electronic device detecting, via wireless communication, an external device that is running or has run a first application; receiving usage information from the external device indicating use of the first application on the external device; displaying an affordance on a screen of the electronic device in response to detecting the external device and receiving the usage information; detecting a user selection of the displayed affordance; and launching a second application on the electronic device that corresponds to the first application in response to detecting the user selection.
[0009] In some embodiments, an electronic device includes one or more processors, a memory, and one or more programs stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for detecting via wireless communication an external device that is running or has run a first application, receiving usage information from the external device indicating use of the first application on the external device, displaying an affordance on a screen of the electronic device in response to detecting the external device and receiving the usage information, detecting a user selection of the displayed affordance, and launching a second application on the electronic device that corresponds to the first application in response to detecting the user selection.
[0010] In some embodiments, a non-transitory computer-readable recording medium stores one or more programs that include instructions that, when executed by one or more processors of an electronic device, cause the electronic device to detect, via wireless communication, an external device that is running or has run a first application, receive usage information from the external device indicating use of the first application on the external device, display an affordance on a screen of the electronic device in response to detecting the external device and receiving the usage information, detect a user selection of the displayed affordance, and launch a second application on the electronic device that corresponds to the first application in response to detecting the user selection.
[0011] In some embodiments, an electronic device includes means for detecting, via wireless communication, an external device that is running or has run a first application; means for receiving usage information from the external device indicating use 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 that corresponds to the first application in response to detecting the user selection. [Brief explanation of the drawings]
[0012] For a better understanding of the various embodiments described, please refer to the following detailed description in conjunction with the following drawings, in which like reference numerals refer to corresponding parts throughout the various views:
[0013] [Figure 1A] 1 is a block diagram illustrating a portable multifunction device with a touch-sensitive display according to some embodiments.
[0014] [Figure 1B]FIG. 1 is a block diagram illustrating exemplary components for event processing, according to some embodiments.
[0015] [Figure 2] 1 illustrates a portable multifunction device having a touch screen according to some embodiments.
[0016] [Figure 3] FIG. 1 is a block diagram of an exemplary multifunction device with a display and a touch-sensitive surface, according to some embodiments.
[0017] [Figure 4A] FIG. 1 illustrates an exemplary user interface for a menu of applications on a portable multifunction device, according to some embodiments.
[0018] [Figure 4B] 1 illustrates an exemplary user interface for a multifunction device with a touch-sensitive surface separate from the display, according to some embodiments.
[0019] [Figure 4C] 1 illustrates a personal electronic device according to some embodiments.
[0020] [Figure 4D] 1 is a block diagram illustrating a personal electronic device according to some embodiments.
[0021] [Figure 5A] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 5B] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 5C] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 5D]FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 5E] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 5F] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 5G] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 5H] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 5I] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 5J] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 5K] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 5L] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 5M] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 5N] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices.
[0022] [Figure 6A] FIG. 1 illustrates exemplary types of transitions between applications. [Figure 6B] FIG. 1 illustrates exemplary types of transitions between applications. [Figure 6C] FIG. 1 illustrates exemplary types of transitions between applications. [Figure 6D] FIG. 1 illustrates exemplary types of transitions between applications.
[0023] [Figure 7A]FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 7B] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 7C] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 7D] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 7E] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 7F] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 7G] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices.
[0024] [Figure 8A] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 8B] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 8C] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices.
[0025] [Figure 9] FIG. 1 is a flow diagram illustrating a process for migrating between electronic devices.
[0026] [Figure 10] FIG. 1 is a flow diagram illustrating a process for migrating between electronic devices.
[0027] [Figure 11] FIG. 1 is a flow diagram illustrating a process for migrating between electronic devices.
[0028] [Figure 12]FIG. 1 is a flow diagram illustrating a process for migrating between electronic devices.
[0029] [Figure 13] FIG. 1 is a flow diagram illustrating a process for migrating between electronic devices.
[0030] [Figure 14] FIG. 1 is a flow diagram illustrating a process for migrating between electronic devices.
[0031] [Figure 15] FIG. 1 is a flow diagram illustrating a process for migrating between electronic devices.
[0032] [Figure 16] FIG. 1 is a functional block diagram of an electronic device according to some embodiments.
[0033] [Figure 17A] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 17B] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 17C] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 17D] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 17E] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices.
[0034] [Figure 18A] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 18B] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 18C] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 18D] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices.
[0035] [Figure 19A] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 19B] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices. [Figure 19C] FIG. 1 illustrates an exemplary user interface for migrating between electronic devices.
[0036] [Figure 20] FIG. 1 is a flow diagram illustrating a process for migrating between electronic devices.
[0037] [Figure 21] FIG. 1 is a flow diagram illustrating a process for migrating between electronic devices.
[0038] [Figure 22] FIG. 1 is a flow diagram illustrating a process for migrating between electronic devices.
[0039] [Figure 23] FIG. 1 is a functional block diagram of an electronic device configured to display a user interface, according to some embodiments.
[0040] [Figure 24] FIG. 1 is a functional block diagram of an electronic device configured to display a user interface, according to some embodiments.
[0041] [Figure 25] FIG. 1 is a functional block diagram of an electronic device configured to display a user interface, according to some embodiments.
[0042] [Figure 26]FIG. 1 is a functional block diagram of an electronic device configured to display a user interface, according to some embodiments.
[0043] [Figure 27] FIG. 1 is a functional block diagram of an electronic device configured to display a user interface, according to some embodiments.
[0044] [Figure 28] FIG. 1 is a functional block diagram of an electronic device configured to display a user interface, according to some embodiments.
[0045] [Figure 29] FIG. 1 is a functional block diagram of an electronic device configured to display a user interface, according to some embodiments.
[0046] [Figure 30] FIG. 1 is a functional block diagram of an electronic device configured to display a user interface, according to some embodiments.
[0047] [Figure 31] FIG. 1 is a functional block diagram of an electronic device configured to display a user interface, according to some embodiments.
[0048] [Figure 32] FIG. 1 is a functional block diagram of an electronic device configured to display a user interface, according to some embodiments.
[0049] [Figure 33] FIG. 1 is a functional block diagram of an electronic device configured to display a user interface, according to some embodiments.
[0050] [Figure 34] FIG. 1 is a functional block diagram of an electronic device configured to display a user interface, according to some embodiments.
[0051] [Figure 35] FIG. 1 is a functional block diagram of an electronic device configured to display a user interface, according to some embodiments.
[0052] [Figure 36] FIG. 1 is a functional block diagram of an electronic device configured to display a user interface, according to some embodiments.
[0053] [Figure 37] FIG. 1 is a functional block diagram of an electronic device configured to display a user interface, according to some embodiments.
[0054] [Figure 38] FIG. 1 is a functional block diagram of an electronic device configured to display a user interface, according to some embodiments.
[0055] [Figure 39] FIG. 1 is a functional block diagram of an electronic device configured to display a user interface, according to some embodiments.
[0056] [Figure 40] FIG. 1 is a functional block diagram of an electronic device configured to display a user interface, according to some embodiments.
[0057] [Figure 41] FIG. 1 is a functional block diagram of an electronic device configured to display a user interface, according to some embodiments.
[0058] [Figure 42] FIG. 1 is a functional block diagram of an electronic device configured to display a user interface, according to some embodiments.
[0059] [Figure 43]FIG. 1 is a flow diagram illustrating a process for migrating between electronic devices.
[0060] [Figure 44] FIG. 1 is a flow diagram illustrating a process for migrating between electronic devices.
[0061] [Figure 45] FIG. 1 is a flow diagram illustrating a process for migrating between electronic devices.
[0062] [Figure 46] FIG. 1 is a flow diagram illustrating a process for migrating between electronic devices.
[0063] [Figure 47] FIG. 1 is a flow diagram illustrating a process for migrating between electronic devices.
[0064] [Figure 48] FIG. 1 is a flow diagram illustrating a process for migrating between electronic devices.
[0065] [Figure 49] FIG. 1 is a flow diagram illustrating a process for migrating between electronic devices.
[0066] [Figure 50] FIG. 1 is a flow diagram illustrating a process for migrating between electronic devices.
[0067] [Figure 51] FIG. 1 is a flow diagram illustrating a process for migrating between electronic devices.
[0068] [Figure 52] FIG. 1 is a flow diagram illustrating a process for migrating between electronic devices.
[0069] [Figure 53] FIG. 1 is a flow diagram illustrating a process for migrating between electronic devices. DETAILED DESCRIPTION OF THE INVENTION
[0070] The following description sets forth example methods, parameters, etc. However, such description is not intended to limit the scope of the present disclosure, but is provided as an explanation of example embodiments.
[0071] There is a need for electronic devices that allow a user to efficiently transition from using one device to using another while maintaining an overall sense of continuity. For example, if a user is using one application on a first device, it would be advantageous if a second device to which the user is switching automatically launches the same application so that the user can continue without interrupting progress. Such techniques can reduce the cognitive burden on users who switch between using multiple computing devices, thereby increasing productivity. Furthermore, such techniques can reduce processor and battery power that would otherwise be wasted on redundant user input.
[0072] Figures 1A-1B, 2, 3, 4A-4D, and 23-42 below provide descriptions of example devices for performing techniques for migrating between computing devices. Figures 5A-5L, 6A-6D, 7A-7G, 8A-8C, 17A-17E, 18A-18D, and 19A-19C illustrate example user interfaces for migrating between computing devices. Figures 9-15, 20-22, and 43-53 are flow diagrams illustrating methods for managing event notifications according to some embodiments. The user interfaces in Figures 5A-5L, 6A-6D, 7A-7G, 8A-8C, 17A-17E, 18A-18D, and 19A-19C are used to illustrate the processes described below, including the processes in Figures 9-15, 20-22, and 43-53.
[0073] In the following description, terms such as "first" and "second" are used to describe various elements, but these elements should not be limited by these terms. These terms are used only to distinguish one element from another. For example, a first touch could be referred to as a second touch, and similarly, a second touch could be referred to as a first touch, without departing from the scope of the various described embodiments. A first touch and a second touch are both touches, but are not the same touch.
[0074] The terminology used in the description of the various embodiments described herein is for the purpose of describing particular embodiments only and is not intended to be limiting. When used in the description of the various embodiments described and in the appended claims, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly dictates otherwise. It will be further understood that the term "and / or," as used herein, refers to and encompasses any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms "includes," "including," "comprises," and / or "comprising," as used herein, specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0075] The term "if" may be interpreted to mean "when" or "upon" or "in response to determining" or "in response to detecting," depending on the context. Similarly, the phrase "if it is determined" or "if [a stated condition or event] is detected" may be interpreted to mean "upon determining" or "in response to determining" or "upon detecting [the stated condition or event]" or "in response to detecting [the stated condition or event]," depending on the context.
[0076] Embodiments of electronic devices, user interfaces for such devices, and associated processes for using such devices are described. In some embodiments, the device is a portable communication device, such as a mobile phone, that also has other functions, such as PDA and / or music player functionality. Exemplary embodiments of portable multifunction devices include, without limitation, the iPhone®, iPod Touch®, and iPad® devices from Apple Inc. of Cupertino, California. Other portable electronic devices, such as laptop computers or tablet computers with touch-sensitive surfaces (e.g., touchscreen displays and / or touchpads), are also optionally used. It should also be understood that in some embodiments, the device is not a portable communication device, but rather a desktop computer with a touch-sensitive surface (e.g., touchscreen displays and / or touchpads).
[0077] The following discussion describes an electronic device that includes a display and a touch-sensitive surface, however, it should be understood that the electronic device may optionally include one or more other physical user interface devices (e.g., a physical keyboard, a mouse, and / or a joystick).
[0078] The device may support a variety of applications, such as one or more of a drawing application, a presentation application, a word processing application, a website creation application, a disc authoring application, a spreadsheet application, a gaming application, a telephone application, a video conferencing application, an email application, an instant messaging application, an exercise support application, a photo management application, a digital camera application, a digital video camera application, an internet browsing application, a digital music player application, and / or a digital video player application.
[0079] Various applications executing on the device optionally use at least one common physical user interface device, e.g., a touch-sensitive surface. One or more features of the touch-sensitive surface and the corresponding information displayed on the device are optionally adjusted and / or changed for each application and / or within each application. In this way, the device's common physical architecture (e.g., touch-sensitive surface) optionally supports a variety of applications with user interfaces that are intuitive and transparent to the user.
[0080] Attention now turns to embodiments of portable devices with touch-sensitive displays. FIG. 1A is a block diagram illustrating a portable multifunction device 100 having a touch-sensitive display system 112 according to some embodiments. Touch-sensitive display 112 may conveniently be referred to as a "touch screen," or may also be known or referred to as a "touch-sensitive display system." Device 100 includes memory 102 (optionally including one or more computer-readable storage media), a memory controller 122, one or more processing units (CPUs) 120, a peripherals 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. Device 100 optionally includes one or more light sensors 164. Device 100 optionally includes one or more contact intensity sensors 165 that detect the intensity of a contact on device 100 (e.g., a touch-sensitive surface such as touch-sensitive display system 112 of device 100). Device 100 optionally includes one or more tactile output generators 167 that generate tactile output on device 100 (e.g., generate tactile output on touch-sensitive display system 112 of device 100 or a touch-sensitive surface such as touchpad 355 of device 300). These components optionally communicate over one or more communication buses or signal lines 103.
[0081] As used in the specification and claims, the term “intensity” of a contact on a touch-sensitive surface means the strength or pressure (strength per unit area) of a contact (e.g., a finger contact) on the touch-sensitive surface, or a proxy for the strength or pressure of a contact on the touch-sensitive surface. The intensity of a contact has a range of values including at least four distinct values and more typically hundreds of distinct values (e.g., at least 256). The intensity of a contact is optionally determined (or measured) using a variety of approaches and a variety of sensors or combinations of sensors. For example, one or more force sensors beneath or adjacent to the touch-sensitive surface are optionally used to measure 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 force of the contact. Similarly, the pressure-sensitive tip of a stylus is optionally used to determine the pressure of the stylus on the touch-sensitive surface. Alternatively, the size and / or change in the contact area detected on the touch-sensitive surface, the capacitance and / or change in the capacitance of the touch-sensitive surface near the contact point, and / or the resistance and / or change in the capacitance of the touch-sensitive surface near the contact point are optionally used as a surrogate for the force or pressure of the contact on the touch-sensitive surface. In some implementations, the surrogate measure of the force or pressure of the contact is used directly to determine whether an intensity threshold has been exceeded (e.g., the intensity threshold is stated in units corresponding to the surrogate measure). In some implementations, the surrogate measure of the force or pressure of the contact is converted to an estimated force or pressure, and the estimated force or pressure is used to determine whether an intensity threshold has been exceeded (e.g., the intensity threshold is a pressure threshold measured in units of pressure).Using the intensity of contact as an attribute of user input allows a user to access additional device functionality that may otherwise be inaccessible to a user on a small device with limited real estate for displaying affordances (e.g., on a touch-sensitive display) and / or receiving user input (e.g., via a touch-sensitive display, touch-sensitive surface, or physical / mechanical controls such as knobs or buttons).
[0082] As used in the specification and claims, the term “tactile output” means the physical displacement of a device relative to a previous position of the device, the physical displacement of a component of the device (e.g., a touch-sensitive surface) relative to another component of the device (e.g., a housing), or the displacement of a component relative to the center of mass of the device, as detected by a user through the user's sense of touch. For example, in a situation where a device or component of the device is in contact with a touch-sensitive user surface (e.g., a finger, palm, or other part of the user's hand), the tactile output generated by the physical displacement will be interpreted by the user as a tactile sensation corresponding to a perceived change in the physical properties of the device or component of the device. For example, movement of the touch-sensitive surface (e.g., a touch-sensitive display or trackpad) is optionally interpreted by the user as a “down-click” or “up-click” of a physical actuator button. In some cases, the user will experience tactile sensations such as a “down-click” or “up-click” even when there is no movement of a physical actuator button associated with the touch-sensitive surface that was physically pressed (e.g., displaced) by the user's movement. As another example, even when there is no change in the smoothness of the touch-sensitive surface, movement of the touch-sensitive surface is optionally interpreted or perceived by the user as a "roughness" of the touch-sensitive surface. While such interpretation of touch by a user will depend on the user's personal sensory perception, there are numerous sensory perceptions of touch that are common to most users. Thus, when a tactile output is described as corresponding to a particular sensory perception of a user (e.g., an "up click," a "down click," or a "roughness"), unless stated to the contrary, the generated tactile output corresponds to a physical displacement of the device or its components that produces the described sensory perception for a typical (average) user.
[0083] It should be understood that device 100 is only one example of a portable multifunction device, and that device 100 optionally has more or fewer components than shown, optionally combines two or more components, or optionally has other configurations or arrangements of components. The various components shown in Figure 1A may be implemented as hardware, software, or a combination of both hardware and software, including one or more signal processing circuits and / or application specific integrated circuits.
[0084] 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 magnetic 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.
[0085] A peripheral interface 118 can be used to connect input and output peripherals of the device to the CPU 120 and memory 102. The one or more processors 120 operate or execute various software programs and / or sets of instructions stored in memory 102 to perform various functions and process data for the device 100. In some embodiments, the peripheral interface 118, the CPU 120, and the memory controller 122 may be implemented on a single chip, such as chip 104. In some embodiments, they may be implemented on separate chips.
[0086] The radio frequency (RF) circuitry 108 transmits and receives RF signals, also known as electromagnetic signals. The RF circuitry 108 converts electrical signals to electromagnetic signals and electromagnetic signals to electrical signals and communicates with communication networks and other communication devices via electromagnetic signals. The RF circuitry 108 optionally includes well-known circuitry for performing these functions, including, but not limited to, an antenna system, an RF transceiver, one or more amplifiers, a tuner, one or more oscillators, a digital signal processor, a CODEC chipset, a subscriber identity module (SIM) card, memory, and the like. The RF circuitry 108 optionally communicates with networks such as the Internet, also known as the World Wide Web (WWW), or an intranet, and / or wireless networks such as cellular telephone networks, wireless local area networks (LANs), and / or metropolitan area networks (MANs), and / or with other devices via wireless communications. RF circuitry 108 optionally includes well-known circuitry for detecting Near Field Communication (NFC) fields (e.g., via short-range communication waves). Wireless communication is optionally supported by Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), high-speed downlink packet access (HSDPA), high-speed uplink packet access (HSUPA), and Evolution of Electromagnetic Compatibility (EV-DO).Data-Only, HSPA, HSPA+, DC-HSPA (Dual-Cell HSPA), LTE (long term evolution), NFC (near field communication), W-CDMA (wideband code division multiple access), CDMA (code division multiple access), TDMA (time division multiple access), Bluetooth®, Bluetooth Low Energy (BTLE), Wi-Fi (Wireless Fidelity) (e.g., IEEE 802.11a, IEEE 802.11b, IEEE 802.11g, IEEE 802.11n, and / or IEEE 802.11ac), VoIP (voice over Internet Protocol), Wi-MAX, protocols for email (e.g., IMAP (Internet message access protocol) and / or POP (post office protocol)), instant messaging (e.g., XMPP (extensible messaging and presence protocol)), SIMPLE (Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions), IMPS (Instant Messaging and Presence Protocol), Use any of a number of communications standards, protocols, and technologies, including, but not limited to, SMS (Short Message Service), and / or SMS (Short Message Service), or any other suitable communications protocol, as well as communications protocols not yet developed as of the filing date of this application.
[0087] Audio circuitry 110, speaker 111, and microphone 113 provide an audio interface between a user and device 100. Audio circuitry 110 receives audio data from peripheral interface 118, converts the audio data into electrical signals, and transmits the electrical signals to speaker 111. Speaker 111 converts the electrical signals into sound waves that are audible to humans. Audio circuitry 110 also receives electrical signals converted from the sound waves by microphone 113. Audio circuitry 110 converts the electrical signals into audio data and transmits the audio data to peripheral interface 118 for processing. The audio data may be retrieved from and / or transmitted to memory 102 and / or RF circuitry 108 by peripheral interface 118. In some embodiments, audio circuitry 110 also includes a headphone jack (e.g., 212 in FIG. 2 ). The headphone jack provides an interface between audio circuitry 110 and a detachable audio input / output peripheral device, such as an output-only headphone or a headphone with an output (e.g., mono or binaural headphone) and an input (e.g., a microphone).
[0088] The I / O subsystem 106 connects input / output peripherals of the device 100, such as the touchscreen 112 and other input control devices 116, to the peripheral interface 118. The I / O subsystem 106 may optionally include a display controller 156, a light 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 send and receive electrical signals to and 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, slide switches, joysticks, click wheels, etc. In some alternative embodiments, the input controller 160 is optionally connected to any of (or none of) a keyboard, an infrared port, a USB port, and a pointer device such as a mouse. The one or more buttons (e.g., 208 in FIG. 2 ) optionally include up / down buttons for adjusting the volume of the speaker 111 and / or microphone 113. The one or more buttons optionally include a push button (eg, 206 in FIG. 2).
[0089] A quick press of the push button may unlock the touchscreen 112 or initiate a process of using gestures on the touchscreen to unlock the device, as described in U.S. patent application Ser. No. 11 / 322,549, "Unlocking a Device by Performing Gestures on an Unlock Image," filed Dec. 23, 2005, U.S. Patent No. 7,657,849, which is incorporated herein by reference in its entirety. A long press of a push button (e.g., 206) may power the device 100 on or off. The user may be able to customize the function of one or more buttons. The touchscreen 112 is used to implement virtual or soft buttons and one or more soft keyboards.
[0090] The touch-sensitive display 112 provides an input and output interface between the device and a user. The display controller 156 sends and receives electrical signals to and from the touchscreen 112. The touchscreen 112 displays visual output to the user. The visual output may include graphics, text, icons, video, or any combination thereof (collectively referred to as "graphics"). In some embodiments, some or all of the visual output may correspond to objects in a user interface.
[0091] Touchscreen 112 has a touch-sensitive surface and a sensor or collection of sensors that accepts input from a user based on tactile and / or haptic contact. Touchscreen 112 and display controller 156 (along with any associated modules and / or collections of instructions in memory 102) detects contacts (and movement or cessation of contacts) on touchscreen 112 and translates the detected contacts into interactions with user interface objects (e.g., one or more softkeys, icons, web pages, or images) displayed on touchscreen 112. In one exemplary embodiment, the point of contact between touchscreen 112 and the user corresponds to the user's finger.
[0092] Touchscreen 112 may use liquid crystal display (LCD), light emitting polymer display (LPD), or light emitting diode (LED) technology, although other display technologies may be used in other embodiments. Touchscreen 112 and display controller 156 may detect contact or any movement or interruption thereof using any of a number of now known or later developed touch sensing technologies, including, but not limited to, capacitive, resistive, infrared, surface acoustic wave (SAW) technologies, as well as other proximity sensor arrays or other elements for determining one or more contact points with touchscreen 112. In one exemplary embodiment, projected mutual capacitance sensing technology is used, such as that found in the iPhone® and iPod Touch® manufactured by Apple Inc. of Cupertino, California.
[0093] In some embodiments, the touch-sensitive display of touchscreen 112 may be similar to the multi-touch-sensitive touchpad described in U.S. Pat. No. 6,323,846 (Westerman et al.), U.S. Pat. No. 6,570,557 (Westerman et al.), and / or U.S. Pat. No. 6,677,932 (Westerman), and / or U.S. Patent Publication 2002 / 0015024 A1 (each of which is incorporated by reference in its entirety). However, while touchscreen 112 displays visual output from device 100, the touch-sensitive touchpad does not provide visual output.
[0094] In some embodiments, the touch-sensitive display of touch screen 112 may be as described in the following applications: (1) U.S. Patent Application No. 11 / 381,313, "Multipoint Touch Surface Controller," filed May 2, 2008; (2) U.S. Patent Application No. 10 / 840,862, "Multipoint Touchscreen," filed May 6, 2004; (3) U.S. Patent Application No. 10 / 903,964, "Gestures For Touch Sensitive Input Devices," filed July 30, 2004; (4) U.S. Patent Application No. 11 / 048,264, "Gestures For Touch Sensitive Input Devices," filed January 31, 2005; (5) U.S. Patent Application No. 11 / 038,590, "Mode-Based Graphical User Interfaces For Touch Sensitive Input Devices," filed January 18, 2005; (6) U.S. Patent Application No. 11 / 228,758, "Virtual Input Device Placement On A Touch Screen User Interface," filed January 18, 2005. (7) U.S. Patent Application No. 11 / 228,700, entitled "Operation Of A Computer With A Touch Screen Interface," filed September 16, 2005; (8) U.S. Patent Application No. 11 / 228,737, entitled "Activating Virtual Keys Of A Touch-Screen Virtual Keyboard," filed September 16, 2005; (9) U.S. Patent Application No. 11 / 367,749, entitled "Multi-Functional Hand-Held Device," filed March 3, 2008. All of these applications are incorporated herein by reference in their entireties.
[0095] The touchscreen 112 may have a video resolution greater than 100 dpi. In some embodiments, the touchscreen has a video resolution of approximately 160 dpi. A user may contact the touchscreen 112 with any suitable object or attachment, such as a stylus, finger, etc. In some embodiments, the user interface is designed to work primarily with finger-based contacts and gestures, which may not be as precise as stylus-based input due to the larger area of contact a finger has on the touchscreen. In some embodiments, the device translates coarse finger-based input into precise pointer / cursor positions or commands to perform the user's desired action.
[0096] In some embodiments, in addition to the touchscreen, device 100 may include a touchpad (not shown) for activating or deactivating individual functions. In some embodiments, the touchpad is a touch-sensitive area of the device that, unlike the touchscreen, does not display visual output. The touchpad may be a touch-sensitive surface separate from touchscreen 112 or an extension of the touch-sensitive surface formed by the touchscreen.
[0097] Device 100 also includes a power system 162 for providing power to the various components. Power system 162 may include a power management system, one or more power sources (e.g., battery, alternating current (AC)), a recharging system, power failure detection circuitry, power converters or inverters, power status indicators (e.g., light-emitting diodes (LEDs)), and any other components associated with the generation, management, and distribution of power within a portable device.
[0098] Device 100 may also include one or more light sensors 164. FIG. 1A shows a light sensor connected to light sensor controller 158 in I / O subsystem 106. Light sensor 164 may include a charge-coupled device (CCD) or a complementary metal-oxide semiconductor (CMOS) phototransistor. Light sensor 164 receives light from the environment projected through one or more lenses and converts the light into data representing an image. In conjunction with imaging module (also called camera module) 143, light sensor 164 may capture still images or video. In some embodiments, the light sensor is located on the back of device 100, opposite touchscreen display 112 on the front of the device, so that the touchscreen display can be used as a viewfinder to capture still or video images. In some embodiments, the light sensor is located on the front of the device so that a user's image can be captured for a video conference while the user views other participants in the video conference on the touchscreen display. In some embodiments, the position of the light sensor 164 is user-changeable (e.g., by rotating the lens and sensor in the device housing) so that a single light sensor 164 can be used in conjunction with a touchscreen display for both video conferencing and capturing still and / or video images.
[0099] Device 100 also optionally includes one or more contact intensity sensors 165. FIG. 1A shows a contact intensity sensor coupled to intensity sensor controller 159 in I / O subsystem 106. Contact intensity sensor 165 optionally includes one or more piezoresistive strain gauges, capacitive force sensors, electric force sensors, piezoelectric force sensors, optical force sensors, capacitive touch-sensitive surfaces, or other intensity sensors (e.g., sensors used to measure the force (or pressure) of a contact on a touch-sensitive surface). Contact intensity sensor 165 receives contact intensity information (e.g., pressure information or a proxy for pressure information) from the environment. In some embodiments, at least one contact intensity sensor is co-located with or proximate to a touch-sensitive surface (e.g., touch-sensitive display system 112). In some embodiments, at least one contact intensity sensor is located on the back of device 100, as opposed to touchscreen display 112 being located on the front of device 100.
[0100] Device 100 may also include one or more proximity sensors 166. Figure 1A shows proximity sensor 166 connected to peripherals interface 118. Alternatively, proximity sensor 166 may be connected to input controller 160 in I / O subsystem 106. Proximity sensor 166 may operate as described in U.S. patent application Ser. No. 11 / 241,839, entitled "Proximity Detector In Handheld Device," U.S. patent application Ser. No. 11 / 240,788, entitled "Proximity Detector In Handheld Device," U.S. patent application Ser. No. 11 / 620,702, entitled "Using Ambient Light Sensor To Augment Proximity Sensor Output," U.S. patent application Ser. No. 11 / 586,862, entitled "Automated Response To And Sensing Of User Activity In Portable Devices," and U.S. patent application Ser. No. 11 / 638,251, entitled "Methods And Systems For Automatic Configuration Of Peripherals," which are incorporated herein by reference in their entireties. In some embodiments, the proximity sensor turns off and disables touchscreen 112 when the multifunction device is placed near the user's ear (e.g., when the user attempts to make a phone call).
[0101] Device 100 also optionally includes one or more haptic output generators 167. FIG. 1A shows haptic output generators coupled to haptic feedback controller 161 in I / O subsystem 106. Haptic output generator 167 optionally includes one or more electroacoustic devices (e.g., speakers or other audio components, etc.) and / or electromechanical devices that convert energy into linear motion (e.g., motors, etc.), solenoids, electroactive polymers, piezoelectric actuators, electrostatic actuators, or other haptic output generator components (e.g., components that convert electrical signals into haptic outputs at the device). Contact intensity sensor 165 receives haptic feedback generation instructions from haptic feedback module 133 and generates haptic outputs at device 100 that are perceptible to a user of device 100. In some embodiments, at least one tactile output generator is co-located with or proximate to a touch-sensitive surface (e.g., touch-sensitive display system 112) and optionally generates tactile output by moving the touch-sensitive surface vertically (e.g., in / out of the surface of device 100) or laterally (e.g., backing up and forward in the same plane as the surface of device 100). In some embodiments, at least one tactile output generator sensor is located on the back of device 100, as opposed to touchscreen display 112 being located on the front of device 100.
[0102] Device 100 may also include one or more accelerometers 168. FIG. 1A shows accelerometer 168 connected to peripherals interface 118. Alternatively, accelerometer 168 may be connected to input controller 160 in I / O subsystem 106. 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," which are incorporated herein by reference in their entireties. In some embodiments, information is displayed on the touchscreen display as a portrait view or a landscape view based on analysis of data received from one or more accelerometers. 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 regarding the location and orientation (e.g., portrait or landscape) of the device 100.
[0103] In some embodiments, software components stored in memory 102 include an operating system 126, a communications module (or set of instructions) 128, a touch / motion module (or set of instructions) 130, a graphics module (or set of instructions) 132, a text input module (or set of instructions) 134, a global positioning system (GPS) module (or set of instructions) 135, and applications (or set of instructions) 136. Additionally, in some embodiments, memory 102 (FIG. 1A) or 370 (FIG. 3) stores device / global internal state 157, as shown in FIGS. 1A and 3. Device / global internal state 157 includes one or more of: an active application state indicating which applications, if any, are currently active; a display state indicating which applications, views, or other information occupy various regions of touchscreen display 112; a sensor state including information obtained from the device's various sensors and input control devices 116; and location information regarding the device's position and / or orientation.
[0104] Operating system 126 (e.g., Darwin, RTXC, LINUX, UNIX, OS X, iOS, WINDOWS, or an embedded operating system such as Vx Works) 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.
[0105] Communications module 128 facilitates communication with other devices via one or more external ports 124 and includes various software components for processing data received by RF circuitry 108 and / or external ports 124. External ports 124 (e.g., Universal Serial Bus (USB), FIREWIRE, etc.) are configured to connect to other devices directly or indirectly via a network (e.g., the Internet, a wireless LAN, etc.). In some embodiments, the external ports are multi-pin (e.g., 30-pin) connectors that are the same as, similar to, and / or compatible with the 30-pin connector used on iPod® (trademark of Apple Inc.) devices.
[0106] The contact / motion module 130 optionally detects contact between the touchscreen 112 and other touch-sensitive devices (e.g., a touchpad or physical click wheel) (in conjunction with the display controller 156). The contact / motion module 130 includes various software components for performing various operations related to contact detection, such as determining whether a contact has occurred (e.g., by 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 contact movement and tracking that movement across the touchscreen surface (e.g., by detecting one or more finger-drag events), and determining whether the contact has ceased (e.g., by detecting a finger-up event or an interruption of contact). The contact / motion module 130 receives contact data from the touch-sensitive surface. Determining contact movement (represented by a series of contact data) optionally includes determining the speed (magnitude), velocity (magnitude and orientation), and / or acceleration (change in magnitude and / or report) of the contact. These operations are optionally applied to a single contact (e.g., one finger contact) or multiple simultaneous contacts (e.g., "multi-touch" / multiple finger contacts). In some embodiments, contact / motion module 130 and display controller 156 detect contacts on the touchpad.
[0107] In some embodiments, contact / motion module 130 uses a set of one or more intensity thresholds to determine whether an action has been performed by a user (e.g., to determine whether a user has “clicked” an icon). In some embodiments, at least a subset of the intensity thresholds are determined according to software parameters (e.g., the intensity thresholds are not determined by the activation thresholds of a particular physical actuator and are adjustable without modifying the physical hardware of device 100). For example, the mouse “click” threshold of a trackpad or touchscreen display can be set anywhere within a wide range of predefined thresholds without modifying the trackpad or touchscreen display hardware. Additionally, in some implementations, a user of the device is provided with a software setting 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).
[0108] The contact / motion module 130 optionally detects gesture input by a user. Different gestures on the touch-sensitive surface have different contact patterns (e.g., different movements, timing, and / or intensities of detected contact). Therefore, a gesture is optionally detected by detecting a particular contact pattern. For example, detecting a finger-tapping gesture includes detecting a finger-down event and then detecting a finger-up (lift-off) event at the same location (the location of the icon) as the finger-down event (or at substantially the same location). As another example, detecting a finger-swipe gesture on the touch-sensitive surface includes detecting a finger-down event followed by one or more finger-drag events and then detecting a finger-lift (lift-off) event.
[0109] Graphics module 132 includes various known software components for rendering and displaying graphics on touchscreen 112 or other display, including components for modifying the visual effects (e.g., brightness, transparency, saturation, contrast, or other visual properties) of the displayed graphics. As used herein, the term "graphics" includes any object that can be displayed to a user, including, without limitation, text, web pages, icons (such as user interface objects including softkeys), digital images, video, animation, and the like.
[0110] In some embodiments, graphics module 132 stores data representing the graphics to be used. Each shape is optionally assigned a corresponding code. Graphics module 132 receives one or more codes specifying the graphics to be displayed, along with coordinate data and other graphic property data, as needed, from an application or the like, and then generates screen image data for output to display controller 156.
[0111] The haptic feedback module 133 includes various software components for generating instructions used by the haptic output generator 167 to generate haptic outputs at one or more locations on the device 100 in response to user interaction with the device 100.
[0112] Text input module 134, which may be a component of graphics module 132, provides a soft keyboard for entering text into various applications (e.g., contacts 137, email 140, IM 141, browser 147, and any other application requiring text input).
[0113] The GPS module 135 determines the location of the device and provides this information for use by various applications (e.g., to the phone 138 for use in location-based dialing, to the camera 143 as picture / video metadata, and to applications that provide location-based services such as weather widgets, local yellow pages widgets, and maps / navigation widgets).
[0114] The application 136 may include the following modules (or sets of instructions), or a subset or superset thereof: · a contacts module 137 (sometimes called an address book or contact list); Telephone module 138, · Videoconferencing module 139, an email client module 140; · Instant messaging (IM) module 141, Exercise support module 142, camera module 143 for still and / or video images, Image management module 144, Video player module, Music player module, Browser module 147, Calendar module 148, a widget module 149 that may include one or more of a weather widget 149-1, a stocks widget 149-2, a calculator widget 149-3, an alarm clock widget 149-4, a dictionary widget 149-5, and other widgets acquired by the user and created by the user 149-6; a widget creator module 150 for creating user-created widgets 149-6; · Search module 151, a video and music player module 152 that integrates a video player module and a music player module; · Memo module 153, a map module 154, and / or ·Online video module 155.
[0115] Examples of other applications 136 that may be stored in memory 102 include other word processing applications, other image editing applications, drawing applications, presentation applications, JAVA®-enabled applications, encryption, digital rights management, voice recognition, and voice duplication.
[0116] In conjunction with touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, contacts module 137 may be used to manage an address book or contact list (e.g., stored in memory 102 or in the application internal state 192 of contacts module 137 in memory 370), including adding names to the address book, removing names from the address book, associating names with phone numbers, email addresses, physical addresses, or other information, associating images with names, categorizing and sorting names, and providing phone numbers or email addresses to initiate and / or facilitate communications, such as by telephone 138, videoconferencing module 139, email 140, or IM 141.
[0117] Telephone module 138 may be used in conjunction with RF circuitry 108, audio circuitry 110, speaker 111, microphone 113, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134 to enter character sequences corresponding to telephone numbers, access one or more telephone numbers in contacts module 137, modify entered telephone numbers, dial each telephone number, conduct a conversation, and disconnect or hang up when the conversation is completed. As noted above, wireless communications may use any of a number of communication standards, protocols, and technologies.
[0118] In conjunction with RF circuitry 108, audio circuitry 110, speaker 111, microphone 113, touchscreen 112, display controller 156, light sensor 164, light sensor controller 158, touch / motion module 130, graphics module 132, text input module 134, contacts module 137, and telephone module 138, videoconferencing module 139 contains executable instructions for initiating, conducting, and terminating a videoconference between a user and one or more other participants according to the user's commands.
[0119] In conjunction with RF circuitry 108, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, email client module 140 contains executable instructions for creating, sending, receiving, and managing emails in response to user commands. In conjunction with image management module 144, email client module 140 greatly facilitates creating and sending emails accompanied by still or video images captured by camera module 143.
[0120] In conjunction with RF circuitry 108, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, instant messaging module 141 includes executable instructions for entering character sequences corresponding to instant messages, modifying previously entered characters, sending each instant message (e.g., using the Short Message Service (SMS) or Multimedia Message Service (MMS) protocols for telephone-based instant messaging, or using XMPP, SIMPLE, or IMPS for Internet-based instant messaging), receiving instant messages, and viewing received instant messages. In some embodiments, sent and / or received instant messages may include graphics, photos, audio files, video files, and / or other attachments, as supported by MMS and / or Enhanced Messaging Service (EMS). As used herein, "instant messaging" refers to both telephone-based messaging (e.g., messages sent using SMS or MMS) and Internet-based messaging (e.g., messages sent using XMPP, SIMPLE, or IMPS).
[0121] In conjunction with the RF circuitry 108, touchscreen 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, exercise support module 142 contains executable instructions for creating exercises (e.g., with time, distance, and / or calorie burn goals), communicating with exercise sensors (sports devices), receiving exercise sensor data, calibrating sensors used to monitor exercise, selecting and playing music for the exercise, and displaying, storing, and transmitting exercise data.
[0122] In conjunction with touch screen 112, display controller 156, light sensor 164, light sensor controller 158, contact / motion module 130, graphics module 132, and image management module 144, camera module 143 contains executable instructions to capture still images or video (including video streams) and store them in memory 102, modify characteristics of the still images or video, or delete the still images or video from memory 102.
[0123] In conjunction with touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, and camera module 143, image management module 144 contains executable instructions for composing, modifying (e.g., editing), or otherwise manipulating, labeling, deleting, presenting (e.g., as a digital slideshow or album), and storing still and / or video images.
[0124] In conjunction with RF circuitry 108, touch screen 112, display controller 156, touch / motion module 130, graphics module 132, and text input module 134, browser module 147 contains executable instructions for browsing the Internet according to user commands, including retrieving, linking to, receiving, and displaying web pages or portions thereof as well as attachments and other files linked to web pages.
[0125] In conjunction with RF circuitry 108, touch screen 112, display controller 156, touch / motion module 130, graphics module 132, text input module 134, email client module 140, and browser module 147, calendar module 148 contains executable instructions for creating, displaying, modifying, and storing calendars and calendar-related data (e.g., calendar entries, to-do lists, etc.) in accordance with user commands.
[0126] In conjunction with RF circuitry 108, touchscreen 112, display controller 156, touch / motion module 130, graphics module 132, text input module 134, and browser module 147, widget modules 149 are mini-applications that can be downloaded and used by a user (e.g., weather widget 149-1, stocks widget 149-2, calculator widget 149-3, alarm clock widget 149-4, and dictionary widget 149-5) or created by a user (e.g., user-created widget 149-6). In some embodiments, widgets include Hypertext Markup Language (HTML) files, Cascading Style Sheets (CSS) files, and JavaScript files. In some embodiments, widgets include Extensible Markup Language (XML) files and JavaScript files (e.g., Yahoo! Widgets).
[0127] In conjunction with RF circuitry 108, touch screen 112, display controller 156, touch / motion module 130, graphics module 132, text input module 134, and browser module 147, widget creator module 150 may be used by a user to create widgets (e.g., by turning user-specified portions of a web page into widgets).
[0128] In conjunction with touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, search module 151 contains executable instructions for searching for text, music, audio, images, video, and / or other files in memory 102 that match one or more search criteria at the command of a user (e.g., one or more user-specified search terms).
[0129] In conjunction with touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, audio circuitry 110, speaker 111, RF circuitry 108, and browser module 147, video and music player module 152 contains executable instructions that enable a user to download and play recorded music and other audio files stored in one or more file formats, such as, for example, MP3 or AAC files, and executable instructions for displaying, presenting, or otherwise playing videos (e.g., on touchscreen 112 or on an externally connected display via external port 124). In some embodiments, device 100 optionally includes MP3 player functionality, such as, for example, an iPod (a trademark of Apple Inc.).
[0130] In conjunction with touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, notes module 153 contains executable instructions for creating and managing notes, to-do lists, and the like in accordance with user commands.
[0131] In conjunction with RF circuitry 108, touchscreen 112, display controller 156, touch / motion module 130, graphics module 132, text input module 134, GPS module 135, and browser module 147, map module 154 may be used to receive, display, modify, and store maps and map-related data (e.g., driving directions, data regarding stores and other points of interest at or near individual locations, and other location-based data) in accordance with user instructions.
[0132] In conjunction with touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, audio circuitry 110, speaker 111, RF circuitry 108, text input module 134, email client module 140, and browser module 147, online video module 155 contains instructions that enable a user to access, view, receive (e.g., by streaming and / or downloading), play (e.g., on the touchscreen or on an external display connected via external port 124) online videos in one or more file formats, such as H.264, send emails with links to individual online videos, and otherwise manage the online videos. In some embodiments, instant messaging module 141 is used to send links to individual online videos rather than email client module 140. Additional description of online video applications can be found in U.S. Provisional Patent Application No. 60 / 936,562, entitled "Portable Multifunction Device, Method, and Graphical User Interface for Playing Online Videos," filed June 20, 2007, and U.S. Patent Application No. 11 / 968,067, entitled "Portable Multifunction Device, Method, and Graphical User Interface for Playing Online Videos," filed December 31, 2007, the contents of which are incorporated herein by reference in their entireties.
[0133] Each of the above-identified modules and applications corresponds to a set of executable instructions for performing one or more of the functions and methods described herein (e.g., the computer-implemented methods and other information processing methods described herein). These modules (e.g., sets of instructions) need not be implemented as separate software programs, procedures, or modules; 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., video and music player module 152 of FIG. 1A). In some embodiments, memory 102 may store a subset of the above-identified modules and data structures. Additionally, memory 102 may store additional modules and data structures not described above.
[0134] In some embodiments, device 100 is a device in which operation of a preset set of functions on the device is performed entirely through a touchscreen and / or touchpad. By using the touchscreen and / or touchpad as the primary input control device for operation of device 100, the number of physical input control devices (e.g., pushbuttons, dials, etc.) on device 100 may be reduced.
[0135] The set of pre-defined functions performed exclusively through the touchscreen and / or touchpad optionally includes navigation between user interfaces. In some embodiments, when touched by a user, the touchpad navigates device 100 to a main, home, or root menu from any user interface displayed on device 100. In such embodiments, a "menu button" is implemented using the touchpad. In some other embodiments, the menu button is a physical push button or other physical input control device instead of a touchpad.
[0136] 1B is a block diagram illustrating exemplary components for event processing according to some embodiments. In some embodiments, memory 102 (of FIG. 1A) or 370 (of FIG. 3) includes event sorter 170 (e.g., within operating system 126) and a respective application 136-1 (e.g., any of applications 137-151, 155, 380-390 described above).
[0137] Event sorter 170 receives the event information and determines application 136-1 and application view 191 of application 136-1 to which the event information should be delivered. Event sorter 170 includes event monitor 171 and event dispatch module 174. In some embodiments, application 136-1 includes application internal state 192 that indicates the current application view that is displayed on touch-sensitive display 112 when the application is active or running. In some embodiments, event sorter 170 uses device / global internal state 157 to determine which application is currently active and then uses application internal state 192 to determine which application view 191 the event information should be delivered to.
[0138] In some embodiments, application internal state 192 includes additional information, such as one or more of: resume information to be 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 to allow the user to return to a previous state or view of application 136-1; and a redo or undo queue of previous actions taken by the user.
[0139] Event monitor 171 receives event information from peripherals interface 118. The event information includes information about sub-events (e.g., a user's touch on touch-sensitive display 112 as part of a multi-touch gesture). Peripherals interface 118 transmits information it receives from I / O subsystem 106 or sensors such as proximity sensor 166, accelerometer 168, and / or microphone 113 (through audio circuitry 110). The information that peripherals interface 118 receives from I / O subsystem 106 includes information from touch-sensitive display 112 or a touch-sensitive surface.
[0140] In some embodiments, event monitor 171 sends requests to peripherals interface 118 at predetermined intervals. In response, peripherals interface 118 transmits event information. In other embodiments, peripherals interface 118 transmits event information only if there is a significant event (e.g., receiving an input that exceeds a predetermined noise threshold and / or exceeds a predetermined duration).
[0141] In some embodiments, event sorter 170 also includes a hit view determination module 172 and / or an active event recognizer determination module 173 .
[0142] Hit view determination module 172 provides software procedures for determining where a sub-event occurred in one or more views when touch-sensitive display 112 displays more than one view. A view consists of controls and other elements that a user can see on the display.
[0143] Another aspect of a user interface associated with an application is a collection of views, sometimes referred to herein as application views or user interface windows, in which information is displayed and touch-based gestures are made. The application view (of each application) in which a touch is detected may correspond to a programmatic level in the application's programmatic or view hierarchy. 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 that qualify as appropriate input may be determined based, at least in part, on the hit view of the initial touch that initiates a touch-based gesture.
[0144] Hit view determination module 172 receives information about sub-events of a touch-based gesture. If an application has multiple views organized as a hierarchy, hit view determination module 172 identifies the hit view as the lowest view in the hierarchy that should process the sub-events. In most situations, the hit view is the lowest-level view in which the first sub-event occurs (e.g., the first sub-event in a sequence of sub-events that form an event or potential event). Once a hit view is identified by hit view determination module 172, the hit view typically receives all sub-events related to the same touch or input source identified as the hit view.
[0145] Active event recognizer determination module 173 determines which views in the hierarchy of views should receive the respective sequence of sub-events. In some embodiments, active event recognizer determination module 173 determines that only the hit view should receive the respective sequence of sub-events. In other embodiments, active event recognizer determination module 173 determines that all views that contain the physical location of the sub-events are actively participating views, and therefore, all actively participating views should receive the respective sequence of sub-events. In other embodiments, even if the touch sub-events are completely confined to the area associated with one individual view, views higher in the hierarchy will still remain actively participating views.
[0146] Event dispatch module 174 dispatches event information to an event recognizer (e.g., event recognizer 180). In embodiments that include active event recognizer determination module 173, event dispatch module 174 delivers the event information to the event recognizer determined by active event recognizer determination module 173. In some embodiments, event dispatch module 174 stores event information retrieved by each event receiver 182 in an event queue.
[0147] In some embodiments, operating system 126 includes event sorter 170. Alternatively, application 136-1 includes event sorter 170. In other embodiments, event sorter 170 is a stand-alone module or is part of another module stored in memory 102, such as contact / motion module 130.
[0148] In some embodiments, application 136-1 includes multiple event handlers 190 and one or more application views 191, each containing instructions for processing touch events that occur within a respective view of the application's user interface. Each application view 191 of application 136-1 includes one or more event recognizers 180. Typically, each application view 191 includes multiple event recognizers 180. In other embodiments, one or more event recognizers 180 are part of a separate module, such as a user interface kit (not shown) or a higher-level object from which application 136-1 inherits methods and other properties. In some embodiments, each event handler 190 includes one or more of data updater 176, object updater 177, GUI updater 178, and / or event data 179 received from event sorter 170. Event handlers 190 may utilize or invoke data updater 176, object updater 177, or GUI updater 178 to update application internal state 192. Alternatively, one or more of application views 191 includes one or more respective event handlers 190. Also, in some embodiments, one or more of data updater 176, object updater 177, and GUI updater 178 are included within each application view 191.
[0149] Each 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 event receiver 182 and event comparator 184. In some embodiments, event recognizer 180 also includes metadata 183 and at least a subset of event delivery instructions 188 (which may include sub-event delivery instructions).
[0150] Event receiver 182 receives event information from event sorter 170. The event information includes information about a sub-event, such as a touch or a movement of a touch. Depending on the sub-event, the event information also includes additional information, such as the position of the sub-event. If the sub-event involves a movement of a touch, the event information may also include the velocity and orientation 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 orientation, or vice versa), and the event information includes corresponding information about the device's current orientation (also called the device's attitude).
[0151] The event comparator 184 compares the event information with preset event or sub-event definitions and determines the event or sub-event, or determines or updates the state of the event or sub-event, based on the comparison. In some embodiments, the event comparator 184 includes an event definition 186. The event definition 186 includes a definition of an event (e.g., a preset sequence of sub-events), such as Event 1 (187-1), Event 2 (187-2), etc. In some embodiments, sub-events of Event 187 include, for example, touch start, touch end, touch move, touch cancel, and multi-touch. In one example, the definition for Event 1 (187-1) is two taps on a displayed object. The two taps include, for example, a first touch on a displayed object for a given stage (touch start), a first lift-off (touch end) for the given stage, a second touch on a displayed object for the given stage (touch start), and a second lift-off (touch end) for the given stage. In another example, the definition for event 2 (187-2) is dragging on a displayed object. Dragging includes, for example, a touch (or contact) on a displayed object for a predetermined period, movement of the touch across the touch-sensitive display 112, and lift-off of the touch. In some embodiments, the event also includes information about one or more associated event handlers 190.
[0152] In some embodiments, event definition 187 includes a definition of the event for each user interface object. In some embodiments, event comparator 184 performs a hit test to determine which user interface object is associated with the sub-event. For example, in an application window in which three user interface objects are displayed on touch-sensitive display 112, when a touch is detected on touch-sensitive display 112, event comparator 184 performs a hit test to determine which of the three user interface objects is associated with the touch (sub-event). Once each displayed object is associated with a respective event handler 190, event comparator 184 uses the results of the hit test to determine which event handler 190 should be invoked. For example, event comparator 184 selects the event handler associated with the sub-event and object that triggers the hit test.
[0153] Additionally, in some embodiments, the definition for each event (187) includes a delay that delays delivery of the event information until it is determined whether the sequence of sub-events corresponds to the event type of the event recognizer.
[0154] If the respective event recognizer 180 determines that the sequence of sub-events does not match any event in the event definition 186, the respective event recognizer 180 enters an event-disabled, event-failed, or event-ended state and thereafter ignores subsequent sub-events of the touch-based gesture. In this situation, other event recognizers, if any, that remain active for the hit view continue to track and process sub-events of the ongoing touch-based gesture.
[0155] In some embodiments, each event recognizer 180 includes metadata 183 with configurable properties, flags, and / or lists that indicate how the event delivery system handles sub-event delivery to actively participating event recognizers. In some embodiments, metadata 183 includes settable properties, flags, and / or lists that indicate how event recognizers may interact (or are enabled to interact) with each other. In some embodiments, metadata 183 includes configurable properties, flags, and / or lists that indicate whether sub-events are delivered to various levels in the view or programmatic hierarchy.
[0156] In some embodiments, each event recognizer 180 invokes an event handler 190 associated with an event when one or more individual sub-events of the event are recognized. In some embodiments, each event recognizer 180 delivers event information associated with the event to the event handler 190. Invoking the event handler 190 is distinct from sending (and deferring sending) sub-events to the respective hit view. In some embodiments, the event recognizer 180 throws a flag associated with the recognized event, and the event handler 190 associated with the flag catches the flag and performs a pre-configured process.
[0157] In some embodiments, event delivery instructions 188 include sub-event delivery instructions that deliver event information about a sub-event without invoking an event handler. Instead, the sub-event delivery instructions deliver the event information to an event handler associated with a set of sub-events or to an actively participating view. The event handler associated with a set of sub-events or an actively participating view receives the event information and performs a pre-configured process.
[0158] In some embodiments, data updater 176 creates and updates data used by application 136-1. For example, data updater 176 updates phone numbers used in contacts module 137 or stores video files used in a video player module. In some embodiments, object updater 177 creates and updates objects used by application 136-1. For example, object updater 177 creates new user interface objects or updates the positions of user interface objects. GUI updater 178 updates the GUI. For example, GUI updater 178 prepares display information and sends it to graphics module 132 for display on the touch-sensitive display.
[0159] In some embodiments, event handler 190 includes or has access to data updater 176, object updater 177, and GUI updater 178. In some embodiments, data updater 176, object updater 177, and GUI updater 178 are contained within a single module of the respective application 136-1 or application view 191. In other embodiments, they are contained within two or more software modules.
[0160] It should be understood that the foregoing discussion regarding event processing for a user's touch on a touch-sensitive display also applies to other forms of user input for operating multifunction device 100 using input devices, not all of which are initiated on the touchscreen. For example, mouse movements and mouse button presses (optionally coordinated with one or more keyboard presses or holds), touchpad contact movements (tapping, dragging, scrolling, etc.), pen stylus input, device movements, verbal commands, detected eye movements, biometric input, and / or any combination thereof are optionally utilized as inputs corresponding to sub-events that define the event to be recognized.
[0161] FIG. 2 illustrates portable multifunction device 100 with touchscreen 112 according to some embodiments. The touchscreen optionally displays one or more graphics in user interface (UI) 200. In this embodiment and other embodiments described below, a user is enabled to select one or more graphics by making a gesture on the graphics, for example, with one or more fingers 202 (not drawn to scale) or one or more styluses 203 (not drawn to scale). In some embodiments, selection of one or more graphics occurs when the user breaks contact with the one or more graphics. In some embodiments, the gesture optionally includes one or more taps, one or more swipes (left to right, right to left, up and / or down), and / or rolling (right to left, left to right, up and / or down) of a finger that has been in contact with device 100. In some implementations or situations, inadvertent contact with a graphic does not select the graphic. For example, if the gesture corresponding to selection is a tap, a swipe gesture that sweeps over an application's icon optionally does not select the corresponding application.
[0162] Device 100 may also include one or more physical buttons, such as a "home" or menu button 204. As previously mentioned, menu button 204 may be used to navigate to any application 136 in a collection of applications that may be running on device 100. Alternatively, in some embodiments, the menu button is implemented as a soft key in a GUI displayed on touchscreen 112.
[0163] In one embodiment, device 100 includes touchscreen 112, menu button 204, pushbuttons 206 for powering the device on / off and locking the device, volume control buttons 208, a SIM (Subscriber Identity Module) card slot 210, a headphone jack 212, and external docking / charging port 124. Optionally, pushbutton 206 is used to power the device on / off by pressing and holding the button down for a preset time interval, lock the device by pressing and releasing the button before the preset time interval has elapsed, and / or unlock the device or initiate the unlocking process. In an alternative embodiment, device 100 also accepts verbal input for activating or deactivating certain functions through microphone 113. Device 100 also optionally includes one or more contact intensity sensors 165 for detecting contact intensity on touchscreen 112 and / or one or more tactile output generators 167 for generating tactile outputs for a user of device 100.
[0164] FIG. 3 is a block diagram of an exemplary multifunction device with a display and a touch-sensitive surface, according to 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 (e.g., a child's learning toy), gaming system, or control device (e.g., a home or commercial controller). Device 300 typically 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) that interconnects and controls communication between the system's components. Device 300 includes an input / output (I / O) interface 330 that includes a display 340, which is typically a touchscreen display. I / O interface 330 also optionally includes a keyboard and / or mouse (or other pointing device) 350, a touchpad 355, a tactile output generator 357 (e.g., similar to tactile output generator 167 described above with reference to FIG. 1A ) for generating tactile output in device 300, and sensors 359 (e.g., light, acceleration, proximity, touch-sensitive, and / or contact intensity sensors similar to contact intensity sensor 165 described above with reference to FIG. 1A ). 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 magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid-state storage devices. Memory 370 optionally includes one or more storage devices remote from CPU 310.In some embodiments, memory 370 stores programs, modules, and data structures similar to, or a subset of, the programs, modules, and data structures stored in memory 102 of portable multifunction device 100 (FIG. 1A). Additionally, memory 370 optionally stores additional programs, modules, and data structures not currently present in memory 102 of portable multifunction device 100. For example, memory 370 of device 300 optionally stores drawing module 380, presentation module 382, word processing module 384, website creation module 386, disk authoring module 388, and / or spreadsheet module 390, while memory 102 of portable multifunction device 100 (FIG. 1A) optionally does not store these modules.
[0165] The individual elements of FIG. 3 identified above may be stored in one or more memory devices as described above. The individual modules identified above correspond to sets 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 software programs, procedures, or modules; thus, various subsets of these modules may be combined or otherwise rearranged in various embodiments. In some embodiments, memory 370 may store a subset of the modules and data structures identified above. Additionally, memory 370 may store additional modules and data structures not described above.
[0166] Attention will now be directed to user interface embodiments that may be implemented in portable multifunction device 100, for example.
[0167] 4A is a diagram illustrating an exemplary user interface for a menu of applications on portable multifunction device 100 in accordance with some embodiments. A similar user interface may be implemented on device 300. In some embodiments, user interface 400 includes the following elements, or a subset or superset thereof: signal strength indicators 402 for wireless communications, e.g., cellular and WiFi signals; ·Time 404, Bluetooth indicator 405, Battery status indicator 406, Tray 408 with icons for frequently used applications such as: An icon 416 for the phone module 138, labeled "Phone," which optionally includes an indicator 414 of the number of missed calls or voicemail messages. An icon 418 for the email client module 140, labeled "Mail," which optionally includes an indicator 410 of the number of unread emails. an icon 420 for the browser module 147, labeled "Browser"; and an icon 422 labeled "iPod" for the video and music player module 152, also known as the iPod (trademark of Apple Inc.) module 152; and Icons for other applications, e.g. An icon 424 for the IM module 141, labeled "Messages"; An icon 426 for the calendar module 148, labeled "Calendar"; an icon 428 for the image management module 144, labeled "Photos"; an icon 430 for the camera module 143, labeled "camera"; An icon 432 for the online video module 155, labeled "Online Video"; Icon 434 for Stocks widget 149-2, labeled "Stocks" An icon 436 for the map module 154, labeled "Map"; Icon 438 for weather widget 149-1, labeled "Weather" Icon 440 for alarm clock widget 149-4, labeled "Clock" an icon 442 for the exercise support module 142, labeled "exercise support"; An icon 444 for the notes module 153, labeled "Notes," and An icon 446 labeled "Settings" for a settings application or module, which provides access to the settings of the device 100 and its various applications 136.
[0168] 4A are merely exemplary. For example, icon 422 for video and music player module 152 may optionally be labeled "Music" or "Music Player." Other labels are optionally used for various application icons. In some embodiments, the label of an individual application icon includes the name of the application corresponding to the individual application icon. In some embodiments, the label of a particular application icon differs from the name of the application corresponding to the particular application icon.
[0169] 4B is a diagram illustrating an example user interface on a device (e.g., device 300 of FIG. 3) with a touch-sensitive surface 451 (e.g., tablet or touchpad 355 of FIG. 3) separate from a display 450 (e.g., touchscreen display 112). Device 300 also optionally includes one or more contact intensity sensors (e.g., one or more sensors 357) for detecting contact intensity on touch-sensitive surface 451, and / or one or more tactile output generators 359 for generating tactile outputs for a user of device 300.
[0170] Although some of the examples described below will be given with reference to input on touchscreen display 112 (a combined touch-sensitive surface and display), in some embodiments, the device detects input on a touch-sensitive surface separate from the display, as shown in FIG. 4B. In some embodiments, the touch-sensitive surface (e.g., 451 in FIG. 4B) has a major axis (e.g., 452 in FIG. 4B) that corresponds to a major axis (e.g., 453 in FIG. 4B) on the display (e.g., 450). According to these embodiments, the device detects contact with touch-sensitive surface 451 (e.g., 460 and 462 in FIG. 4B) at locations that correspond to their respective locations on the display (e.g., 460 corresponds to 468 and 462 corresponds to 470 in FIG. 4B). In this manner, user input (e.g., contacts 460 and 462, and their movement) detected by the device on the touch-sensitive surface (e.g., 451 in FIG. 4B) when the touch-sensitive surface is separate from the display is used by the device to operate a user interface on the multifunction device's display (e.g., 450 in FIG. 4B). It should be understood that similar methods are optionally used for the other user interfaces described herein.
[0171] Additionally, while the examples described below will be given primarily with reference to finger input (e.g., finger touches, finger tap gestures, finger swipe gestures), it should be understood that in some embodiments, one or more finger inputs are replaced with input from another input device (e.g., mouse-based input or stylus input). For example, a swipe gesture is optionally replaced with a mouse click (e.g., instead of a touch) followed by cursor movement along the path of the swipe (e.g., instead of a touch movement). As another example, a tap gesture is optionally replaced with a mouse click while the cursor is positioned over the tap gesture location (e.g., instead of a touch detection followed by an end of touch detection). Similarly, when multiple user inputs are detected simultaneously, it should be understood that multiple computer mice are optionally used simultaneously, or that mice and finger touches are optionally used simultaneously.
[0172] FIG. 4C illustrates an exemplary personal electronic device 460. Device 460 has a body 462. In some embodiments, device 460 may have some or all of the features described with respect to devices 100 and 300 (e.g., of FIGS. 1A-4B). In some embodiments, device 460 has a touch-sensitive display screen 464, hereinafter referred to as touchscreen 464. Alternatively, or in addition to touchscreen 464, device 460 has a display and a touch-sensitive surface. As with devices 100 and 300, in some embodiments, touchscreen 464 (or the touch-sensitive surface) may have one or more intensity sensors for detecting the intensity of an applied contact (e.g., a touch). The one or more intensity sensors of touchscreen 464 (or the touch-sensitive surface) may provide output data representing the intensity of the touch. The user interface of device 460 may respond to a touch based on the intensity of the touch, meaning that touches of different intensities may invoke different user interface operations on device 460.
[0173] Techniques for detecting and processing touch intensity may be found, for example, in related applications such as International Patent Application No. PCT / US2013 / 040061, filed May 8, 2013, and entitled "Device, Method, and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application," and International Patent Application No. PCT / US2013 / 069483, filed November 11, 2013, and entitled "Device, Method, and Graphical User Interface for Transitioning Between Touch Input to Display Output Relationships," each of which is incorporated herein by reference in its entirety.
[0174] In some embodiments, device 460 has one or more input mechanisms 466 and 468. If included, input mechanisms 466 and 468 may be physical. Examples of physical input mechanisms include push buttons and rotatable mechanisms. In some embodiments, device 460 has one or more coupling mechanisms. If included, such coupling mechanisms may allow device 460 to be coupled to, for example, hats, glasses, earrings, necklaces, shirts, jackets, bracelets, watch bands, chains, pants, belts, shoes, wallets, backpacks, etc. These coupling mechanisms may allow device 460 to be worn by a user.
[0175] FIG. 4D illustrates an exemplary personal electronic device 470. In some embodiments, device 470 may have some or all of the components described with respect to FIGS. 1A, 1B, and 3. Device 470 has a bus 472 operatively coupling an I / O section 474 to one or more computer processors 476 and memory 478. I / O section 474 may be connected to a display 480, which may have a touch-sensitive component 482 and, optionally, a touch-intensity-sensitive component 484. Additionally, I / O section 474 may 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 techniques. Device 470 may include input mechanisms 486 and / or 488. Input mechanism 486 may be, for example, a rotatable input device or a depressible and rotatable input device. Input mechanism 488 may, in some examples, be a button.
[0176] The input mechanism 488 may be a microphone in some examples. The personal electronic device 470 may 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 may be operably connected to the I / O section 474.
[0177] The memory 478 of the personal electronic device 470 may be a non-transitory computer-readable storage medium for storing computer-executable instructions that, when executed by one or more computer processors 476, may cause the computer processor to perform the techniques described above, including processes 900-1500 and 2000-2200 (FIGS. 9-15 and 20-22). Additionally, the computer-executable instructions may be stored in and / or transported to any non-transitory computer-readable storage medium used by or in connection with an instruction execution system, apparatus, or device, such as a computer-based system, a system including a processor, or other system capable of fetching and executing instructions from an instruction execution system, apparatus, or device. As used herein, a "non-transitory computer-readable storage medium" is any medium used by or in connection with an instruction execution system, apparatus, or device that may tangibly contain or store computer-executable instructions. Non-transitory computer-readable storage media may include, but are not limited to, magnetic, optical, and / or semiconductor storage devices. Examples of such storage devices include magnetic disks, optical disks based on CD, DVD or Blu-ray technology, and persistent solid-state memory such as flash, solid-state drives, etc. Personal electronic device 470 is not limited to the components and configuration of Figure 4D, but may include other or additional components in multiple configurations.
[0178] As used herein, the term "affordance" refers to a user-interactive graphical user interface object that may be displayed on the display screen of device 100, 300, 460, and / or 470 (of FIGS. 1, 3, 4C, and 4D). For example, an image (e.g., an icon), a button, or text (e.g., a hyperlink) may each be an affordance.
[0179] As used herein, the term "focus selector" refers to an input element that indicates the current portion of a user interface with which a user is interacting. In some implementations that include a cursor or other position marker, the cursor acts as the "focus selector" such that when input (e.g., a press input) is detected on a touch-sensitive surface (e.g., touchpad 355 of FIG. 3 or touch-sensitive surface 451 of FIG. 4B) while the cursor is over a particular user interface element (e.g., a button, window, slider, or other user interface element), the particular user interface element is adjusted according to the detected input. In some implementations including a touchscreen display that allows direct interaction with user interface elements on the touchscreen display (e.g., touch-sensitive display system 112 of FIG. 1A or touchscreen 112 of FIG. 4A), contact detected on the touchscreen acts as a "focus selector" such that when input (e.g., a contact press input) is detected on the touchscreen display at the location of a particular user interface element (e.g., a button, window, slider, or other user interface element), the particular user interface element is adjusted in accordance with the detected input. In some implementations, focus is moved from one region of the user interface to another region of the user interface (e.g., by using the tab or arrow keys to move focus from one button to another) without corresponding cursor movement or contact movement on the touchscreen display; in these implementations, the focus selector moves between various regions of the user interface as the focus moves. Regardless of the particular form that the focus selector takes, the focus selector is generally a user interface element (or a contact on a touchscreen display) that is controlled by the user to communicate the user's intended interaction to the user interface (e.g., by indicating to the device the element of the user interface with which the user intends to interact).For example, the position of a focus selector (e.g., cursor, contact, or selection box) on each button while a press input is detected on a touch-sensitive surface (e.g., a touchpad or touchscreen) would indicate that the user intends to activate each button (rather than other user interface elements shown on the device's display).
[0180] In the specification and claims, the term "characteristic intensity" of a contact refers to a characteristic of the contact based on one or more intensities of the contact. In some embodiments, the characteristic intensity is based on a plurality of intensity samples. The characteristic intensity is optionally based on a preset number of intensity samples or a set of intensity samples collected during a preset time frame (e.g., 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10 seconds) about a preset event (e.g., after detecting a contact, before detecting a liftoff of the contact, before or after detecting the start of a contact motion, 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 characteristic intensity of the contact is optionally based on one or more of the maximum intensity of the contact, the mean value of the intensity of the contact, the average value of the intensity of the contact, the top 10% of the intensity of the contact, half the maximum intensity of the contact, 90% of the maximum intensity of the contact, or the like. In some embodiments, the characteristic intensity is determined using the duration of the contact (e.g., where the characteristic intensity is an average of the contact intensity over time). In some embodiments, the characteristic intensity is compared to 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 may include a first intensity threshold and a second intensity threshold. In this example, a contact with a characteristic intensity that does not exceed the first threshold results in a first operation, a contact with a characteristic intensity that exceeds the first intensity threshold but not the second intensity threshold results in a second operation, and a contact with a characteristic intensity that exceeds the second threshold results in a third operation. In some embodiments, a comparison between the characteristic intensity and one or more thresholds is used to determine whether to perform one or more operations (e.g., perform or forgo each operation), rather than to determine whether to perform the first operation or the second operation.
[0181] In some embodiments, a portion of the gesture is identified to determine the characteristic intensity. For example, a touch-sensitive surface may receive a continuous swipe contact that transitions from a start position to an end position, where the intensity of the contact increases. In this example, the characteristic intensity of the contact at the end position may be based only on the portion of the continuous swipe contact and not on the entire swipe contact (e.g., only the portion of the swipe contact at the end position). In some embodiments, a smoothing algorithm may be applied to the intensity of the swipe contact before determining the characteristic intensity of the contact. For example, the smoothing algorithm optionally includes one or more of an unweighted smoothed average smoothing algorithm, a triangular smoothing algorithm, a median filter smoothing algorithm, and / or an exponential smoothing algorithm. Under some circumstances, these smoothing algorithms remove sharp spikes and drops in the intensity of the swipe contact to determine the characteristic intensity.
[0182] The intensity of a contact on the touch-sensitive surface may be characterized relative to one or more intensity thresholds, e.g., a contact-detection intensity threshold, a soft pressure intensity threshold, a hard pressure intensity threshold, and / or one or more other intensity thresholds. In some embodiments, the soft pressure intensity threshold corresponds to the intensity at which the device performs an operation typically associated with clicking a button on a physical mouse or trackpad. In some embodiments, the hard pressure intensity threshold corresponds to the intensity at which the device performs an operation other than an operation typically associated with clicking a button on a physical mouse or trackpad. In some embodiments, if a contact is detected with a characteristic intensity below the soft pressure intensity threshold (e.g., and above a nominal contact-detection intensity threshold below which the contact is not detected), the device will move a focus selector according to the movement of the contact on the touch-sensitive surface without performing an operation associated with the soft pressure intensity threshold or the hard pressure intensity threshold. Generally, unless otherwise noted, these intensity thresholds are consistent across various user interface diagrams.
[0183] An increase in the characteristic intensity of a contact from an intensity below the weak pressure intensity threshold to an intensity between the weak and strong pressure intensity thresholds may be referred to as a "weak pressure" input. An increase in the characteristic intensity of a contact from an intensity below the strong pressure intensity threshold to an intensity above the strong pressure intensity threshold may be referred to as a "strong pressure" 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 weak pressure intensity threshold may be 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 may be referred to as detecting 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.
[0184] In some embodiments described herein, one or more operations are performed in response to detecting a gesture including the respective pressure input or in response to detecting the respective pressure inputs in conjunction with the respective contact(s), where the respective pressure inputs are detected based at least in part on detecting an increase in intensity of the contact(s) above a pressure input intensity threshold. In some embodiments, the respective operations are performed in response to detecting an increase in intensity of the respective contact(s) above a pressure input intensity threshold (e.g., a "downstroke" of the respective pressure input). In some embodiments, the pressure input includes an increase in intensity of the respective contact(s) above a pressure input intensity threshold and a subsequent decrease in intensity of the contact(s) below the pressure input intensity threshold, where the respective operations are performed in response to detecting a subsequent decrease in intensity of the respective contact(s) below the pressure input intensity threshold (e.g., an "upstroke" of the respective pressure input).
[0185] In some embodiments, to avoid accidental input, sometimes referred to as “jitter,” the device employs intensity hysteresis, where the device defines or selects a hysteresis intensity threshold with a preset relationship to the pressure input intensity threshold (e.g., the hysteresis intensity threshold is X units below the pressure input intensity threshold, or the hysteresis intensity threshold is 75%, 90%, or some reasonable percentage of the pressure input intensity threshold). Thus, in some embodiments, the pressure input includes an increase in the intensity of each contact above the pressure input intensity threshold and a subsequent decrease in the intensity of the contact below the hysteresis intensity threshold corresponding to the pressure input intensity threshold, with each operation being performed in response to detecting a subsequent decrease in the intensity of each contact below the hysteresis intensity threshold (e.g., an “upstroke” of each pressure input). Similarly, in some embodiments, a pressure input is detected only if the device detects an increase in the intensity of the contact from an intensity below the hysteresis intensity threshold to an intensity above the pressure input intensity threshold, and optionally a subsequent decrease in the intensity of the contact to an intensity below the hysteresis intensity, and a respective operation is performed in response to detecting the pressure input (e.g., an increase in the intensity of the contact or a decrease in the intensity of the contact, as the case may be).
[0186] For ease of explanation, actions performed in response to a pressure input associated with or in response to a gesture including a pressure input are described as optionally triggered in response to detecting any of: an increase in the intensity of the contact above a pressure input intensity threshold; an increase in the intensity of the contact from an intensity below a hysteresis intensity threshold to an intensity above the pressure input intensity threshold; a decrease in the intensity of the contact below a pressure input intensity threshold; and / or a decrease in the intensity of the contact below a hysteresis intensity threshold corresponding to the pressure input intensity threshold. Additionally, in examples where an action is described as being performed in response to detecting a decrease in the intensity of the contact below a pressure input intensity threshold, the action is optionally performed in response to detecting a decrease in the intensity of the contact below a hysteresis intensity threshold corresponding to and below the pressure input intensity threshold.
[0187] As used herein, an "installed application" refers to a software application that has been downloaded onto an electronic device (e.g., device 100, 300, 460, and / or 470) and is ready to be launched (e.g., opened) on the device. In some embodiments, a downloaded application becomes an installed application by an installation program that extracts program portions from a downloaded package and then integrates the extracted portions into the computer system's operating system.
[0188] As used herein, the terms "open application" or "running application" refer to a software application that has state information maintained (e.g., as part of device / global internal state 157 and / or application internal state 192). An open or running application can be any one of the following types of applications: The active application currently displayed on the display screen of the device on which the application is being used; A background application (or background process) that is not currently displayed, but for which one or more processes are being handled by one or more processors; · A suspended or hibernated application that is not running but has state information stored in memory (volatile or non-volatile) that can be used to resume execution of the application.
[0189] As used herein, the term "closed application" refers to a software application that does not have retained state information (e.g., no state information for the closed application is stored in the device's memory). Thus, closing an application includes stopping and / or deleting the application process for that application and deleting the state information for that application from the device's memory. Generally, opening a second application while a first application is running does not close the first application. If the second application is displayed and the first application disappears, the first application becomes a background application.
[0190] Attention will now turn to embodiments of user interfaces (“UIs”) and related processes that may be implemented on multifunction devices with displays and touch-sensitive surfaces, such as devices 100, 300, 460, and / or 470, to enhance the user experience when transitioning between different electronic devices. For simplicity, the functionality described herein may be referred to as “Continuity” functionality.
[0191] 1. Example Uses of the Continuity Feature 5A-5D illustrate an exemplary transition between two different electronic devices using the continuity feature. In FIG. 5A, a user 502 is using an electronic device 504, which may be a portable multifunction device 100 in some embodiments. As shown, the electronic device 504 is a cellular telephone. The cellular telephone 504 displays a user interface screen 506, which is part of a messaging application running on the cellular telephone 504. The user interface screen 506 shows the content of a message between the user 502 and a participant named John 510. The illustrated message content includes a message bubble 508 representing the messaging conversation. In the ongoing conversation, John (participant 510) has just asked the user 504 for a website URL.
[0192] Because the cellular telephone 504 has a relatively small display screen, looking up the URL of a requested website on the cellular telephone 504 may prove inefficient. Instead, the user 504 may attempt to find the requested information on an electronic device with a larger display. As shown in FIG. 5B , the user 504 approaches a tablet computer 512 for this purpose, as the tablet computer 512's larger screen makes it better suited for the task. As the user 502, holding the cellular telephone 504, approaches the tablet computer 512, the two devices come within wireless range of each other and begin wireless communication. The tablet computer 512 may detect the presence of the cellular telephone 504 via a low-energy wireless protocol. Upon detection, the tablet computer 512 may obtain additional information from the cellular telephone 504, such as usage information indicating that a messaging application is active on the cellular telephone 504.
[0193] 5C , based on this information, tablet computer 512 displays affordance 514 to indicate that the user can continue the ongoing messaging conversation on tablet computer 512. Affordance 514 may be displayed on user interface lock status screen 515. In other words, in response to detecting cellular telephone 504 and receiving usage information (regarding the messaging application being used on cellular telephone 504), tablet computer 512 displays continuity affordance (e.g., icon) 514 to inform the user that messaging application continuity between devices is possible.
[0194] As used herein, the term "affordance" refers to a user-interactive graphical user interface object that may be displayed on the display screen of device 100, 300, and / or 460 (of FIGS. 1, 3, and 4C). For example, an image (e.g., an icon), a button, or text (e.g., a hyperlink) may each be an affordance.
[0195] A user can select a displayed continuity affordance to launch a corresponding messaging application. In some embodiments, a user may select a continuity affordance via a touch gesture (e.g., tap, swipe, flick, long press). In some embodiments, a user may select a continuity affordance via a mouse gesture (e.g., hover, click, double-click, drag). In the example of FIG. 5D , user 502 may swipe upward on affordance 514 (as indicated by arrow 516) to launch a corresponding messaging application on tablet computer 512. That is, in response to the swipe gesture in a particular orientation (e.g., upward), tablet computer 512 unlocks and launches the messaging application. The messaging application launched on tablet computer 512 may be a version of the active messaging application on cellular phone 504. For example, the active messaging application on tablet computer 512 may be Messages for iPad®, while the active messaging application on cellular phone 504 may be Messages for iPhone®, both manufactured by Apple Inc. of Cupertino, California.
[0196] In addition to launching the corresponding messaging application, the tablet computer 512 may also display the same message content as shown on the cellular phone 504. Furthermore, because the tablet computer 512 has a larger display screen, an additional message bubble 518 may be shown (recall that only bubble 508 was shown on the cellular phone 504). From here, the user 502 may switch to a web browsing application on the tablet computer 512 to find the requested URL for the participant 510.
[0197] The continuity techniques described above allowed user 502 to transition from cellular telephone 504 to tablet computer 512 without interruption. During the transition, user 502 did not have to manually locate and launch a messaging application. Furthermore, during the transition, user 502 did not have to search for the content of a message regarding participant 510 among the content of other messages. Instead, the state of the messaging application remained after the transition from cellular telephone 504 to tablet computer 512.
[0198] U.S. patent application Ser. No. 11 / 322,549, now U.S. Pat. No. 7,657,849, describes a user interface locked state (hereinafter "locked state") in which a device such as device 100, 300, or 460 is powered on and usable but ignores most, if not all, user input. That is, the device does not take any action in response to user input and / or the device is prevented from performing a preset set of operations in response to user input. The preset set of operations may include navigation between user interfaces and activation and deactivation of a preset set of functions. The locked state may be used to prevent unintended or unauthorized use of the device or activation or deactivation of device functions. When a device is in the locked state, the device may be said to be locked. In some embodiments, a device in the locked state may respond to a limited set of user inputs, including inputs corresponding to attempts to transition the device to a user interface unlocked state or inputs corresponding to powering off the device. In other words, a locked device responds to user input that corresponds to an attempt to transition the device to a user interface unlocked state or to powering off the device, but does not respond to user input that corresponds to an attempt to navigate between user interfaces. It should be understood that even if the device ignores user input, the device may still provide sensory feedback to the user (such as visual, auditory, or vibration feedback) upon detecting the input to indicate that the input will be ignored. However, a locked device may still respond to a limited class of inputs. The limited class may include inputs that the device determines correspond to attempts to transition the device to a user interface unlocked state, including inputs that invoke a continuity feature.
[0199] In a user interface unlocked state (hereinafter "unlocked state"), the device is in a normal operating state and detects and responds to user input corresponding to interaction with the user interface. A device in the unlocked state may be described as an unlocking device. The unlocking device detects and responds to user input for navigating through the user interface, entering data, and activating or deactivating functions. In embodiments in which the device includes a touchscreen, the unlocking device detects and responds to contacts through the touchscreen corresponding to navigating through the user interface, entering data, and activating or deactivating functions.
[0200] FIG. 5E illustrates another example of continuity between a cellular telephone 504 and a tablet computer 512, but with another exemplary application, in this case a web browsing application. FIG. 5E illustrates how the continuity feature can assist a user who is creating a long document. As shown, a cellular telephone 504 is displaying a web page 520 via a web browsing application. Because the cellular telephone 504 has a relatively small display screen, the user may desire to transition to a larger device within range, such as a tablet computer 512. Because the two devices are within range, the tablet computer 512 may wirelessly detect the proximity of the cellular telephone 504 and may receive usage information from the cellular telephone 504 regarding the active web browsing application. In response to this detection and the received usage information, the tablet computer 512 displays a continuity affordance 522. The continuity affordance 522 may include a thumbnail image indicating that the application to be launched is a web browsing application. When the affordance is selected, the tablet computer 512 launches that version of the web browsing application. Additionally, after launching the corresponding web browsing application, tablet computer 512 displays the portion of web page 520 that was displayed on cellular telephone 504. Thus, user 502 may continue reading where he or she left off. Note that because tablet computer 512 has a larger display screen, additional portion 521 of web page 520 may also be displayed for viewing.
[0201] In some embodiments, a user selects (e.g., invokes) a continuity affordance by swiping the affordance in a particular direction. In the example of FIG. 5D , an upward swipe is used to invoke continuity affordance 514. In this case, in response to a tap on the continuity affordance—which was insufficient to invoke the continuity feature—the device may make the continuity affordance bounce (via visual animation) to indicate to the user that a swipe is required to invoke the continuity feature. Optionally, the device may display a notice (explanatory text) to inform the user that a swipe is required. Optionally, device 100 may require the user to swipe the continuity affordance beyond a preset threshold distance to register the swipe as a selection. In this case, in response to a swipe shorter than the threshold, the device may make the affordance bounce, thereby suggesting to the user that a longer swipe is required to invoke the continuity feature. Optionally, the device may display a notice to inform the user that a longer swipe is required to invoke the continuity feature. Optionally, the device may display the notice only after the user has interacted with the affordance several times but failed to invoke the feature on any attempt. Alternatively, in some embodiments, the user selects the continuity affordance by tapping the affordance. In the example of Figure 5E, continuity affordance 522 may be selected by tapping.
[0202] 2. Exemplary User Interface for Invoking Continuity Functionality 5F-5N, attention is now directed to other ways in which affordances for invoking continuity functionality may be displayed. As shown in FIG. 5F, in some embodiments, continuity affordance 522 is displayed on user interface lock screen 523 when device 100a senses a compatible external device within range and transmitting relevant application usage data. (Device 100a may be device 100 in some embodiments.) The display of continuity affordance 522 may be temporary, such that continuity affordance 522 may disappear after some condition. For example, continuity affordance 522 may be removed from display after being displayed for a preset time (e.g., 8 seconds). As another example, continuity affordance 522 may be removed from display if the compatible external device moves out of range. Optionally, continuity affordance 522 is not displayed if the touch-sensitive display of device 100a is powered on after a preset time (e.g., 8 seconds) has elapsed since a compatible external device came into range, even if the device has transmitted associated application usage data. Optionally, continuity affordance 522 is displayed on lock screen 523 only if the compatible external device (or an active application thereon) has been used within a preset recent time (e.g., within the last 8 seconds).
[0203] 5F , in some embodiments, continuity affordance 526 permanently appears on user interface lock screen 525 of device 100b, meaning that the affordance is displayed whenever lock screen 525 is displayed. (Device 100b may be device 100 in some embodiments.) Persistent continuity affordance 526 may take on one visual appearance when a compatible device is nearby and continuity is possible. The affordance may take on a different visual appearance, for example, appear disabled, when no device is present to transition to. Persistent continuity affordance 526 may be used when it is desirable for the continuity feature to have an emphasized visual profile.
[0204] Also shown in FIG. 5F , in some embodiments, continuity affordance 526 appears on lock screen 527 of device 100c as a message in a queue of other system messages. (Device 100c may be device 100 in some embodiments.) As shown, device 100 may display notification messages informing the user of incoming messages, phone calls, calendar entries, etc. Device 100c may organize and queue these notification messages. In these embodiments, continuity affordance 526 may similarly appear to inform the user of the device's ability to launch a corresponding application. This arrangement may be used when it is desired for the continuity feature to have a reduced and limited visual profile.
[0205] FIG. 5G illustrates the incorporation of a continuity feature using a biometric reader. Device 100 has a biometric reader that is used to unlock the device. In FIG. 5G, device 100 is equipped with a biometric reader in the form of fingerprint reader 534. Device 100 may be configured to unlock if fingerprint reader 534 reads a known fingerprint. To unlock, if device 100 detects a compatible external device within range and transmitting relevant application usage data, device 100 may display dialog 536. Dialog 536 asks the user whether continuity is desired. If the user indicates "yes," device 100 launches a corresponding application using continuity techniques, as discussed above. For example, device 100 may launch a messaging application that corresponds to the messaging application running on device 504 (FIG. 5A). The launched messaging application may display the content of the message shown in user interface screen 506 (FIG. 5A).
[0206] FIG. 5H illustrates the incorporation of a continuity feature into a multitasking user interface screen in some embodiments. As shown, device 100 may display multitasking screen 538. Multitasking screen 538 may be a user interface for selecting an application to become the active application on device 100 from multiple active applications. To this end, multitasking screen 538 may include affordances 540, 542, and 544 corresponding to various applications. Affordances 540, 542, and 544 are located on the left, center, and right sides of screen 538, respectively. Center affordance 542 may represent the most recently active application on device 100. Right affordance 544 may represent a background application running on device 100. A user's selection (e.g., tapping) of affordance 542 or 544 may cause the corresponding application to become the active application on device 100.
[0207] The leftmost affordance 540 may be reserved for invoking a continuity feature. Affordance 540 may be displayed when device 100 detects a compatible external device within range and transmitting relevant application usage data. In the illustrated example, a user selection (e.g., tap) of affordance 540 causes device 100 to launch a corresponding application using continuity techniques. For example, in response to a user selecting affordance 540, device 100 may launch a messaging application corresponding to the messaging application last used on device 504 (FIG. 5A). The launched messaging application may display the contents of the message shown in user interface screen 506 (FIG. 5A).
[0208] To help the user identify the applications represented by affordances 540, 542, and 544, each affordance may display a thumbnail image of the application. For example, affordance 540 may display a thumbnail image of user interface screen 506 to indicate the content of a message (e.g., the state of the application) that will be launched in response to the user selecting the affordance. Additionally, to help the user select affordance 540, multitasking screen 538 may be scrollable. That is, for more convenient selection, the user may swipe center affordance 542 to the right to bring affordance 540 to the center of the screen.
[0209] FIG. 5I illustrates the inclusion of continuity features in another user interface screen. An operating system of a device such as device 100 may provide several “pervasive” screens, meaning that the screens are generally accessible within the operating environment. Incorporating continuity affordances into one or more of these pervasive screens may promote the accessibility of continuity features throughout the operating environment. As shown in FIG. 5I , while device 100 is displaying user interface screen 550, a user may swipe downward from the top of screen 550, as indicated by arrow 546, to display notification screen 530. (User interface screen 550 may be an application screen or a “home” screen.) Alternatively, a user may swipe right from the left edge of screen 550, as indicated by arrow 547, to display search screen 560. Alternatively, a user may swipe upward from the bottom of screen 550, as indicated by arrow 548, to display control screen 570. (In this specification, the left, top, and bottom edges are on a plane that is flush with the display screen.)
[0210] Notification screen 530 may display notification messages informing the user of device activity, such as an incoming message, a phone call, or a calendar entry. Notification screen 530 may also include a continuity affordance 532 to notify the user of the device's ability to launch an application corresponding to an active application on an external device within range. The user may select (e.g., tap) continuity affordance 532 to launch the corresponding application on device 100. Search screen 560 may display search criteria and a collection of related search results. The search results may include continuity affordance 562. The user may select (e.g., tap) continuity affordance 562 to launch the corresponding application on device 100. Control screen 570 may have affordances for controlling the operation of device 100, such as switches for toggling airplane mode, wireless communication, cellular communication, peer-to-peer communication, etc. In some embodiments, control screen 570 may include a continuity affordance 572 for toggling the continuity feature on / off, such that a user can select (e.g., tap) continuity affordance 572 to enable / disable the continuity feature. In some embodiments, control screen 570 includes a continuity affordance 572 for launching an application using the continuity feature, such that a user can select (e.g., tap) continuity affordance 572 to launch a corresponding application on device 100.
[0211] The exact swipe gestures (or, more generally, input modalities) used to invoke notification screen 530, search screen 560, and control screen 570 may vary in different embodiments. For example, in some embodiments, notification screen 530 and control screen 570 may be invoked in the reverse manner from that shown in FIG. 5I. That is, a downward swipe from the top edge (e.g., 546) may invoke control screen 570, and an upward swipe from the bottom edge (e.g., 548) may invoke notification screen 530. In another embodiment, device 100 may distinguish between swipe gestures based on whether the swipe is made from the edge of the touch-sensitive display. That is, device 100 may display notification screen 530 in response to a downward swipe from the top edge of the touch-sensitive display, but display search screen 560 in response to a downward swipe starting from the periphery of the touch-sensitive display. Incorporating continuity affordances into one or more of these pervasive screens can advantageously advance the accessibility of continuity features throughout the operating environment.
[0212] 5J-5L illustrate further placements of continuity affordances in various user interfaces. In FIG. 5J, laptop 599 has its user interface locked and requires the entry of a password to unlock. Laptop 599 may be device 300 in some embodiments. In addition to password entry field 574, lock screen 576 includes continuity affordance 578. In the illustrated example, continuity affordance 578 is located in the upper right corner of lock screen 576, where a notification message is also displayed. In some embodiments, a user may invoke the continuity feature by entering the appropriate password in password entry field 574 and clicking continuity affordance 578. That is, in response to receiving a valid password and a mouse event (e.g., click) on continuity affordance 578, device 599 may unlock and launch an application corresponding to an active application on the device within range. In some embodiments (not shown in FIG. 5J), continuity affordance 578 is located within password entry field 574. In some embodiments (not shown in FIG. 5J), lock screen 576 includes thumbnail images showing applications that would be launched if continuity affordance 578 were invoked. In some embodiments, after unlocking, laptop 599 prompts the user for confirmation before launching the corresponding application.
[0213] Also shown in FIG. 5J, laptop 599 may be unlocked and display desktop screen 580. Desktop screen 580 may have dock area 582. Dock area 582 may have icons for launching applications. Dock area 582 may include continuity affordance 584 for launching applications using continuity functionality. In some embodiments, continuity affordance 584 permanently resides in area 582. In some embodiments, continuity affordance 584 is inserted into dock area 582 when a compatible device comes within range of laptop 599 and sends associated application usage data to laptop 599. Optionally, continuity affordance 584 may bounce for increased visibility when inserted into dock area 582. In some embodiments, continuity affordance 584, when displayed, is the left-most icon on dock area 582. In some embodiments, continuity affordance 584 is displayed for a predetermined period of time (e.g., 8 seconds) and then removed from area 582. In response to a user selecting (e.g., tapping) continuity affordance 584, laptop 599 may launch an application based on the continuity feature, which may be, for example, another version of a messaging application active on cellular phone 504 (FIG. 5A).
[0214] An example of a dock area 582 is the Dock provided by the Mac OS operating system manufactured by Apple Inc. of Cupertino, California. However, the dock area 582 may take other visual forms in different embodiments. For example, the dock area 582 may be shown as a bar running across the bottom or other edge of the screen, with icons for launching applications anchored to it.
[0215] As shown in FIG. 5K , desktop screen 580 displayed by laptop 599 may have menu bar 586. Menu bar 586 may include affordance 588 for launching applications using continuity functionality. In some embodiments, continuity affordance 588 is the right-most icon on menu bar 586. In some embodiments, continuity affordance 588 permanently resides in menu bar 586. In some embodiments, continuity affordance 588 is inserted into menu bar 586 when a compatible device comes within range of laptop 599 and sends associated application usage data to laptop 599. Continuity affordance 588 may bounce (e.g., via animation) to enhance visibility when inserted into menu bar 586. In some embodiments, continuity affordance 588 is removed from menu bar 586 after being displayed for a predetermined period of time (e.g., 8 seconds). In response to the user selecting (e.g., tapping) continuity affordance 588, laptop 599 may launch an application based on the continuity feature, which may be, for example, another version of a messaging application active on device 504 (FIG. 5A).
[0216] An example of a menu bar 586 shown in FIG. 5K is the menu bar called "Finder" in the Mac OS operating system manufactured by Apple Inc. of Cupertino, California. However, menu bar 586 may reside in different locations on the screen in different embodiments, and thus may be located away from the top edge of the screen. For example, menu bar 586 may be shown as a bar running across the bottom of the screen, containing hierarchical menus for launching application programs. In such an implementation, continuity affordance 588 may appear, for example, in the lower right area of the screen.
[0217] Also shown in FIG. 5K, laptop 599 may be unlocked and display desktop screen 590. Desktop screen 590 may include icon grid 591. Icon grid 591 may include icons for launching applications on laptop 599. For example, icon grid 591 may include icon 592 for launching a web browsing application on device 100. Icon grid 590 may also include continuity affordance 593 for launching an application using the continuity feature. In response to a user selecting (e.g., tapping) continuity affordance 593, laptop 599 may launch an application based on the continuity feature, such as a different version of a messaging application that is active on device 504 (FIG. 5A).
[0218] As shown in FIG. 5L , laptop 599 may display a task switching user interface (task switcher) 594 for switching between different applications running on laptop 599. Task switcher 594 includes affordances that represent active applications. As shown, task switcher 594 may include affordance 596 that represents an application that is active in the foreground of laptop 599. Task switcher 594 may also include affordance 597 that represents a background application on laptop 599. Task switcher 594 may also include continuity affordance 595 for launching an application using a continuity function. In some embodiments, continuity affordance 595 is the left-most affordance on task switcher 594. In some embodiments, continuity affordance 595 is the right-most affordance on task switcher 594.
[0219] In some embodiments, laptop 599 displays task switcher 594 in response to a command-tab input from the user. In some embodiments, laptop 599 displays task switcher 594 in response to a keystroke or combination of keystrokes, such as an alt-tab input from the user. In some embodiments, laptop 599 displays task switcher 594 in response to placing a mouse cursor in a corner of the screen (e.g., the bottom right). A user may select continuity affordance 595 to invoke the continuity function. In some embodiments, a user may hold the command key (or alt key) and repeatedly press the tab key to reach continuity affordance 595 across the displayed affordances. In response to each press of the tab key, laptop 599 may highlight (or otherwise visually highlight) another affordance in task switcher 594. When continuity affordance 595 is visually highlighted, the user may release the command key (or alt key) to select continuity affordance 595. In response to a user selection, laptop 599 may launch an application based on the continuity feature, for example, a different version of the messaging application active on device 504 (FIG. 5A).
[0220] 5L, laptop 599 may be unlocked and display desktop screen 581. If laptop 599 receives application usage information from a compatible electronic device within range, it may display notification message 583. A user may select (e.g., click on) notification message 583 to launch an application that corresponds to an active application running on a compatible electronic device within range.
[0221] In some embodiments, a device may "push" an application onto another device. FIGS. 5M-5N are diagrams showing example user interfaces illustrating this "push" technique according to some embodiments. As shown in FIG. 5M, a cellular telephone 504 is running a messaging application 511. In addition, a device 199 (which may be device 100 or device 300 in some embodiments) is within communication range of the cellular telephone 504. The cellular telephone 504 may display an affordance 513 for pushing the messaging application 511 onto the device 199. In response to a user selecting "yes" in the affordance 513, the cellular telephone 504 sends information (e.g., instructions) to the device 199 that identifies the messaging application 511. The cellular telephone 504 may also send status information regarding the messaging application 511, such information identifying the content of the message being displayed. As shown in FIG. 5N, in some embodiments, a continuity affordance 519 appears on the device 199 and may be selected by the user to launch the corresponding messaging application. In some embodiments (not shown), the device 199 may automatically launch a corresponding messaging application after receiving the identification information from the cellular telephone 504. In some embodiments, a confirmation message 517 is displayed on the cellular telephone 504 that the push command has been sent to the device 199.
[0222] 17A-17E depict another exemplary user interface for the "push" technique, according to some embodiments. As shown in FIG. 17A, a wearable electronic device 1704 worn by a user 1702 may obtain and display a web page 1706. In some embodiments, the wearable electronic device 1704 may be device 460 (FIG. 4C). Due to its form factor, the wearable electronic device 1704 may display a relatively small portion of the web page 1706 by default to enhance readability. However, a user may desire to view a larger portion of the web page.
[0223] Attention now turns to how, in this situation, a user can view a larger portion of web page 1706 on a compatible device. As shown in FIG. 17B, when user 1702 walks within wireless range of tablet computer 1708, device 1704 may communicate with tablet computer 1708 to determine that the two devices are compatible for continuity. As depicted in FIG. 17C, user 1702 may touch the touch-sensitive display of wearable electronic device 1704 (as indicated by contact 1710) while web page 1706 is displayed to invoke menu 1711. Menu 1711 may include affordances for invoking various features of device 1704, including affordance 1712 for invoking continuity features between wearable electronic device 1704 and tablet computer 1708.
[0224] In some embodiments, the wearable electronic device 1704 may require that the contact 1710 be a contact on the touch-sensitive display with a maximum intensity that exceeds a threshold intensity. In other words, if the maximum intensity of the contact 1710 does not exceed a threshold, the device 1704 may invoke another feature, such as a feature to obtain and display another webpage if the location of the selection 1710 corresponds to a hyperlink on a webpage.
[0225] 17D with reference to FIG. 17C , when user 1702 selects affordance 1712 (as indicated by contact 1714), wearable electronic device 1704 may send information (e.g., instructions) to tablet computer 1708 identifying the web browsing application active in the foreground of wearable electronic device 1704. Wearable electronic device 1704 may also send an indication of the displayed web page, such as 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, i.e., tablet computer 1708, may display continuity affordance 1716 upon obtaining the instruction.
[0226] 17E , when user 1702 selects affordance 1716, for example, by swiping the affordance upward, tablet computer 1708 launches an application corresponding to a web browser running on wearable electronic device 460. For example, tablet computer 1708 may launch Safari® by Apple Inc. of Cupertino, California. Optionally, when launched, the application may display web page 1706. Optionally, when launched, the application may also display web page 1706 such that the (relatively small) portion displayed on wearable electronic device 1704 is a portion of the (relatively larger) portion displayed on tablet computer 1708. Because tablet computer 1708 has a wider display screen than wearable electronic device 460, a larger portion of web page 1706 may be displayed at one time.
[0227] 18A-18D depict another exemplary user interface for the “push” technique, according to some embodiments. As shown in FIG. 18A , a wearable electronic device 1804 worn by a user 1802 may display an alert 1806. In some embodiments, the wearable electronic device 1804 may be device 460. The alert 1806 may be a message informing the user about incoming application data, which in the illustrated example is a message. An alert may be useful to alert the user to the availability of new application data when the corresponding application for processing the data is not running in the foreground of the device. While the user 1802 can view the incoming message on the wearable electronic device 1804, the user may sometimes prefer to view the body of the message on a larger external computing device.
[0228] Let us now turn our attention to how a user 1804 does so. Looking at FIG. 18B , if a compatible external device is available, the user may invoke the continuity feature by touching alert 1806 via touch input 1808 and sliding in a particular direction, e.g., left or right. In response, the wearable electronic device 1804 may send information (e.g., instructions) identifying the incoming message to a nearby device. In FIG. 18C , in some embodiments, the wearable electronic device 1804 displays a confirmation message 1810 indicating that a push instruction has been sent to the external device. After obtaining the instruction, the external device, i.e., tablet computer 1812, may display a continuity affordance 1814.
[0229] As shown in Figure 18C, a user may invoke the continuity feature on tablet computer 1812 by selecting affordance 1814 (e.g., by sliding the affordance upward). In response to selecting affordance 1814, device 1812 may launch an application to view an incoming message 1822 corresponding to alert 1806 (Figure 18A). When launched, the application displays incoming message 1822 on the screen of tablet computer 1812. Messages® by Apple Inc. of Cupertino, California is an exemplary application that may be launched in this situation to view a copy of incoming message 1822.
[0230] It should be understood that device 199 (FIGS. 5M-5N), device 1708 (FIGS. 17A-17E), device 1812 (FIGS. 18A-18D), and / or device 1910 (FIGS. 19A-19C) can display affordances for invoking continuity features in a variety of ways. For example, any one of the example user interfaces for displaying continuity affordances shown in FIGS. 5C-5L may be used.
[0231] 3. Correspondence between applications 6A and 6B, attention is now directed to correspondence between applications that may be invoked using the continuity feature. FIG. 6A illustrates using the continuity feature to launch on one device a different version of an application running on another device. As shown in FIG. 6A, cellular telephone 504 is running a web browsing application displaying web page 602. Cellular telephone 504 is within range of tablet computer 512 and sends application usage data to tablet computer 512 identifying the active web browsing application and web page 602. When a user invokes the continuity feature on tablet computer 512, the tablet launches its own version of the web browsing application showing the same web page 602. That is, in this example, two applications are considered to be corresponding if they are different versions of the same application. In some embodiments, cellular telephone 504 may be running Safari for iPhone, and tablet computer 512 may be running Safari for iPad. In some embodiments, tablet computer 512 may be running a portable document editor, and cellular telephone 504 may be running a portable document viewer.
[0232] FIG. 6B illustrates using the continuity feature to launch a related, yet distinct, application on one device from an application currently running (or recently running) on another device. One example of a related application is a companion application. For example, if a music management application 604 (e.g., iTunes® by Apple Inc. of Cupertino, California) is playing a song on a laptop 599 and a user invokes the continuity feature from a cellular phone 504, the cellular phone 504 may launch a music player 606 to play the same song. Another example of a related application is an application that controls another application. For example, if a music player application is running on the laptop 599 and continuity is invoked on the cellular phone 504, the cellular phone 504 may launch a remote control having transport controls for controlling the music player that is active on the laptop 599.
[0233] Turning attention now to the application state continuum, a "state" of an application, as used herein, refers to a mode or condition of the application. Exemplary application states include conditions that present individual screens, modes or configuration settings in which the application is operating, conditions that display individual locations within the application's navigation hierarchy, conditions that display individual portions or locations within a document, etc.
[0234] Returning to FIG. 5B , when the cellular telephone 504 communicates with the tablet computer 512, the cellular telephone 504 may transmit certain usage data to the tablet computer 512. The usage data may indicate the state of active applications on the cellular telephone 504, such as a messaging application. The receiving tablet computer 512 may use this information to launch the corresponding application in the same application state. For example, if a user is viewing the content of a message on the cellular telephone 504 and continuity is invoked on the tablet computer 512, the tablet computer 512 may launch the corresponding messaging application and display the same message content. If the message content is long enough to require scrolling, the tablet computer 512 may display the message content in the same scroll position based on the position information provided by the usage data.
[0235] If the active application on cellular phone 504 is presenting information from a separate location in the application's navigation hierarchy (e.g., a separate screen or subscreen within the application), tablet computer 512 may display the same application screen or subscreen when continuity is invoked on tablet computer 512. For example, if cellular phone 504 is displaying a screen for configuring advanced messaging settings, tablet computer 512 may display the same configuration screen when the user invokes continuity from tablet computer 512. In other words, the display state may persist even after continuity.
[0236] If continuity is invoked on tablet computer 512 when the active application on cellular phone 504 is in a particular mode, tablet computer 512 may launch the corresponding application in the same mode. For example, if cellular phone 504 is playing video (i) in landscape orientation, (ii) with a 16:9 aspect ratio, (iii) with audio muted, and (iv) with closed captioning enabled, and continuity is invoked on tablet computer 512, tablet computer 512 may launch the corresponding video player to play the same video from the same position using settings (i) through (iv).
[0237] Attention is now directed to using the continuity feature to invoke applications related to points of interest, with reference to FIGS. 6C and 6D. FIG. 6C illustrates using the continuity feature to launch an application related to an electronic point of interest. For example, the electronic point of interest may be a consumer electronic device such as a smart television. The consumer electronic device may emit a wireless signal to communicate its identification information to a cellular telephone 504. When a user invokes the continuity feature from the cellular telephone 504, the cellular telephone 504 may use this information to launch an application for controlling the smart television. The application may be, for example, a smart television controller 610. FIG. 6D illustrates using the continuity technique to launch an application related to a physical point of interest. For example, the cellular telephone 504 may be within designated range of a landmark such as the Statue of Liberty. In this situation, when the continuity feature is invoked on the cellular telephone 504, the cellular telephone 504 may launch an application 612 that describes the statue and its history. In some embodiments, the physical proximity of the cellular phone 504 to the point of interest may be determined based on GPS measurements from the cellular phone 504 and the known coordinates of the point of interest. In some embodiments, the cellular phone 504 may receive and account for local broadcasts made for the point of interest, such as signals received from Wi-Fi "beacons" broadcasting local information about the point of interest.
[0238] In some cases, the cellular phone 504 may be within wireless coverage of a point of interest and an application may be available on the internet, but the application may not yet be installed on the cellular phone 504. For example, a user may bring the cellular phone 504 into a coffee shop that offers a mobile ordering and / or payment application that is not yet installed on the cellular phone. In some embodiments, if the user invokes a continuity feature on the cellular phone 504 in this situation, the cellular phone 504 may display an affordance for downloading and installing the associated application. In this manner, the user may instruct the cellular phone 504 to obtain the associated application by simply selecting (e.g., tapping) the affordance. In some embodiments, if the user invokes a continuity feature on the cellular phone 504 in this situation, the cellular phone 504 may direct the user to an intermediate source of information about the point of interest, such as a web page, so that the user can make a more informed decision about whether to install an application associated with the point of interest. In these situations, the cellular phone 504 may obtain a deep link and display or access the deep link for further consideration by the user.
[0239] Because there may be a many-to-one correspondence between available applications and points of interest, the cellular phone 504 may consider additional factors when determining which application is most relevant for continuity. In some embodiments, the cellular phone 504 considers the frequency of use of several applications at particular points of interest to identify the exact application to launch. For example, the cellular phone 504 may discover that a fitness (sometimes called exercise) application and a gym membership application are both associated with the user's gym. Furthermore, the device 100 may determine that the user accesses the exercise application more frequently while at the gym. In response to this determination, the device 100 may launch the exercise application when the user invokes the continuity feature on the cellular phone 504 upon arriving at the gym.
[0240] In some embodiments, the cellular phone 504 considers the time of day to identify the exact application to launch. For example, the cellular phone 504 may find that a train time application and a news application are both frequently accessed while a user is waiting at a commuter train station. Further, the cellular phone 504 may determine that a user tends to access the news application while waiting at the station in the morning. In response to this determination, the cellular phone 504 may launch the news application when the user arrives at the station in the morning, invoking the continuity feature.
[0241] In some embodiments, the cellular phone 504 considers other contextual information to identify the exact application to be launched. For example, when the phone's GPS sensor indicates that the device is traveling at a high speed and the cellular phone's 504 RF circuitry indicates that the device is connected to a Bluetooth device named "CAR MEDIA," the cellular phone 504 may discover that an in-car entertainment application is frequently used. Thus, if the user invokes the continuity feature on the cellular phone 504 in this situation, the cellular phone 504 may launch the in-car entertainment application accordingly.
[0242] Further techniques for determining relationships between applications may be found in the following co-pending provisional applications: U.S. Patent Application No. 62 / 005,781, filed May 30, 2014, entitled "ACTIVITY CONTINUATION BETWEEN ELECTRONIC DEVICES," U.S. Patent Application No. 62 / 005,793, filed May 30, 2014, entitled "COMPANION APPLICATION FOR ACTIVITY COOPERATION," U.S. Patent Application No. 62 / 005,751, filed May 30, 2014, entitled "PREDEFINED WIRELESS PAIRING," and U.S. Patent Application No. 62 / 005,755, filed May 30, 2014, entitled "OPERATING-MODE TRANSITIONS BASED ON ADVERTISING INFORMATION," the contents of which are incorporated herein by reference in their entireties.
[0243] 19A-19C, attention will now be directed to the use of continuity features in combination with voice-based intelligent automated assistant features. Siri®, manufactured by Apple Inc. of Cupertino, California, is an exemplary intelligent automated assistant. Intelligent automated assistant techniques are also described, for example, in U.S. Utility Application No. 12 / 987,982, filed January 10, 2011, for "Intelligent Automated Assistant," the entire disclosure of which is incorporated herein by reference.
[0244] As shown in FIG. 19A, a user 1902 may provide a voice command 1903 to a wearable electronic device 1904, which, in some embodiments, may be device 460 (FIG. 4C). The voice command 1903 may be a question about directions to a nearby coffee shop. In some embodiments, after receiving the voice command 1903, the wearable electronic device 1904 may transmit information indicative of the voice command to an external device within range, in this example, a cellular phone 1910. In some embodiments, the cellular phone 1910 may be device 100 (FIG. 1).
[0245] In response to receiving a command from the wearable electronic device 1902, the cellular phone 1910 may display an affordance 1912 to invoke the continuity feature. If the user invokes continuity via affordance 1912 (e.g., by a swipe gesture as shown in FIG. 19B ), the cellular phone 1910 may display information obtained in response to the voice command 1906. In the illustrated example, the cellular phone 1910 displays turn-by-turn navigation 1914 to a nearby coffee shop in response to command 1903.
[0246] The information transmitted by the wearable electronic device 1904 to the external device (cellular phone) 1910 may, in some examples, include data representing the voice command 1906. The information transmitted by the wearable electronic device 1904 to the external device (cellular phone) 1910 may, in some examples, include data representing a web service for obtaining information responsive to the voice command 1906. The information transmitted by the wearable electronic device 1904 to the external device (cellular phone) 1910 may, in some examples, include data representing information obtained in response to the voice command 1906.
[0247] These examples serve to illustrate that while the division of labor between the wearable electronic device 1904 and the external device 1910 for processing and providing intelligent automated responses varies from embodiment to embodiment, individual embodiments still allow a user to choose how they want to obtain intelligent automated responses on one or more associated devices. The ability to decide whether to ask the assistant a question using a highly portable device (e.g., the wearable electronic device 1904) and later receive the assistant's response on the same device and / or on a compatible external device (e.g., the cellular phone 1910) is particularly beneficial to the user, as one of the two devices may have audio / visual capabilities (e.g., speakers, high-resolution screen) better suited to presenting the resulting response.
[0248] 19C , in some embodiments, the wearable electronic device 1904 may display turn-by-turn directions 1914 after receiving a voice command 1906. However, the amount of information displayed at one time may be limited by the form factor of the wearable electronic device 1904. A more complete display of the turn-by-turn directions 1914 may be displayed by the cellular phone 1910 if the user selects the continuity feature on the cellular phone 1910, since the cellular phone 1910 has a larger display screen. In this way, the user can conveniently invoke voice assistant functionality through one device and can review the information provided by the voice assistant using one or both devices, as desired.
[0249] 4. Clarification Situations may arise where a device cannot definitively determine which application should be launched based on incoming data, historical data, and / or contextual information. This situation can arise due to multiple external devices being within range of the device. Consider FIG. 7A , which shows a first external device 702 running a messaging application 704 and an external device 706 running a web browsing application. The user is interacting with both devices in that the user is intermittently texting while browsing the web. Both devices are within range of a tablet computer 710. Both devices are also wirelessly transmitting usage data about applications 704 and 708 to the tablet computer 710. In this situation, the tablet computer 710 may not be able to determine which of the two applications is more relevant to the user.
[0250] In some embodiments, tablet computer 710 may identify a more recently used application as the more relevant application in the continuity. That is, when continuity is invoked on tablet computer 710, if the user last accessed messaging application 704 6 seconds ago and last accessed a web browser 10 seconds ago, tablet computer 710 will launch the corresponding messaging application because messaging application 704 was more recently accessed by the user. Optionally, tablet computer 710 may display a thumbnail representation of the messaging application in continuity affordance 714 to indicate the application that will be launched.
[0251] However, this treatment may not always be appropriate. For example, a user may be focused on web browsing on a larger tablet computer 710. In some embodiments, when faced with this situation, the tablet computer 710 may display additional information to allow the user to make an informed choice of which application to launch. For example, the tablet computer 710 may display two or more continuity affordances on the lock screen to indicate the availability of multiple applications from which to follow. As shown in FIG. 7B , the tablet computer 710 may display affordances 714 and 716 to signal the need for the user to select between the two.
[0252] 7C-7E illustrate how tablet computer 710 may respond to selection (e.g., tapping) of a group of affordances 714 and 716. In some embodiments, as shown in FIG. 7C , when tablet computer 710 receives user input (e.g., tapping) on a group of affordances, tablet computer 710 visually ungroups the affordances and translates the affordances on the screen so that the affordances are properly spaced so that they can be individually selected using a touch object. Ungrouping may include visually translating affordances 714 and 716 from a grouped position to an ungrouped position. In response to a user selecting (e.g., swiping or tapping) continuity affordance 714, tablet computer 710 may launch a messaging application corresponding to the messaging application of device 702. In response to a user selecting continuity affordance 716, tablet computer 710 may launch a web browsing application corresponding to the web browsing application of device 706.
[0253] 7D , tablet computer 710 displays clarification screen 718 when a user selects affordance 714 or 716. Clarification screen 718 may display continuity affordances 714 and 716 for individual selection. In response to a user selecting (e.g., swiping or tapping) continuity affordance 714, tablet computer 710 may launch a messaging application corresponding to the messaging application of device 702. In response to a user selecting continuity affordance 716, tablet computer 710 may launch a web browsing application corresponding to the web browsing application of device 706.
[0254] In some embodiments, as shown in FIG. 7E , the tablet computer 710 displays a clarification screen 720. The clarification screen 720 may organize, by category, the applications available for launch through the continuity feature. The categorization of the applications may be based on the relationship between each available application and each application running on the external device. For example, corresponding applications that are different versions of an application running on the external device may be placed under one category 722, while related (e.g., companion) applications may be placed under another category 724. Additionally, applications that are displayed due to the device's proximity to a point of interest may be displayed as yet another application category 726.
[0255] In some embodiments, as shown in FIG. 7F , the tablet computer 710 displays a clarification screen 730. The clarification screen 730 may organize the applications available for launch through the continuity feature into a tabbed list. The categorization of applications by tab may be based on the relationship between the available applications and applications running on the external device. The tab title may identify the relationship. Affordances for launching applications in each category (tab) are displayed when the tab to which they belong is selected. For example, affordances for invoking the corresponding application are displayed under tab 732, and affordances for invoking a related (e.g., companion) application are displayed under tab 734.
[0256] In some embodiments, as shown in FIG. 7G , the tablet computer 710 displays a clarification screen 740. The clarification screen 740 may list applications corresponding to each compatible external device within communication range. As shown, the clarification screen 740 includes a heading 742 representing a first external device (e.g., 702 in FIG. 7A ). The clarification screen 740 also includes a heading 744 representing a second external device (e.g., 706 in FIG. 7A ). The clarification screen 740 also includes a heading 745 representing a third external device. Under each heading, the tablet computer 710 also displays affordances representing applications corresponding to applications running (and / or having run) on the respective external device.
[0257] As shown in FIG. 7G , affordances 746, 748, and 750 represent corresponding versions of three applications running (and / or having run) on external device 702. Optionally, the ordering of affordances 746, 748, and 750 may reflect how recently each application was used by the user relative to one another. Similarly, affordances listed together under heading 744 represent corresponding versions of applications running (and / or having run) on external device 706. Screen 740 may be scrollable in one direction (e.g., horizontally) to reveal additional external devices. Screen 740 may be scrollable in another direction (e.g., vertically) to reveal more application affordances.
[0258] In some embodiments, the clarification screen 740 may include a "Favorites" heading (not shown). Under this "Favorites" heading, the tablet computer 710 may display an affordance indicating applications designated as favorites by the user. In some embodiments, the tablet computer 710 may organize this information into a tabbed list (not shown). Such a tabbed list may look similar to the tabbed list shown in FIG. 7F, where applications corresponding to each external device may be displayed under a tab.
[0259] It should be noted that when applications are launched as described with reference to Figures 7A-7G, the device 710 places the successive applications in the same application state as the corresponding applications on the external device, as discussed above.
[0260] In particular, the user interface described in Figures 7A-7G provides a user with a powerful means of cataloging their application usage across multiple electronic devices and seamlessly transitioning between each of these application usages. For example, consider a situation in which a user owns a compatible cellular phone, a tablet computer, and a laptop computer. A user interface screen modeled after clarification screen 740 (Figure 7G) would provide a particularly powerful means for the user to transition between different devices depending on which device is best suited for a given task, by presenting the user with a universe of possible open (and optionally closed) applications that follow.
[0261] 5. Improved wireless communication techniques In some embodiments, wireless communication occurs via a peer-to-peer wireless communication protocol, such as Bluetooth and / or Bluetooth Low Energy (BTLE), for the continuity function. In some embodiments, wireless communication for the continuity function utilizes more than one communication protocol. For example, WiFi may be used in addition to BTLE. In these embodiments, initial communication between the two devices may occur via a low-power protocol, such as BTLE, even though this protocol may provide slower data rates. Subsequent communication may occur over a relatively high-speed secondary network, such as WiFi.
[0262] As an example, a laptop computer may obtain usage information via BTLE indicating that an in-range iPhone® is being used to compose an email message. If a user invokes email continuity on the laptop computer, the two devices may communicate over WiFi to transmit application data, including the original portion of the email and any accompanying attachments, so that the user can continue composing on the laptop without interruption. Through this bifurcated approach, a device can poll other compatible devices within range without placing excessive power requirements on the device's power system. Also, the reduced power consumption rate may allow for more frequent polling. At the same time, a faster channel is reserved for data-intensive communications, such as the communication of application data and / or application state information.
[0263] In some embodiments, the usage information transmitted over the slower communication protocol includes device authentication information. The authentication information may include a token or other identifier 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 may be an iCloud ID provided by Apple Inc. of Cupertino, California, which may in turn be associated with an email address. Two compatible devices may decide whether to allow or deny use of the continuity feature based (at least in part) on whether the devices are associated with the same user ID. In this way, privacy between devices owned by different (but physically nearby) users can be maintained, and continuity between devices of different users can be prevented (or allowed), as desired.
[0264] In some embodiments, the device may further conserve power by allowing the user to specify how much continuity information should be automatically obtained from compatible devices within wireless range. In these embodiments, the device may receive initial information identifying one or more compatible devices via a low-power peer-to-peer communication protocol. In response to detecting the external device and the initial information, the device may display a continuity affordance that informs the user about the potential availability of the continuity feature. However, the displayed continuity affordance may have a visual appearance that indicates that the continuity feature is not fully enabled. In particular, the device may refrain from obtaining additional use and / or application data information from the compatible device unless it receives a user instruction to do so. The user may do so by selecting (e.g., tapping) the displayed affordance. In response to the user's selection, the device may obtain additional use and / or application data information that will allow the device to launch the corresponding application in the appropriate application state. Additionally, the device may update the visual appearance of the affordance to indicate that continuity with the compatible device is now enabled and may be invoked from the device (e.g., by swiping).
[0265] This power saving technique is illustrated in FIGS. 8A-8C. In FIG. 8A, device 504 and device 199 are within communication range and are compatible for continuity purposes. While the two devices are within range, device 199 initially receives a first portion of usage information from device 504 indicating its presence and support for continuity features. This initial communication 801 may occur via a low-power communication protocol such as BTLE. In response to receiving this first portion of usage information, device 199 displays a continuity affordance 802 having a disabled appearance. A user may select (e.g., tap) affordance 802 to enable further communication 803 between the devices for continuity purposes. Referring to FIG. 8B, in response to a user selecting affordance 802, device 199 obtains an additional, second portion of usage information from device 504. The additional usage information may indicate, among other things, the use of a messaging application 804 on device 504 and the status of messaging application 804. Device 199 may also change the visual appearance of affordance 802 so that it appears enabled. Optionally, device 199 may include a thumbnail image showing application 804 along with affordance 802. The user may then swipe or otherwise activate affordance 802 to launch the corresponding application on device 199, as shown in FIG. 8C .
[0266] FIG. 9 is a flow diagram illustrating a process 900 for transitioning between two electronic devices. Process 900 may be performed on an electronic device having a display and a touch-sensitive surface, such as device 100 ( FIG. 1 ), device 300 ( FIG. 3 ), device 460 ( FIG. 4C ), and device 470 ( FIG. 4D ). At block 902, the device detects an external device via wireless communication. The external device is running or has run a first application. At block 904, the device receives usage information from the external device indicating use of the first application on the external device. Optionally, the usage information includes usage statistics about when and how long the first application was used. Optionally, the usage information indicates a state of the first application. At block 906, in response to detecting the external device and receiving the usage information, the device displays an affordance on its screen. Optionally, at block 906, the device may determine how long the affordance has been displayed and cease displaying the affordance after a predetermined time. At block 908, the device receives input data representing a user selection of the displayed affordance. At block 910, 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. In some embodiments, the second application may correspond to the first application in that the second application is a different version of the first application. In some embodiments, the second application may correspond to the first application in that both applications have at least one application feature in common. 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 in that the second application is a companion to the first application and / or provides features that control the operation of the first application.Also, optionally, when the device launches the second application, the device places the second application in the same application state as the first application.
[0267] In some embodiments (e.g., touchscreen embodiments), the device performing process 900 has a touchscreen display, with the touch-sensitive surface on the display. In some embodiments (e.g., non-touchscreen embodiments), the device has a display that is separate from the touch-sensitive surface. Thus, the appearance of the continuity affordance 514 displayed in block 908 may differ. For example, in touchscreen embodiments, the displayed affordances may be similar to those shown in FIGS. 5C-5I, 7A-7G, and / or 8A-8C. In non-touchscreen embodiments, the displayed affordances may be similar to those shown in FIGS. 5J-5L. The exact user input to which the device responds during block 910 may also differ. For example, in touchscreen embodiments, the displayed affordances may respond to touch input using a touch object, such as a tap, long press, flick, swipe, or other applicable touch gesture. In non-touchscreen embodiments, the displayed affordances may respond to mouse events generated using a mouse or equivalent input device, such as a click, double-click, drag, etc. Combinations of these embodiments are also possible. For example, a touchscreen device may respond to an external wireless mouse, and thus a touchscreen embodiment of the device may also respond to mouse and mouse cursor input techniques. Similarly, a non-touchscreen device may respond to a touch-sensitive surface (e.g., a touchpad), and thus a non-touchscreen embodiment may also respond to touch input. In other words, a tablet computer is fully capable of displaying one of the screens shown in Figures 5J-5L and launching an application using continuity functionality in response to wireless keyboard / mouse input. Similarly, a laptop computer has a touch-sensitive display and is therefore fully capable of providing the screens shown in Figures 5C-5I, 7A-7G, and / or 8A-8C and responding to keyboard, mouse, and touch input.Other combinations are possible.
[0268] FIG. 43 is a flow diagram illustrating a process 4300 for transitioning between two electronic devices. Process 4300 may be performed on an electronic device with a touch-sensitive display, such as device 100 (FIG. 1), device 300 (FIG. 3), device 460 (FIG. 4C), and device 470 (FIG. 4D). At block 4302, the electronic device detects an external device while the user interface is in a locked state. The external device is running a first application, and the first application is in a state. At block 4304, the device displays an affordance corresponding to the first application for a predetermined period of time. At block 4306, the device detects a contact on the touch-sensitive display at the location of the displayed affordance. At block 4308, the device launches a second application in response to the contact, and the second application corresponds to the first application. The state of the second application corresponds to the state of the first application.
[0269] FIG. 44 is a flow diagram illustrating a process 4400 for transitioning between two electronic devices. Process 4400 may be performed on an electronic device with a touch-sensitive display and buttons, such as device 100 (FIG. 1), device 300 (FIG. 3), device 460 (FIG. 4C), and device 470 (FIG. 4D). At block 4402, the electronic device detects an external device. The external device is running a first application, and the first application is in a state. At block 4404, the electronic device detects a double press of the button. At block 4406, in response to detecting the double press, the electronic device displays a left affordance, a center affordance, and a right affordance, where the left affordance is for launching a second application on the electronic device that corresponds to the first application, and the center affordance represents the application most recently used on the electronic device. At block 4408, the electronic device detects a contact on the left affordance. At block 4410, the electronic device launches a second application on the electronic device in response to the contact on the left affordance, the state of the second application corresponding to the state of the first application.
[0270] FIG. 45 is a flow diagram illustrating a process 4500 for transitioning between two electronic devices. Process 4500 may be performed on an electronic device with a touch-sensitive display, such as device 100 (FIG. 1), device 300 (FIG. 3), device 460 (FIG. 4C), and device 470 (FIG. 4D). At block 4502, the device detects an external device. The external device is running 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, the downward swipe being from the top edge of the touch-sensitive display. At block 4506, in response to the downward swipe, the electronic device displays an affordance for launching a second application on the electronic device, the second application corresponding to the first application. At block 4508, the electronic device detects a contact on the affordance. At block 4510, the electronic device launches a second application on the electronic device in response to the contact on the affordance, the state of the second application corresponding to the state of the first application.
[0271] FIG. 46 is a flow diagram illustrating a process 4600 for transitioning between two electronic devices. Process 4600 may be performed on an electronic device with a touch-sensitive display and a biometric reader, such as device 100 (FIG. 1), device 300 (FIG. 3), device 460 (FIG. 4C), and device 470 (FIG. 4D). At block 4602, the electronic device detects an external device while the user interface is in a locked state. The external device is running 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, the electronic device unlocks the electronic device in response to receiving the biometric input. At block 4608, after unlocking, the electronic device displays an affordance corresponding to the first application. At block 4610, the electronic device detects a contact on the displayed affordance. At block 4612, in response to detecting the contact, the electronic device launches a second application, the second application corresponding to the first application, and a state of the second application corresponding to a state of the first application.
[0272] FIG. 47 is a flow diagram illustrating a process 4700 for transitioning between two electronic devices. Process 4700 may be performed on an electronic device with a touch-sensitive display, such as device 100 (FIG. 1), device 300 (FIG. 3), device 460 (FIG. 4C), and device 470 (FIG. 4D). At block 4702, the device detects an external device. The external device is running a first application, and the first application is in a state. At block 4704, the electronic device displays multiple application icons on the touch-sensitive display. At block 4706, the electronic device detects a rightward swipe on the touch-sensitive display, the rightward swipe being from the left edge of the touch-sensitive display. At block 4708, in response to the rightward swipe, the electronic device displays an affordance for launching a second application on the electronic device, the second application corresponding to the first application. At block 4710, the electronic device detects a contact on the affordance. At block 4712, the electronic device launches a second application on the electronic device in response to the contact on the affordance. The state of the second application corresponds to the state of the first application.
[0273] FIG. 48 is a flow diagram illustrating a process 4800 for transitioning between two electronic devices. Process 4800 may be performed on an electronic device with an input device for controlling a user interface cursor, such as device 100 (FIG. 1), device 300 (FIG. 3), device 460 (FIG. 4C), and device 470 (FIG. 4D). At block 4802, the electronic device detects an external device while the user interface is in a locked state. The external device is running a first application, and the first application is in a state. At block 4804, the electronic device displays a password entry field and an affordance corresponding to the first application. At block 4806, the electronic device receives the password. At block 4808, the electronic device detects a mouse event on the displayed affordance. At block 4810, in response to receiving the password and detecting the mouse event, the electronic device launches a second application, the second application corresponding to the first application. The state of the second application corresponds to the state of the first application.
[0274] FIG. 49 is a flow diagram illustrating a process 4900 for transitioning between two electronic devices. Process 4900 may be performed on an electronic device with a keyboard, such as device 100 (FIG. 1), device 300 (FIG. 3), device 460 (FIG. 4C), and device 470 (FIG. 4D). At block 4902, the electronic device detects an external device, where the external device is running 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 on the keyboard and a key press of a second key on the keyboard simultaneously. At block 4906, the electronic device displays a plurality of affordances in response to the simultaneous key presses, including an affordance identifying multiple active applications on the electronic device and an affordance 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 a second key, (ii) while holding the first key, and (iii) thereafter releasing both the first key and the second key. At block 4910, the electronic device launches a second application in response to the sequence of keyboard inputs. The state of the second application corresponds to the state of the first application.
[0275] FIG. 50 is a flow diagram illustrating a process 5000 for transitioning between two electronic devices. Process 5000 may be performed on an electronic device equipped with an input device for controlling a user interface cursor, such as device 100 (FIG. 1), device 300 (FIG. 3), device 460 (FIG. 4C), and device 470 (FIG. 4D). At block 5002, the electronic device detects an external device. The external device is running a first application, and the first application is in a state. At block 5004, the electronic device detects a cursor moving to a corner of a screen of the electronic device. At block 5006, in response to detecting the cursor movement, the electronic device displays a plurality of affordances, including an affordance identifying a plurality of active applications on the electronic device and an affordance for launching a second application corresponding to the first application. At block 5008, the electronic device detects a sequence of inputs including (i) cursor movement over an affordance for launching the second application and (ii) a mouse event on the affordance. In block 5010, the electronic device launches a second application in response to detecting the sequence of inputs, the state of the second application corresponding to the state of the first application.
[0276] FIG. 51 is a flow diagram illustrating a process 5100 for migrating between two electronic devices. The process 5100 may be performed on 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 (FIG. 3), device 460 (FIG. 4C), and device 470 (FIG. 4D). At block 5102, the electronic device detects an external device. The external device is running a first application, and the first application is in a certain state. At block 5104, the electronic device displays, on a portion of the display screen, multiple application icons for launching the multiple applications on the electronic device. At block 5106, the electronic device displays, on a portion of the display screen, an icon for launching a second application corresponding to the first application. At block 5108, the electronic device detects cursor movement over the displayed icon and a mouse event on the displayed icon. At block 5110, the electronic device launches the second application in response. The state of the second application corresponds to the state of the first application.
[0277] FIG. 52 is a flow diagram illustrating a process 5200 for transitioning between two electronic devices. Process 5200 may be performed on an electronic device equipped with an input device for controlling a user interface cursor, such as device 100 (FIG. 1), device 300 (FIG. 3), device 460 (FIG. 4C), and device 470 (FIG. 4D). At block 5202, the electronic device detects an external device. The external device is running a first application, and the first application is in a state. At block 5204, the electronic device displays a menu bar, the menu bar including an icon for launching a second application corresponding to the first application. At block 5206, the electronic device detects cursor movement over the displayed icon and a mouse event on the displayed icon. At block 5208, the electronic device launches the second application in response. The state of the second application corresponds to the state of the first application.
[0278] FIG. 10 is a flow diagram illustrating a process 1000 for transitioning between two electronic devices. Process 1000 may be performed on an electronic device with a display and a touch-sensitive surface, such as device 100 ( FIG. 1 ), device 300 ( FIG. 3 ), and device 460 ( FIG. 4C ). At block 1002, the device detects an external device via wireless communication. The external device is running or has run a first application. At block 1004, the device receives usage information from the external device indicating use of the first application on the external device. This usage information may be received using a first wireless communication protocol. At block 1006, the device receives application data for the first application from the external device. This usage information may be received using a second communication protocol different from the first 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 affordance. Optionally, at block 1008, the device may determine how long the affordance has been displayed and cease displaying the affordance after a predetermined time. At block 1010, the device receives input data representing a user selection of the displayed affordance. 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 displayed by the first application.
[0279] In some embodiments, the usage information received in block 1004 is received using a low-power wireless communication protocol, and the information received in block 1006 is received using a high-power wireless communication protocol. The low-power wireless communication protocol may have a low bandwidth and / or a low data transfer rate, such that the low-power wireless communication protocol has a low data transfer capability. In some embodiments, the low-power wireless communication protocol is a peer-to-peer protocol, and the high-power wireless communication protocol is a local area network protocol. In some embodiments, the low-power wireless communication protocol is a Bluetooth or Bluetooth Low Energy protocol, and the high-power wireless communication protocol is an IEEE 802.11x WiFi protocol.
[0280] The division of labor between communications under the first and second wireless communication protocols may vary. In other words, if a device needs to receive information in a certain area to provide continuity functionality, how much of that information is transmitted over the first wireless communication protocol rather than the second wireless communication protocol may vary between embodiments and / or within individual embodiments based on factors such as battery life on the device. In some embodiments, device authentication information is transmitted over the first wireless communication protocol. In some embodiments, device identification information is transmitted over the first wireless communication protocol, and application data, such as the contents of an email manuscript, is transmitted over the second wireless communication protocol. The device identification information may be, for example, a Bluetooth token, a user ID such as Apple's iCloud® ID, or an email address.
[0281] Further details regarding the transfer of information in support of continuity features may be found in the following co-pending provisional applications: U.S. Patent Application No. 62 / 005,781, filed May 30, 2014, entitled "ACTIVITY CONTINUATION BETWEEN ELECTRONIC DEVICES," U.S. Patent Application No. 62 / 005,793, filed May 30, 2014, entitled "COMPANION APPLICATION FOR ACTIVITY COOPERATION," U.S. Patent Application No. 62 / 005,751, filed May 30, 2014, entitled "PREDEFINED WIRELESS PAIRING," and U.S. Patent Application No. 62 / 005,755, filed May 30, 2014, entitled "OPERATING-MODE TRENSIONS BASED ON ADVERTISING INFORMATION," the contents of which are incorporated herein by reference in their entireties.
[0282] FIG. 11 is a flow diagram illustrating a process 1100 for transitioning between two electronic devices. Process 1000 may be performed on an electronic device with a display and a touch-sensitive surface, such as device 100 (FIG. 1), device 300 (FIG. 3), and device 460 (FIG. 4C). At block 1102, the device detects proximity between itself and a point of interest. At block 1104, the device determines whether the proximity is within a threshold range. At block 1106, in accordance with a determination that the proximity is within the threshold range, the device displays an affordance on the screen. At block 1108, the device receives input data representing a selection of the displayed affordance. At block 1110, in response to receiving the input data, the device launches an application on the electronic device associated with the point of interest.
[0283] In some embodiments, the device is locked at block 1102 and unlocked at block 1110. The point of interest may be electronic or may be a physical landmark with an electronic device identifying its location. If the point of interest is an electronic device, then at block 1110 the device may launch an application to control the electronic point of interest. For example, if the point of interest is a smart TV, then at block 1110 a remote control application for the TV may be launched. If the point of interest is a physical landmark, then at block 1110 the device may launch an application related to the landmark. For example, the device may launch a tourist brochure for the landmark at block 1110.
[0284] Optionally, at block 1110, device 100 may consider other factors when determining which application to launch. As discussed above, device 100 may consider contextual information, such as time and frequency of access, when determining which application to launch. Also, as discussed above, device 100 may discover that the desired application is not yet installed. In these situations, device 100 may proceed to block 1112 and download, install, and launch the application. Alternatively, device 100 may display additional information to help the user decide whether to install an application.
[0285] FIG. 12 is a flow diagram illustrating a process 1200 for selecting an application to launch when multiple applications are available for continuity purposes. Process 1200 may be performed on an electronic device with a display and a touch-sensitive surface, such as device 100 ( FIG. 1 ), device 300 ( FIG. 3 ), and device 460 ( FIG. 4C ). At block 1202, the device detects a first external device via wireless communication. The first external device may be running a first application. The first application may have a state. At block 1204, the device detects a second external device, separate from the first external device, via wireless communication. The second external device is running a second application. The second application may have a state. At block 1206, the device displays at least one affordance on the screen of the electronic device based on detecting the first external device and the second external device. The displayed affordance may have the visual appearance of the user interface screens shown in Figures 7A-7G, for example. At block 1208, the device receives input data representing a user selection of an affordance of the at least one displayed affordance. 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 may be a version of the first application or the second application.
[0286] FIG. 13 is a flow diagram illustrating a process 1300 for transitioning between two electronic devices. Process 1300 may be performed on an electronic device with a display and a touch-sensitive surface, such as device 100 ( FIG. 1 ), device 300 ( FIG. 3 ), and device 460 ( FIG. 4C ). At block 1302, the device is running a first application and detects an external device via a wireless communication protocol. At block 1304, the device displays a push affordance on the screen to instruct 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 affordance. At block 1308, in response to detecting the user selection, the device sends an instruction to the external device, causing the external device to display an affordance for launching the second application on the external device.
[0287] FIG. 14 is a flow diagram illustrating a process 1400 for transitioning between two electronic devices. Process 1400 may be performed on an electronic device with a display and a touch-sensitive surface, such as device 100 (FIG. 1), device 300 (FIG. 3), and / or device 460 (FIG. 4C). At block 1402, the device detects an external device via wireless communication. The external device is running a first application. At block 1404, the device receives a first portion of usage information from the external device indicating that the first application was used by a user on the external device during a time interval. At block 1406, in response to detecting the external device and receiving the first portion of usage information, the device displays an affordance on the screen of the electronic device. At block 1408, the device detects a user selection of the displayed affordance. At block 1410, in response to detecting the user selection, the device (i) modifies the visual appearance of the displayed affordance and (ii) obtains a second portion of usage information related to the first application from the external device. At block 1412, the device detects user input on the modified affordance. At block 1414, in response to receiving the user input, the device launches a 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.
[0288] FIG. 15 is a flow diagram illustrating a process 1500 for migrating between multiple electronic devices. Process 1500 may be performed on an electronic device with a display and a touch-sensitive surface, such as device 100 ( FIG. 1 ), device 300 ( FIG. 3 ), and / or device 460 ( FIG. 4C ). At block 1502, the device receives first data from a first external device via wireless communication, the first data representing a first plurality of applications that are running and / or have run on the first external device. At block 1504, the device displays a first plurality of affordances representing the first plurality of applications, the plurality of affordances including a first affordance corresponding to the first application of the first external device. At block 1506, the device detects a user selection of the first affordance. At block 1508, in response to detecting the user selection of the first affordance, the device launches a first local application on the electronic device. The first local application is a version of the first application.
[0289] In addition to receiving information from the first external device, the local device performing process 1500 may receive information from a second external device. Optionally, process 1500 may include block 1510, during which the device receives second data representing a second plurality of applications running and / or having run on the second external device from the second external device via wireless communication. Further, at block 1512, the device may display a second plurality of affordances representing the second plurality of applications, including a second affordance corresponding to the second application of the second external device. Further, at block 1514, the device may detect a user selection of the second affordance and, in response, launch a second local application on the electronic device, where the local application is a version of the second application.
[0290] Note that in some embodiments, the first and second affordances represent applications of the first and second external devices and may be displayed together on the same screen. This user interface may have the visual appearance of screen 740 of FIG. 7G, for example. From this screen, a user can identify various applications running on nearby devices. From this screen, the user may also choose to continue their work on the local device by invoking a corresponding application on the local device. In this manner, process 1500 provides a powerful means of registering a user's application usage across multiple electronic devices, allowing the user to seamlessly transition from using one device to using another. For example, consider a situation in which a single user owns a compatible cellular phone, a tablet computer, and a laptop computer. By having the device perform process 1500 to display clarification screen 740 (FIG. 7G), the user may be able to easily transition between different devices to the local device, which may be better suited to the task at hand.
[0291] 20 is a flow diagram illustrating a process 2000 for transferring between two electronic devices. In some embodiments, process 2000 may be performed on an electronic device with a display and a touch-sensitive surface capable of detecting the intensity of a touch contact. In some embodiments, process 2000 may be performed on an electronic device with a display and a touch-sensitive surface capable of determining a proxy for the force or pressure of a contact on the touch-sensitive surface. Example devices that may perform process 2000 may include device 100, device 300, and device 460 (FIGS. 1, 3, and 4C).
[0292] At block 2002, a first touch contact is detected on a touch-sensitive surface. The first contact has a first maximum intensity. The location of the first contact on the touchscreen 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, processing continues to block 2006, where the corresponding application is launched. If the first maximum intensity is above the threshold intensity, processing continues to block 2005, where a feature other than launching the corresponding application is performed. For example, in some embodiments, a context-sensitive menu is displayed.
[0293] At block 2008, a second contact may be detected on the touch-sensitive surface, the second contact having a second maximum intensity. At block 2010, a determination is made as to whether the second maximum intensity exceeds a threshold intensity. If the second maximum intensity exceeds the threshold intensity, processing continues to block 2012, where an instruction may be transmitted to the external device via wireless communication. The instruction may cause the external device to display an affordance for launching a second application on the external device that corresponds to the first application. In some embodiments, the second contact and the transmitting of the instruction are separated by one or more intermediate steps. For example, the user may be asked to select an additional affordance (e.g., an on-screen icon) after the second contact in order for the instruction to be transmitted. The additional affordance may be labeled to indicate to the user that the user is attempting to “push” information from one electronic device to another. If the second maximum intensity is below the threshold intensity, processing continues to block 2011, where features other than transmitting the instruction to launch the second application are performed. For example, in some embodiments, a feature of the first application may be invoked.
[0294] FIG. 21 is a flow diagram illustrating a process 2100 for transitioning between two electronic devices. In some embodiments, process 2100 may be performed on an electronic device with a display and a touch-sensitive surface, such as device 100, device 300, and device 460 (FIGS. 1, 3, and 4C). An application may be installed and executable on the device. At block 2102, application data for the installed application may be obtained while the installed application is not displayed (e.g., while the application is not active in the foreground). At block 2104, an alert indicating the obtained application data may be displayed. For example, the installed application may be Messages® manufactured by Apple Inc. of Cupertino, California, the obtained application data may be an incoming text message, and the alert may include text notifying the user of the incoming text message. At block 2106, a swipe of the alert may be detected. At block 2108, in response to determining that the detected movement is substantially in the first direction, instructions may be transmitted to the external device via wireless communication. The instructions may provide information for the external device to display an affordance for launching a second application on the external device that corresponds to the first application. The instructions may instruct the external device to display the affordance. As used herein, an "alert" may be consistent with a graphical user interface object in the form of text and images.
[0295] FIG. 22 is a flow diagram illustrating a process 2200 for transitioning between two electronic devices. In some embodiments, process 2200 may be performed on an electronic device with a display and a microphone, such as device 100, device 300, and device 460 (FIGS. 1, 3, and 4C). The electronic device may have an intelligent automated assistant that responds to voice input received via the microphone. At block 2202, the voice input may be detected. The voice input may include a voiced request for information. At block 2204, an external device within wireless communication range may be detected. At block 2206, instructions may be transmitted to the external device via wireless communication, at least in part, in response to detecting the voice input and detecting the external device. The instructions may provide information for the external device to display an affordance for displaying the requested information. The instructions may instruct the external device to display the affordance.
[0296] FIG. 53 is a flow diagram illustrating a process 5300 for transitioning between two electronic devices. Process 5300 may be performed on an electronic device with a touch-sensitive display and a microphone, such as device 100 (FIG. 1), device 300 (FIG. 3), device 460 (FIG. 4C), and device 470 (FIG. 4D). At block 5302, the electronic device detects audio input from the microphone. The audio input may include a vocal request for information. At block 5304, the electronic device detects an external device via wireless communication. At block 5306, the electronic device transmits an instruction to the external device via wireless communication in response at least in part to detecting the audio input and detecting the external device. The instruction causes the external device to display an affordance for displaying the requested information.
[0297] It should be understood that the particular order in which the operations in FIGS. 9-15 and 20-22 are described is exemplary and is not intended to indicate the only order in which the operations may be performed. Those skilled in the art will recognize various ways to reorder the operations described herein. For the sake of brevity, these details will not be repeated here. Additionally, it should be noted that aspects of processes 900-1500 (FIGS. 9-15) and processes 2000-2200 (FIGS. 20-22) may be interwoven. For example, process 900 describes receiving input on both touchscreen and non-touchscreen devices. Touchscreen and non-touchscreen devices may be used to perform one or more of processes 1000-1500 and 2000-2200 (FIGS. 10-15 and 20-22). Thus, the input techniques described with respect to process 900 may also be relevant to processes 1000 through 1500 and processes 2000 through 2200. For the sake of brevity, the permutations of user input techniques will not be repeated.
[0298] The operations in the above information processing methods may be implemented by executing one or more functional modules in an information processing device, such as a general-purpose processor or an application-specific chip. These modules, combinations of these modules, and / or combinations thereof with general hardware (e.g., as described above with respect to Figures 1A, 1B, 3, 4C, and 4D) are all included within the scope of protection of the present invention.
[0299] 16 is a diagram illustrating example functional blocks of some embodiments of an electronic device 1600 that performs the above-described features. As shown in FIG. 16 , 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 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 from the RF unit 1606 representing external devices within wireless communication range and display affordances of a graphical user interface on the touch-sensitive surface unit 1604. In some embodiments, the continuity unit 1610 is configured to analyze the received data to determine a corresponding application to launch on the device 1600 as well as the application state. Also, in some embodiments, the continuity unit 1610 may be configured to analyze the received data to determine an application state so that the corresponding application may be launched under that state. The application unit 1612 may be configured to launch the corresponding application in a desired state.
[0300] The functional blocks of device 1600 may optionally be implemented by hardware, software, or a combination of hardware and software to implement the principles of the various examples described above. As will be appreciated by those skilled in the art, the functional blocks described in FIG. 16 may optionally be combined or divided into sub-blocks to implement the principles of the various examples described above. Thus, the description herein optionally supports any possible combinations or divisions or further definitions of the functional blocks described herein.
[0301] According to some embodiments, FIG. 23 is an exemplary functional block diagram of an electronic device 2300 configured in accordance with the principles of the various embodiments described above. According to some embodiments, the functional blocks of the electronic device 2300 are configured to perform the techniques described above. The functional blocks of the electronic device 2300 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various examples described above. As will be appreciated by those skilled in the art, the functional blocks described in FIG. 23 are optionally combined or divided into sub-blocks to implement the principles of the various examples described above. Accordingly, the description herein optionally supports any possible combinations or divisions or further definitions of the functional blocks described herein.
[0302] 23 , an electronic device 2300 includes a display unit 2320 and an optional touch-sensitive surface unit 2322 connected to a processing unit 2326. The touch-sensitive surface unit 2322 optionally combines with the display unit 2320 to form a touchscreen 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 also includes an application state retrieval unit 2340 and a swipe distance determination unit 2342.
[0303] The processing unit 2326 is configured to detect, via wireless communication, an external device that is running or has run the first application (e.g., using the external device detection unit 2330), receive usage information from the external device (e.g., using the data receiving unit 2332) indicating use of the first application on the external device, enable (e.g., using the display enabling unit 2334) display of an affordance on a screen of the electronic device 2300 (e.g., the display enabling unit 2334) in response to detecting the external device and receiving the usage information, detect (e.g., using the input detection unit 2336) a user selection of the displayed affordance, and launch (e.g., using the application launching unit 2338) a second application corresponding to the first application on the electronic device 2300 in response to detecting the user selection.
[0304] In some embodiments, the processing unit 2326 is further configured to cease displaying the affordance after a predetermined time (eg, using the display enabling unit 2334).
[0305] In some embodiments, the first application was used on the external device within a predetermined time period prior to the current time.
[0306] In some embodiments, the first application and the second application have at least one application feature in common.
[0307] In some embodiments, the usage information indicates a state of the first application, and launching the second application includes invoking this state in the second application on the electronic device 2300 (e.g., using the application state invoking unit 2340).
[0308] In some embodiments, the state of the first application corresponds to a user interface screen of the first application.
[0309] In some embodiments, the state of the first application corresponds to a position in the navigation hierarchy of the first application.
[0310] In some embodiments, the state of the first application corresponds to a position within a document displayed in the first application.
[0311] In some embodiments, the state of the first application corresponds to whether a feature of the first application is active.
[0312] In some embodiments, the first application and the second application are multiple versions of the same application.
[0313] In some embodiments, the processing unit 2326 is further configured to enable the electronic device 2300 to receive application data of the first application (e.g., using the data receiving unit 2332) and display the application data via the second application (e.g., using the display enabling unit 2334).
[0314] In some embodiments, the application data represents a portion of a message to be displayed by the first application, and the processing unit 2326 is further configured to enable (e.g., using the display enablement unit 2334) the portion of the message to be displayed in the second application.
[0315] In some embodiments, the application data represents a portion of a web page, and the processing unit 2326 is further configured to enable (e.g., using the display enablement unit 2334) the portion of the web page for display via the second application.
[0316] In some embodiments, at least one application feature is accessible only from one of the first application and the second application.
[0317] In some embodiments, the first application executes at least one application feature, and launching the second application includes enabling (e.g., using the display enablement unit 2332) the display of an affordance for wirelessly invoking the application feature of the first application running on the external device from the second application running on the electronic device 2300.
[0318] In some embodiments, the electronic device 2300 includes a touch-sensitive display unit 2320, and the user selection of the displayed affordance is a swipe away from the displayed affordance.
[0319] In some embodiments, the processing unit 2326 is further configured to determine whether the swipe distance exceeds a threshold distance (e.g., using the swipe distance determination unit 2342), and to launch the second application (e.g., using the application launch unit 2338) only if it is determined that the swipe distance exceeds the threshold distance.
[0320] In some embodiments, the processing unit 2326 is further configured to cause the displayed affordance to bounce (e.g., using the display enabling unit 2334) according to a determination that the distance of the swipe does not exceed the threshold distance.
[0321] In some embodiments, the display unit 2320 and the touch-sensitive surface 2322 form a touchscreen display, the user selection of the displayed affordance is a tap on the displayed affordance, and the processing unit 2326 is further configured to launch a second application corresponding to the first application on the electronic device 2300 (e.g., using the application launch unit 2338) in response to detecting the tap.
[0322] In some embodiments, the display unit 2320 and the touch-sensitive surface 2322 form a touchscreen display, and user selection of the displayed affordance is a tap on the displayed affordance, and the processing unit 2326 is configured, in response to detecting the tap, to cause the displayed affordance to bounce (e.g., using the display enabling unit 2334) to indicate application launch, and to launch a second application (e.g., using the application launching unit 2338) only if a swipe of the displayed affordance is detected.
[0323] In some embodiments, the processing unit 2326 is further configured, in response to detecting the tap, to enable (e.g., using the display enablement unit 2334) the display of a notice informing the user to swipe the displayed affordance.
[0324] In some embodiments, the electronic device 2300 is a laptop or desktop computer.
[0325] In some embodiments, the electronic device 2300 is a tablet computer.
[0326] In some embodiments, the electronic device 2300 is a telephone.
[0327] In some embodiments, the external device is a laptop or desktop computer.
[0328] In some embodiments, the external device is a tablet computer.
[0329] In some embodiments, the external device is a telephone.
[0330] 9 are optionally implemented by the components shown in FIGS. 1A-1B or 23. For example, detect operation 902, receive operation 904, and display operation 906 may be implemented by event sorter 170, event recognizer 180, and event handler 190. Event monitor 171 in event sorter 170 detects contacts on touch-sensitive display 112, and event dispatch module 174 delivers the event information to application 136-1. Each event recognizer 180 in application 136-1 compares the event information with a respective event definition 186 to determine whether a first contact at a first location on the touch-sensitive surface corresponds to a predefined event or sub-event, such as activation of an affordance on the user interface. If the respective predefined event or sub-event is detected, event recognizer 180 invokes event handler 190 associated with the detection of the event or sub-event. The event handler 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 handler 190 accesses the respective GUI updater 178 to update what is being displayed by the application. Similarly, it will be apparent to those skilled in the art how other processes may be implemented based on the components shown in Figures 1A-1B.
[0331] According to some embodiments, FIG. 24 is an exemplary functional block diagram of an electronic device 2400 configured in accordance with the principles of the various embodiments described above. According to some embodiments, the functional blocks of the electronic device 2400 are configured to perform the techniques described above. The functional blocks of the electronic device 2400 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various examples described above. As will be appreciated by those skilled in the art, the functional blocks described in FIG. 24 are optionally combined or divided into sub-blocks to implement the principles of the various examples described above. Thus, the description herein optionally supports any possible combinations or divisions or further definitions of the functional blocks described herein.
[0332] 24 , an electronic device 2400 includes a touch-sensitive display unit 2420 and a processing unit 2426 connected to the touch-sensitive display unit 2420. In some embodiments, the processing unit 2426 includes an external device detection unit 2430, a display enablement unit 2432, an input detection unit 2434, and an application launching unit 2436. Optionally, the processing unit 2426 also includes a data receiving unit 2438 and a swipe distance determination unit 2440.
[0333] 24 , an electronic device 2400 includes a touch-sensitive display unit 2420 and a processing unit 2426 connected to the touch-sensitive display unit 2420. In some embodiments, the processing unit 2426 includes an external device detection unit 2430, a display enablement unit 2432, an input detection unit 2434, and an application launching unit 2436. Optionally, the processing unit 2426 also includes a data receiving unit 2438 and a swipe distance determination unit 2440.
[0334] The processing unit 2426 is configured to, while the electronic device 2400 is in the user interface lock state, detect (e.g., using the external device detection unit 2430) an external device running a first application, with the first application in a certain state, enable (e.g., using the display enablement unit 2432) display of an affordance corresponding to the first application on the touch-sensitive display unit 2420 for a predetermined time, detect (e.g., using the input detection unit 2434) a contact on the touch-sensitive display unit 2420 at the location of the displayed affordance, and launch (e.g., using the application launch unit 2436) a second application corresponding to the first application in response to the contact, wherein the state of the second application corresponds to the state of the first application.
[0335] In some embodiments, the contact is a tap on the displayed affordance, and the processing unit 2426 is further configured to launch a second application (e.g., using the application launch unit 2436) in response to detecting the tap.
[0336] In some embodiments, the contact is a tap on the displayed affordance, and the processing unit 2426 is further configured, in response to detecting the tap, to cause the affordance to bounce (e.g., using the display enable unit 2432) and not launch the second application.
[0337] In some embodiments, the contact is a swipe from the displayed affordance, and the processing unit 2426 is further configured to launch a second application (e.g., using the application launch unit 2436) in response to detecting the swipe.
[0338] In some embodiments, the processing unit 2426 is further configured to determine whether the swipe distance exceeds a threshold distance (e.g., using the swipe distance determination unit 2440), and to launch the second application from the locked state (e.g., using the application launch unit 2436) only if it is determined that the swipe distance exceeds the threshold distance.
[0339] In some embodiments, the processing unit 2426 is further configured to cause the affordance to bounce (eg, using the display enabling unit 2432) upon determining that the swipe distance does not exceed the threshold distance.
[0340] In some embodiments, the first application and the second application have at least one application feature in common.
[0341] In some embodiments, the state of the first application corresponds to a position in the navigation hierarchy of the first application.
[0342] In some embodiments, the state of the first application corresponds to a position within a document displayed in the first application.
[0343] In some embodiments, the state of the first application corresponds to whether a feature of the first application is active.
[0344] In some embodiments, the first application and the second application are multiple versions of the same application.
[0345] In some embodiments, the processing unit 2426 is further configured to enable the electronic device 2400 to receive application data of the first application (e.g., using the data receiving unit 2438) and display the application data via the second application (e.g., using the display enabling unit 2432).
[0346] In some embodiments, the application data represents a portion of a message to be displayed by the first application, and the processing unit 2426 is further configured to enable (e.g., using the display enablement unit 2432) the portion of the message to be displayed in the second application.
[0347] In some embodiments, the application data represents a portion of a web page, and the processing unit 2426 is further configured to enable (e.g., using the display enablement unit 2432) the portion of the web page for display via the second application.
[0348] In some embodiments, at least one application feature is accessible only from one of the first application and the second application.
[0349] In some embodiments, the first application executes at least one application feature, and launching the second application includes enabling (e.g., using display enablement unit 2432) display of an affordance for wirelessly invoking the application feature of the first application running on the external device from the second application running on electronic device 2400.
[0350] In some embodiments, the electronic device 2400 is a laptop or desktop computer.
[0351] In some embodiments, the electronic device 2400 is a tablet computer.
[0352] In some embodiments, the electronic device 2400 is a telephone.
[0353] In some embodiments, the external device is a laptop or desktop computer.
[0354] In some embodiments, the external device is a tablet computer.
[0355] In some embodiments, the external device is a telephone.
[0356] The operations described above with respect to FIG. 43 are optionally implemented by the components shown in FIGS. 1A-1B or 24. For example, detect external device operation 4302, display operation 4304, and detect input operation 4306 may be implemented by event sorter 170, event recognizer 180, and event handler 190. Event monitor 171 in event sorter 170 detects contacts on touch-sensitive display 112, and event dispatch module 174 delivers the event information to application 136-1. Each event recognizer 180 in application 136-1 compares the event information with a respective event definition 186 to determine whether a first contact at a first location on the touch-sensitive surface corresponds to a pre-configured event or sub-event, such as activation of an affordance on the user interface. If the respective pre-configured event or sub-event is detected, event recognizer 180 invokes an event handler 190 associated with the detection of the event or sub-event. The event handler 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 handler 190 accesses the respective GUI updater 178 to update what is being displayed by the application. Similarly, it will be apparent to those skilled in the art how other processes may be implemented based on the components shown in Figures 1A-1B.
[0357] According to some embodiments, FIG. 25 is an exemplary functional block diagram of an electronic device 2500 configured in accordance with the principles of the various embodiments described above. According to some embodiments, the functional blocks of electronic device 2500 are configured to perform the techniques described above. The functional blocks of electronic device 2500 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various examples described above. As will be appreciated by those skilled in the art, the functional blocks described in FIG. 25 are optionally combined or divided into sub-blocks to implement the principles of the various examples described above. Thus, the description herein optionally supports any possible combinations or divisions or further definitions of the functional blocks described herein.
[0358] 25 , an 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 unit 2520 and the button unit 2522. In some embodiments, the processing unit 2526 includes an external device detection unit 2530, a display enablement unit 2534, an input detection unit 2532, and an application launching unit 2536. Optionally, the processing unit 2526 also includes a data receiving unit 2538.
[0359] The processing unit 2526 is configured to detect (e.g., using the external device detection unit 2530) an external device that is running a first application and the first application is in a state; detect a double press of a button (e.g., using the input detection unit 2532); in response to detecting the double press, enable display (e.g., using the display enablement unit 2534) of a left affordance for launching a second application corresponding to the first application on the electronic device 2500, a middle affordance representing a most recently used application on the electronic device 2500, and a right affordance; detect a contact on the left affordance (e.g., using the input detection unit 2532); and in response to the contact on the left affordance, launch the second application on the electronic device 2500 (e.g., using the application launch unit 2536), wherein the state of the second application corresponds to the state of the first application.
[0360] In some embodiments, enabling the display of the left affordance includes enabling the display of a thumbnail image indicating the state of the first application (e.g., using the display enable unit 2534).
[0361] In some embodiments, the right affordance represents a third application running on the electronic device.
[0362] In some embodiments, the first application and the second application have at least one application feature in common.
[0363] In some embodiments, the state of the first application corresponds to a position in the navigation hierarchy of the first application.
[0364] In some embodiments, the state of the first application corresponds to a position within a document displayed in the first application.
[0365] In some embodiments, the state of the first application corresponds to whether a feature of the first application is active.
[0366] In some embodiments, the first application and the second application are multiple versions of the same application.
[0367] In some embodiments, the processing unit 2526 is further configured to enable the electronic device 2500 to receive application data of the first application (e.g., using the data receiving unit 2538) and display the application data via the second application (e.g., using the display enabling unit 2534).
[0368] In some embodiments, the application data represents a portion of a message to be displayed by the first application, and the processing unit 2526 is further configured to enable (e.g., using the display enablement unit 2534) the portion of the message to be displayed in the second application.
[0369] In some embodiments, the application data represents a portion of a web page, and the processing unit 2526 is further configured to enable (e.g., using the display enablement unit 2534) the portion of the web page for display via the second application.
[0370] In some embodiments, at least one application feature is accessible only from one of the first application and the second application.
[0371] In some embodiments, the first application executes at least one application feature, and launching the second application includes enabling (e.g., using display enablement unit 2534) display of an affordance for wirelessly invoking the application feature of the first application running on the external device from the second application running on electronic device 2500.
[0372] In some embodiments, the electronic device 2500 is a laptop or desktop computer.
[0373] In some embodiments, the electronic device 2500 is a tablet computer.
[0374] In some embodiments, the electronic device 2500 is a phone.
[0375] In some embodiments, the external device is a laptop or desktop computer.
[0376] In some embodiments, the external device is a tablet computer.
[0377] In some embodiments, the external device is a telephone.
[0378] The operations described above with respect to FIG. 44 are optionally implemented by the components shown in FIGS. 1A-1B or 25. For example, detect external device operation 4402, detect button press operation 4404, and display operation 4406 may be implemented by event sorter 170, event recognizer 180, and event handler 190. Event monitor 171 in event sorter 170 detects contacts on touch-sensitive display 112, and event dispatch module 174 delivers the event information to application 136-1. Each event recognizer 180 in application 136-1 compares the event information with a respective event definition 186 to determine whether a first contact at a first location on the touch-sensitive surface corresponds to a pre-configured event or sub-event, such as activation of an affordance on the user interface. If the respective pre-configured event or sub-event is detected, event recognizer 180 invokes event handler 190 associated with the detection of the event or sub-event. The event handler 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 handler 190 accesses the respective GUI updater 178 to update what is being displayed by the application. Similarly, it will be apparent to those skilled in the art how other processes may be implemented based on the components shown in Figures 1A-1B.
[0379] According to some embodiments, Figure 26 is an exemplary functional block diagram of an electronic device 2600 configured in accordance with the principles of the various embodiments described above. 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 above. As will be appreciated by those skilled in the art, the functional blocks described in Figure 26 are optionally combined or divided into sub-blocks to implement the principles of the various examples described above. Thus, the description herein optionally supports any possible combinations or divisions or further definitions of the functional blocks described herein.
[0380] 26 , an 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 enablement unit 2634, an input detection unit 2632, and an application launch unit 2636. Optionally, the processing unit 2626 also includes a data receiving unit 2638.
[0381] The processing unit 2626 is configured to detect (e.g., using the external device detection unit 2630) an external device that is running a first application and the first application is in a certain state, detect (e.g., using the input detection unit 2632) a downward swipe on the touch-sensitive display unit 2620 from a top edge of the touch-sensitive display unit 2620, in response to detecting the downward swipe, enable (e.g., using the display enablement unit 2634) display of an affordance for launching a second application corresponding to the first application on the electronic device 2600, detect a contact on the affordance (e.g., using the input detection unit 2632), and launch the second application on the electronic device 2600 in response to the contact on the affordance (e.g., using the application launch unit 2636), wherein the state of the second application corresponds to the state of the first application.
[0382] In some embodiments, enabling the display of the affordance includes enabling the display of a thumbnail image identifying the first application (eg, using display enable unit 2634).
[0383] In some embodiments, the first application was used on the external device within a predetermined time period prior to the current time.
[0384] In some embodiments, the first application and the second application have at least one application feature in common.
[0385] In some embodiments, the state of the first application corresponds to a position in the navigation hierarchy of the first application.
[0386] In some embodiments, the state of the first application corresponds to a position within a document displayed in the first application.
[0387] In some embodiments, the state of the first application corresponds to whether a feature of the first application is active.
[0388] In some embodiments, the first application and the second application are multiple versions of the same application.
[0389] In some embodiments, the processing unit 2626 is further configured to enable the electronic device 2600 to receive application data of the first application (e.g., using the data receiving unit 2332) and display the application data via the second application (e.g., using the display enabling unit 2334).
[0390] In some embodiments, the application data represents a portion of a message to be displayed by the first application, and the processing unit 2626 is further configured to enable (e.g., using the display enablement unit 2634) the portion of the message to be displayed in the second application.
[0391] In some embodiments, the application data represents a portion of a web page, and the processing unit 2626 is further configured to enable (e.g., using the display enablement unit 2634) the portion of the web page for display via the second application.
[0392] In some embodiments, at least one application feature is accessible only from one of the first application and the second application.
[0393] In some embodiments, the first application executes at least one application feature, and launching the second application includes enabling display of an affordance for wirelessly invoking the application feature of the first application running on the external device from the second application running on the electronic device 2600.
[0394] In some embodiments, the electronic device 2600 is a laptop or desktop computer.
[0395] In some embodiments, the electronic device 2600 is a tablet computer.
[0396] In some embodiments, the electronic device 2600 is a telephone.
[0397] In some embodiments, the external device is a laptop or desktop computer.
[0398] In some embodiments, the external device is a tablet computer.
[0399] In some embodiments, the external device is a telephone.
[0400] The operations described above with respect to FIG. 45 are optionally implemented by the components shown in FIGS. 1A-1B or 26. For example, detect external device operation 4502, detect swipe operation 4504, and display operation 4506 may be implemented by event sorter 170, event recognizer 180, and event handler 190. Event monitor 171 in event sorter 170 detects contacts on touch-sensitive display 112, and event dispatch module 174 delivers the event information to application 136-1. Each event recognizer 180 in application 136-1 compares the event information with a respective event definition 186 to determine whether a first contact at a first location on the touch-sensitive surface corresponds to a pre-configured event or sub-event, such as activation of an affordance on the user interface. If the respective pre-configured event or sub-event is detected, event recognizer 180 invokes event handler 190 associated with the detection of the event or sub-event. The event handler 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 handler 190 accesses the respective GUI updater 178 to update what is being displayed by the application. Similarly, it will be apparent to those skilled in the art how other processes may be implemented based on the components shown in Figures 1A-1B.
[0401] According to some embodiments, FIG. 27 is an exemplary functional block diagram of an electronic device 2700 configured in accordance with the principles of the various embodiments described above. According to some embodiments, the functional blocks of electronic device 2700 are configured to perform the techniques described above. The functional blocks of electronic device 2700 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various examples described above. As will be appreciated by those skilled in the art, the functional blocks described in FIG. 27 may optionally be combined or divided into sub-blocks to implement the principles of the various examples described above. Accordingly, the description herein optionally supports any possible combinations or divisions or further definitions of the functional blocks described herein.
[0402] 27 , an 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.
[0403] The processing unit 2726 is configured to, while the electronic device 2700 is in a user interface lock state, detect (e.g., using the external device detection unit 2630) an external device that is running a first application, with the first application in a state; receive biometric input from the biometric reader unit 2722 (e.g., using the data receiving unit 2732); unlock the electronic device 2700 (e.g., using the unlocking unit 2734) in response to receiving the biometric input; after unlocking, enable display of an affordance corresponding to the first application (e.g., using the display enabling unit 2736); detect a contact on the displayed affordance (e.g., using the input detection unit 2738); and, in response to detecting the contact, launch a second application corresponding to the first application (e.g., using the application launching unit 2740), wherein the state of the second application corresponds to the state of the first application.
[0404] In some embodiments, the biometric reader unit 2722 is a fingerprint reader.
[0405] In some embodiments, the first application was used on the external device within a predetermined time period prior to the current time.
[0406] In some embodiments, the first application and the second application have at least one application feature in common.
[0407] In some embodiments, the state of the first application corresponds to a position in the navigation hierarchy of the first application.
[0408] In some embodiments, the state of the first application corresponds to a position within a document displayed in the first application.
[0409] In some embodiments, the state of the first application corresponds to whether a feature of the first application is active.
[0410] In some embodiments, the first application and the second application are multiple versions of the same application.
[0411] In some embodiments, the processing unit 2726 is further configured to enable the electronic device 2700 to receive application data of the first application (e.g., using the data receiving unit 2732) and display the application data via the second application (e.g., using the display enabling unit 2736).
[0412] In some embodiments, the application data represents a portion of a message to be displayed by the first application, and the processing unit 2726 is further configured to enable (e.g., using the display enablement unit 2736) the portion of the message to be displayed in the second application.
[0413] In some embodiments, the application data represents a portion of a web page, and the processing unit 2726 is further configured to enable (e.g., using the display enablement unit 2736) the portion of the web page for display via the second application.
[0414] In some embodiments, at least one application feature is accessible only from one of the first application and the second application.
[0415] In some embodiments, the first application executes at least one application feature, and launching the second application includes enabling (e.g., using display enablement unit 2736) display of an affordance for wirelessly invoking the application feature of the first application running on the external device from the second application running on electronic device 2700.
[0416] In some embodiments, the electronic device 2700 is a laptop or desktop computer.
[0417] In some embodiments, the electronic device 2700 is a tablet computer.
[0418] In some embodiments, the electronic device 2700 is a telephone.
[0419] In some embodiments, the external device is a laptop or desktop computer.
[0420] In some embodiments, the external device is a tablet computer.
[0421] In some embodiments, the external device is a telephone.
[0422] The operations described above with respect to FIG. 46 are optionally implemented by the components shown in FIGS. 1A-1B or 27. For example, detect external device operation 4602, receive biometric input operation 4604, and unlock operation 4606 may be implemented by event sorter 170, event recognizer 180, and event handler 190. Event monitor 171 in event sorter 170 detects contacts on touch-sensitive display 112, and event dispatch module 174 delivers the event information to application 136-1. Each event recognizer 180 in application 136-1 compares the event information with a respective event definition 186 to determine whether a first contact at a first position on the touch-sensitive surface corresponds to a predefined event or sub-event, such as activation of an affordance on the user interface. If the respective predefined event or sub-event is detected, event recognizer 180 invokes an event handler 190 associated with the detection of the event or sub-event. The event handler 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 handler 190 accesses the respective GUI updater 178 to update what is being displayed by the application. Similarly, it will be apparent to those skilled in the art how other processes may be implemented based on the components shown in Figures 1A-1B.
[0423] According to some embodiments, FIG. 28 is an exemplary functional block diagram of an electronic device 2800 configured in accordance with the principles of the various embodiments described above. According to some embodiments, the functional blocks of the electronic device 2800 are configured to perform the techniques described above. The functional blocks of the electronic device 2800 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various examples described above. As will be appreciated by those skilled in the art, the functional blocks described in FIG. 28 are optionally combined or divided into sub-blocks to implement the principles of the various examples described above. Thus, the description herein optionally supports any possible combinations or divisions or further definitions of the functional blocks described herein.
[0424] 28 , an 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 enablement unit 2834, an input detection unit 2832, and an application launch unit 2836. Optionally, the processing unit 2826 includes a data receiving unit 2838.
[0425] The processing unit 2826 is configured to detect (e.g., using the external device detection unit 2830) an external device that is running a first application and the first application is in a state, enable display of a plurality of application icons on the touch-sensitive display unit 2820 (e.g., using the display enablement unit 2834), detect a rightward swipe on the touch-sensitive display unit 2820 from the left edge of the touch-sensitive display unit 2820 (e.g., using the input detection unit 2832), enable display of an affordance for launching a second application on the electronic device 2800 that corresponds to the first application in response to the rightward swipe (e.g., using the display enablement unit 2834), detect a contact on the affordance (e.g., using the input detection unit 2832), and, in response to the contact on the affordance, launch the second application on the electronic device 2800 (e.g., using the application launch unit 2836), wherein the state of the second application corresponds to the state of the first application.
[0426] In some embodiments, the first application was used on the external device within a predetermined time period prior to the current time.
[0427] In some embodiments, the first application and the second application have at least one application feature in common.
[0428] In some embodiments, the state of the first application corresponds to a position in the navigation hierarchy of the first application.
[0429] In some embodiments, the state of the first application corresponds to a position within a document displayed in the first application.
[0430] In some embodiments, the state of the first application corresponds to whether a feature of the first application is active.
[0431] In some embodiments, the first application and the second application are multiple versions of the same application.
[0432] In some embodiments, the processing unit 2826 is further configured to enable the electronic device 2800 to receive application data of the first application (e.g., using the data receiving unit 2838) and display the application data via the second application (e.g., using the display enabling unit 2834).
[0433] In some embodiments, the application data represents a portion of a message to be displayed by the first application, and the processing unit 2826 is further configured to enable (e.g., using the display enablement unit 2834) the portion of the message to be displayed in the second application.
[0434] In some embodiments, the application data represents a portion of a web page, and the processing unit 2826 is further configured to enable (e.g., using the display enablement unit 2834) the portion of the web page for display via the second application.
[0435] In some embodiments, at least one application feature is accessible only from one of the first application and the second application.
[0436] In some embodiments, the first application executes at least one application feature, and launching the second application includes enabling (e.g., using display enablement unit 2834) display of an affordance for wirelessly invoking the application feature of the first application running on the external device from the second application running on electronic device 2800.
[0437] In some embodiments, the electronic device 2800 is a laptop or desktop computer.
[0438] In some embodiments, the electronic device 2800 is a tablet computer.
[0439] In some embodiments, the electronic device 2800 is a telephone.
[0440] In some embodiments, the external device is a laptop or desktop computer.
[0441] In some embodiments, the external device is a tablet computer.
[0442] In some embodiments, the external device is a telephone.
[0443] The operations described above with respect to FIG. 47 are optionally implemented by the components shown in FIGS. 1A-1B or 28. For example, detect external device operation 4702, display operation 4704, and detect swipe operation 4706 may be implemented by event sorter 170, event recognizer 180, and event handler 190. Event monitor 171 in event sorter 170 detects contacts on touch-sensitive display 112, and event dispatch module 174 delivers the event information to application 136-1. Each event recognizer 180 in application 136-1 compares the event information with a respective event definition 186 to determine whether a first contact at a first location on the touch-sensitive surface corresponds to a pre-configured event or sub-event, such as activation of an affordance on the user interface. If the respective pre-configured event or sub-event is detected, event recognizer 180 invokes event handler 190 associated with the detection of the event or sub-event. The event handler 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 handler 190 accesses the respective GUI updater 178 to update what is being displayed by the application. Similarly, it will be apparent to those skilled in the art how other processes may be implemented based on the components shown in Figures 1A-1B.
[0444] According to some embodiments, Figure 29 is an exemplary functional block diagram of an electronic device 2900 configured in accordance with the principles of the various embodiments described above. According to some embodiments, the functional blocks of the electronic device 2900 are configured to perform the techniques described above. The functional blocks of the electronic device 2900 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various examples described above. As will be understood by those skilled in the art, the functional blocks described in Figure 29 are optionally combined or divided into sub-blocks to implement the principles of the various examples described above. Accordingly, the description herein optionally supports any possible combinations or divisions or further definitions of the functional blocks described herein.
[0445] 29 , an electronic device 2900 includes an optional display unit 2920, an input device unit 2922 for providing user input, and a processing unit 2926 connected to the input device unit 2920 and optionally 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 launching unit 2936, and a data receiving unit 2938.
[0446] The processing unit 2926 is configured to, while the electronic device 2900 is in the user interface lock state, detect (e.g., using the external device detection unit 2930) an external device running a first application, with the first application in a state, enable (e.g., using the display enablement unit 2934) display (e.g., using the display unit 2920) of a password entry field and an affordance corresponding to the first application, receive the password (e.g., using the input detection unit 2932 and / or the input device unit 2922), detect a mouse event on the displayed affordance (e.g., using the input detection unit 2932), and, in response to receiving the password and detecting the mouse event, launch (e.g., using the application launch unit 2936) a second application corresponding to the first application, wherein a state of the second application corresponds to a state of the first application.
[0447] In some embodiments, the first application was used on the external device within a predetermined time period prior to the current time.
[0448] In some embodiments, the first application and the second application have at least one application feature in common.
[0449] In some embodiments, the state of the first application corresponds to a position in the navigation hierarchy of the first application.
[0450] In some embodiments, the state of the first application corresponds to a position within a document displayed in the first application.
[0451] In some embodiments, the state of the first application corresponds to whether a feature of the first application is active.
[0452] In some embodiments, the first application and the second application are multiple versions of the same application.
[0453] In some embodiments, the processing unit 2926 is further configured to receive application data of the first application (e.g., using the data receiving unit 2938) and enable the application data for display via the second application (e.g., using the display enabling unit 2934).
[0454] In some embodiments, the application data represents a portion of a message to be displayed by the first application, and the processing unit 2926 is further configured to enable (e.g., using the display enablement unit 2934) the portion of the message to be displayed in the second application.
[0455] In some embodiments, the application data represents a portion of a web page, and the processing unit 2926 is further configured to enable (e.g., using the display enablement unit 2334) the portion of the web page for display via the second application.
[0456] In some embodiments, at least one application feature is accessible only from one of the first application and the second application.
[0457] In some embodiments, the first application executes at least one application feature, and launching the second application includes enabling (e.g., using display enablement unit 2934) display of an affordance for wirelessly invoking the application feature of the first application running on the external device from the second application running on electronic device 2900.
[0458] In some embodiments, the electronic device 2900 is a laptop or desktop computer.
[0459] In some embodiments, the electronic device 2900 is a tablet computer.
[0460] In some embodiments, the electronic device 2900 is a telephone.
[0461] In some embodiments, the external device is a laptop or desktop computer.
[0462] In some embodiments, the external device is a tablet computer.
[0463] In some embodiments, the external device is a telephone.
[0464] The operations described above with respect to FIG. 48 are optionally implemented by the components shown in FIGS. 1A-1B or 29. For example, detect external device operation 4802, display operation 4804, and receive password operation 4806 may be implemented by event sorter 170, event recognizer 180, and event handler 190. Event monitor 171 in event sorter 170 detects contacts on touch-sensitive display 112, and event dispatch module 174 delivers the event information to application 136-1. Each event recognizer 180 in application 136-1 compares the event information with a respective event definition 186 to determine whether a first contact at a first location on the touch-sensitive surface corresponds to a pre-configured event or sub-event, such as activation of an affordance on the user interface. If the respective pre-configured event or sub-event is detected, event recognizer 180 invokes event handler 190 associated with the detection of the event or sub-event. The event handler 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 handler 190 accesses the respective GUI updater 178 to update what is being displayed by the application. Similarly, it will be apparent to those skilled in the art how other processes may be implemented based on the components shown in Figures 1A-1B.
[0465] According to some embodiments, FIG. 30 is an exemplary functional block diagram of an electronic device 3000 configured in accordance with the principles of the various embodiments described above. 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 electronic device 3000 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various examples described above. As will be appreciated by those skilled in the art, the functional blocks described in FIG. 30 may optionally be combined or divided into sub-blocks to implement the principles of the various examples described above. Accordingly, the description herein optionally supports any possible combinations or divisions or further definitions of the functional blocks described herein.
[0466] 30 , an electronic device 3000 includes an optional display unit 3020, a keyboard unit 3022, and a processing unit 3026 connected to the keyboard unit 3020 and optionally the display unit 3020. In some embodiments, the processing unit 3026 includes an external device detection unit 3030, a display enablement unit 3034, an input detection unit 3032, and an application launch unit 3036. Optionally, the processing unit 3026 also includes a data receiving unit 3038.
[0467] The processing unit 3026 detects (e.g., using the external device detection unit 3030) an external device that is running a first application and the first application is in a certain state, detects (e.g., using the input detection unit 3032) a key press of a first key of the keyboard unit 3022 simultaneously with a key press of a second key of the keyboard unit, and detects (e.g., using the display) a plurality of affordances including an affordance that identifies a plurality of active applications on the electronic device 3000 and an affordance for launching a second application corresponding to the first application. the display enable unit 3034), enabling a display (using the play unit 3020) and detecting a series of keyboard inputs (using the input detection unit 3032), including detecting (i) at least one further key press of the second key (ii) while holding the first key (iii) following the release of both the first key and the second key; and launching a second application (using the application launch unit 3036) in response to the series of keyboard inputs, wherein the state of the second application corresponds to the state of the first application.
[0468] In some embodiments, enabling the display of the plurality of affordances includes visually highlighting one of the affordances (e.g., using the display enablement unit 3034), and the processing unit 3026 is further configured to highlight another of the plurality of affordances (e.g., using the display enablement unit 3034) in response to a key press of a second key while the first key is held while detecting the sequence of keyboard inputs.
[0469] In some embodiments, the processing unit 3026 is further configured to launch the second application (e.g., using the application launch unit 3036) in response to the sequence of keyboard inputs only if an affordance for launching the second application is highlighted when the first key and the second key are released.
[0470] In some embodiments, the first key is a control key and the second key is a tab key.
[0471] In some embodiments, the first application was used on the external device within a predetermined time period prior to the current time.
[0472] In some embodiments, the first application and the second application have at least one application feature in common.
[0473] In some embodiments, the state of the first application corresponds to a position in the navigation hierarchy of the first application.
[0474] In some embodiments, the state of the first application corresponds to a position within a document displayed in the first application.
[0475] In some embodiments, the state of the first application corresponds to whether a feature of the first application is active.
[0476] In some embodiments, the first application and the second application are multiple versions of the same application.
[0477] In some embodiments, the processing unit 3026 is further configured to enable the electronic device 3000 to receive application data of the first application (e.g., using the data receiving unit 3038) and display the application data via the second application (e.g., using the display enabling unit 3034).
[0478] In some embodiments, the application data represents a portion of a message to be displayed by the first application, and the processing unit 3026 is further configured to enable (e.g., using the display enablement unit 3034) the portion of the message to be displayed in the second application.
[0479] In some embodiments, the application data represents a portion of a web page, and the processing unit 3026 is further configured to enable (e.g., using the display enablement unit 3034) the portion of the web page for display via the second application.
[0480] In some embodiments, at least one application feature is accessible only from one of the first application and the second application.
[0481] In some embodiments, the first application executes at least one application feature, and launching the second application includes enabling (e.g., using the display enablement unit 3034) the display of an affordance for wirelessly invoking the application feature of the first application running on the external device from the second application running on the electronic device 3000.
[0482] In some embodiments, the electronic device 3000 is a laptop or desktop computer.
[0483] In some embodiments, the electronic device 3000 is a tablet computer.
[0484] In some embodiments, the electronic device 3000 is a phone.
[0485] In some embodiments, the external device is a laptop or desktop computer.
[0486] In some embodiments, the external device is a tablet computer.
[0487] In some embodiments, the external device is a telephone.
[0488] The operations described above with respect to FIG. 49 are optionally implemented by the components shown in FIGS. 1A-1B or 30. For example, detect external device operation 4902, detect keypress operation 4904, and display operation 4906 may be implemented by event sorter 170, event recognizer 180, and event handler 190. Event monitor 171 in event sorter 170 detects contacts on touch-sensitive display 112, and event dispatch module 174 delivers the event information to application 136-1. Each event recognizer 180 in application 136-1 compares the event information with a respective event definition 186 to determine whether a first contact at a first location on the touch-sensitive surface corresponds to a pre-configured event or sub-event, such as activation of an affordance on the user interface. If the respective pre-configured event or sub-event is detected, event recognizer 180 invokes an event handler 190 associated with the detection of the event or sub-event. The event handler 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 handler 190 accesses the respective GUI updater 178 to update what is being displayed by the application. Similarly, it will be apparent to those skilled in the art how other processes may be implemented based on the components shown in Figures 1A-1B.
[0489] According to some embodiments, FIG. 31 is an exemplary functional block diagram of an electronic device 3100 configured according to the principles of the various embodiments described above. According to some embodiments, the functional blocks of the electronic device 3100 are configured to perform the techniques described above. The functional blocks of the electronic device 3100 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various examples described above. As will be appreciated by those skilled in the art, the functional blocks described in FIG. 31 are optionally combined or divided into sub-blocks to implement the principles of the various examples described above. Thus, the description herein optionally supports any possible combinations or divisions or further definitions of the functional blocks described herein.
[0490] 31 , an electronic device 3100 includes an optional display unit 3120, an input device unit 3122 for providing user interface input, and a processing unit 3126 connected to the input device unit 3122 and optionally 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 launching unit 3136. Optionally, the processing unit 3126 also includes a data receiving unit 3138.
[0491] The processing unit 3126 is configured to detect (e.g., using the external device detection unit 3130) an external device that is running a first application and the first application is in a certain state; detect (e.g., using the input detection unit 3132) movement of a cursor (e.g., using the input device unit 3122) to a corner of a screen (e.g., the display unit 3120) of the electronic device 3100; in response to detecting the movement of the cursor, enable (e.g., using the display enablement unit 3134) display of a plurality of affordances including an affordance that identifies a plurality of active applications on the electronic device 3100 and an affordance for launching a second application corresponding to the first application; detect (e.g., using the input detection unit 3132) a series of inputs including (i) movement of the cursor over the affordance for launching the second application and (ii) a mouse event on the affordance; and in response to detecting the series of inputs, launch the second application (e.g., using the application launch unit 3136), wherein a state of the second application corresponds to a state of the first application.
[0492] In some embodiments, the first application was used on the external device within a predetermined time period prior to the current time.
[0493] In some embodiments, the first application and the second application have at least one application feature in common.
[0494] In some embodiments, the state of the first application corresponds to a position in the navigation hierarchy of the first application.
[0495] In some embodiments, the state of the first application corresponds to a position within a document displayed in the first application.
[0496] In some embodiments, the state of the first application corresponds to whether a feature of the first application is active.
[0497] In some embodiments, the first application and the second application are multiple versions of the same application.
[0498] In some embodiments, the processing unit 3126 is further configured to enable the electronic device 3100 to receive application data of the first application (e.g., using the data receiving unit 3138) and display the application data via the second application (e.g., using the display enabling unit 3134).
[0499] In some embodiments, the application data represents a portion of a message to be displayed by the first application, and the processing unit 3126 is further configured to enable (e.g., using the display enablement unit 3134) the portion of the message to be displayed in the second application.
[0500] In some embodiments, the application data represents a portion of a web page, and the processing unit 3126 is further configured to enable (e.g., using the display enablement unit 3134) the portion of the web page for display via the second application.
[0501] In some embodiments, at least one application feature is accessible only from one of the first application and the second application.
[0502] In some embodiments, the first application executes at least one application feature, and launching the second application includes enabling (e.g., using the display enablement unit 3134) the display of an affordance for wirelessly invoking the application feature of the first application running on the external device from the second application running on the electronic device 3000.
[0503] In some embodiments, the electronic device 3100 is a laptop or desktop computer.
[0504] In some embodiments, the electronic device 3100 is a tablet computer.
[0505] In some embodiments, the electronic device 3100 is a phone.
[0506] In some embodiments, the external device is a laptop or desktop computer.
[0507] In some embodiments, the external device is a tablet computer.
[0508] In some embodiments, the external device is a telephone.
[0509] The operations described above with respect to FIG. 50 are optionally implemented by the components shown in FIGS. 1A-1B or 31. For example, detect external device operation 5002, detect movement operation 5004, and display operation 5006 may be implemented by event sorter 170, event recognizer 180, and event handler 190. Event monitor 171 in event sorter 170 detects contacts on touch-sensitive display 112, and event dispatch module 174 delivers the event information to application 136-1. Each event recognizer 180 in application 136-1 compares the event information with a respective event definition 186 to determine whether a first contact at a first location on the touch-sensitive surface corresponds to a predefined event or sub-event, such as activation of an affordance on the user interface. If a respective predefined event or sub-event is detected, event recognizer 180 invokes an event handler 190 associated with the detection of the event or sub-event. The event handler 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 handler 190 accesses the respective GUI updater 178 to update what is being displayed by the application. Similarly, it will be apparent to those skilled in the art how other processes may be implemented based on the components shown in Figures 1A-1B.
[0510] According to some embodiments, FIG. 32 is an exemplary functional block diagram of an electronic device 3200 configured in accordance with the principles of the various embodiments described above. According to some embodiments, the functional blocks of the electronic device 3200 are configured to perform the techniques described above. The functional blocks of the electronic device 3200 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various examples described above. As will be appreciated by those skilled in the art, the functional blocks described in FIG. 32 are optionally combined or divided into sub-blocks to implement the principles of the various examples described above. Accordingly, the description herein optionally supports any possible combinations or divisions or further definitions of the functional blocks described herein.
[0511] 32 , an electronic device 3200 includes a display screen unit 3220, an input device unit 3222 for controlling a user interface cursor, and a processing unit 3226 connected 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 launching unit 3236. Optionally, the processing unit 3226 also includes a data receiving unit 3238.
[0512] The processing unit 3226 is configured to detect (e.g., using the external device detection unit 3230) an external device that is running a first application and the first application is in a certain state, enable (e.g., using the display enablement unit 3234) the display, in a portion of the display screen unit 3220, of a plurality of application icons for launching the plurality of applications on the electronic device 3200, enable (e.g., using the display enablement unit 3234) the display, in a portion of the display screen unit 3220, of an icon for launching a second application corresponding to the first application, detect cursor movements and mouse events on the displayed icons (e.g., using the input detection unit 3232), and, in response, launch the second application (e.g., using the application launch unit 3236), wherein the state of the second application corresponds to the state of the first application.
[0513] In some embodiments, the multiple application icons and the icon for launching the second application are arranged horizontally across a portion of the display screen unit 3220.
[0514] In some embodiments, the affordance for launching a second application that corresponds to the first application is the leftmost affordance in the dock.
[0515] In some embodiments, the first application was used on the external device within a predetermined time period prior to the current time.
[0516] In some embodiments, the first application and the second application have at least one application feature in common.
[0517] In some embodiments, the state of the first application corresponds to a position in the navigation hierarchy of the first application.
[0518] In some embodiments, the state of the first application corresponds to a position within a document displayed in the first application.
[0519] In some embodiments, the state of the first application corresponds to whether a feature of the first application is active.
[0520] In some embodiments, the first application and the second application are multiple versions of the same application.
[0521] In some embodiments, the processing unit 3226 is further configured to enable the electronic device 3200 to receive application data of the first application (e.g., using the data receiving unit 3238) and display the application data via the second application (e.g., using the display enabling unit 3234).
[0522] In some embodiments, the application data represents a portion of a message to be displayed by the first application, and the processing unit 3226 is further configured to enable (e.g., using the display enablement unit 3234) the portion of the message to be displayed in the second application.
[0523] 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 enablement unit 3234) the portion of the web page for display via the second application.
[0524] In some embodiments, at least one application feature is accessible only from one of the first application and the second application.
[0525] In some embodiments, the first application executes at least one application feature, and launching the second application includes enabling (e.g., using the display enablement unit 3234) display of an affordance for wirelessly invoking the application feature of the first application running on the external device from the second application running on the electronic device 3200.
[0526] In some embodiments, the electronic device 3200 is a laptop or desktop computer.
[0527] In some embodiments, the electronic device 3200 is a tablet computer.
[0528] In some embodiments, the electronic device 3200 is a telephone.
[0529] In some embodiments, the external device is a laptop or desktop computer.
[0530] In some embodiments, the external device is a tablet computer.
[0531] In some embodiments, the external device is a telephone.
[0532] The operations described above with respect to FIG. 51 are optionally implemented by the components shown in FIGS. 1A-1B or 32. For example, external device detect operation 5102 and display operation 5104 may be implemented by event sorter 170, event recognizer 180, and event handler 190. Event monitor 171 in event sorter 170 detects contacts on touch-sensitive display 112, and event dispatch module 174 delivers the event information to application 136-1. Each event recognizer 180 in application 136-1 compares the event information with a respective event definition 186 to determine whether a first contact at a first location on the touch-sensitive surface corresponds to a pre-configured event or sub-event, such as activation of an affordance on the user interface. If the respective pre-configured event or sub-event is detected, event recognizer 180 invokes event handler 190 associated with the detection of the event or sub-event. The event handler 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 handler 190 accesses the respective GUI updater 178 to update what is being displayed by the application. Similarly, it will be apparent to those skilled in the art how other processes may be implemented based on the components shown in Figures 1A-1B.
[0533] According to some embodiments, FIG. 33 is an exemplary functional block diagram of an electronic device 3300 configured in accordance with the principles of the various embodiments described above. According to some embodiments, the functional blocks of the electronic device 3300 are configured to perform the techniques described above. The functional blocks of the electronic device 3300 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various examples described above. As will be appreciated by those skilled in the art, the functional blocks described in FIG. 33 may optionally be combined or divided into sub-blocks to implement the principles of the various examples described above. Accordingly, the description herein optionally supports any possible combinations or divisions or further definitions of the functional blocks described herein.
[0534] 33 , an 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 connected to the input device unit 3322 and optionally 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 launching unit 3336. Optionally, the processing unit 3326 also includes a data receiving unit 3338.
[0535] The processing unit 3326 is configured to detect (e.g., using the external device detection unit 3330) an external device that is running a first application and the first application is in a certain state, enable (e.g., using the display enablement unit 3234) display (e.g., using the display unit 3320) a menu bar including an icon for launching a second application corresponding to the first application, detect cursor movement (e.g., using the input device unit 3322) and mouse events on the displayed icon (e.g., using the input detection unit 3332), and, in response, launch the second application (e.g., using the application launch unit 3336), wherein the state of the second application corresponds to the state of the first application.
[0536] In some embodiments, the first application was used on the external device within a predetermined time period prior to the current time.
[0537] In some embodiments, the first application and the second application have at least one application feature in common.
[0538] In some embodiments, the state of the first application corresponds to a position in the navigation hierarchy of the first application.
[0539] In some embodiments, the state of the first application corresponds to a position within a document displayed in the first application.
[0540] In some embodiments, the state of the first application corresponds to whether a feature of the first application is active.
[0541] In some embodiments, the first application and the second application are multiple versions of the same application.
[0542] In some embodiments, the processing unit 3326 is further configured to enable the electronic device 3300 to receive application data of the first application (e.g., using the data receiving unit 3338) and display the application data via the second application (e.g., using the display enabling unit 3334).
[0543] In some embodiments, the application data represents a portion of a message to be displayed by th...
Claims
1. 1. A method comprising: In an electronic device coupled to a keyboard, Detecting an external device, the external device running a first application, the first application being in a state; detecting a key press of a first key on the keyboard simultaneously with a key press of a second key on the keyboard; In response to the simultaneous key presses, displaying a plurality of affordances, including an affordance identifying a plurality of active applications on the electronic device and an affordance for launching a second application corresponding to the first application; (ii) detecting a sequence of keyboard inputs including (i) at least one additional key press of the second key while holding the first key, and (iii) a subsequent release of both the first key and the second key; launching the second application in response to the sequence of keyboard inputs, wherein a state of the second application corresponds to the state of the first application; A method comprising:
2. 10. The method of claim 1, wherein displaying the plurality of affordances includes visually highlighting one of the affordances, the method further comprising: highlighting another affordance of the plurality of affordances in response to a key press of the second key while the first key is held while detecting the sequence of keyboard inputs. A method comprising:
3. 3. The method of claim 2, further comprising: launching the second application in response to the sequence of keyboard inputs only if the affordance for launching the second application is highlighted when the first key and the second key are released. A method comprising:
4. 4. The method of claim 1, wherein the first key is a control key and the second key is a tab key. method.
5. 5. The method of claim 1, wherein the first application has been used on the external device within a predetermined time period prior to the current time. method.
6. 6. The method of claim 1, wherein the first application and the second application have at least one application feature in common. method.
7. 7. The method of claim 1, wherein the state of the first application corresponds to a position in a navigation hierarchy of the first application. method.
8. 8. The method of claim 1, wherein the state of the first application corresponds to a position within a document displayed in the first application. method.
9. 9. The method of claim 1, wherein the state of the first application corresponds to whether a feature of the first application is active or not. method.
10. 10. The method of claim 1, wherein the first application and the second application are multiple versions of the same application. method.
11. 11. The method of any one of claims 1 to 10, further comprising: receiving, by the electronic device, application data for the first application; displaying the application data via the second application; A method comprising:
12. 12. The method of claim 11, wherein the application data represents a portion of a message to be displayed by the first application, the method further comprising: Displaying the portion of the message in the second application. A method comprising:
13. 12. The method of claim 11, wherein the application data represents a portion of a web page, the method further comprising: Displaying the portion of the web page via the second application. A method comprising:
14. 14. The method of any one of claims 1 to 13, wherein at least one application feature is accessible only to one of the first application and the second application. method.
15. 15. The method of claim 1, wherein the first application executes at least one application feature, and launching the second application comprises: displaying an affordance for wirelessly invoking an application feature of the first application running on the external device from the second application running on the electronic device. method.
16. 16. The method of any one of claims 1 to 15, wherein the electronic device is a laptop computer or a desktop computer. method.
17. 17. The method of any one of claims 1 to 16, wherein the electronic device is a tablet computer. method.
18. 18. The method of any one of claims 1 to 17, wherein the electronic device is a telephone. method.
19. 19. The method of any one of claims 1 to 18, wherein the external device is a laptop computer or a desktop computer. method.
20. 20. The method of any one of claims 1 to 19, wherein the external device is a tablet computer. method.
21. 21. The method of any one of claims 1 to 20, wherein the external device is a telephone. method.
22. A computer program product causing a computer to carry out the method according to any one of claims 1 to 21.
23. 1. An electronic device coupled to a keyboard, comprising: a memory storing the computer program according to claim 22; one or more processors capable of executing the computer programs stored in the memory; An electronic device comprising:
24. 1. An electronic device coupled to a keyboard, comprising: Means for carrying out the method according to any one of claims 1 to 21 An electronic device comprising:
Citation Information
Patent Citations
Application switcher
WO2013097896A1