Forwarding activity-related information from source electronic device to companion electronic device
By exchanging activity-related information in a multi-device environment, the problem of users having difficulty transferring tasks or activities from one device to another is solved, and task continuity between devices and a better user experience is achieved.
Patent Information
- Application Number
- CN202510286480.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2015-08-31
- Filing Date
- 2016-06-30
- Publication Date
- 2025-06-06
AI Technical Summary
In a multi-device environment, it is difficult for users to easily transfer ongoing tasks or activities from one electronic device to another, especially due to the device's screen size and usage scenario limitations.
Continuation of the activity is achieved by exchanging information related to the activity between the source electronic device and the accompanying electronic device. The specific steps include broadcasting the activity announcement on the source device, receiving and responding to the announcement with the device, requesting and receiving information related to the activity, thereby continuing to perform the activity on the accompanying device.
Users can seamlessly transfer ongoing tasks or activities from one device to another, improving task continuity and user experience between devices.
Smart Images

Figure CN120104378A_ABST
Abstract
Description
[0001] This application is a divisional application of the invention patent application with the application date of June 30, 2016, application number 201680050026.4, and name "Forwarding activity-related information from a source electronic device to a companion electronic device".
[0002] Related Applications
[0003] This application is a continuation-in-part of, and hereby claims priority to, pending U.S. Patent Application No. 14 / 586,566, entitled “Activity Continuation between Electronic Devices,” filed on December 30, 2014. This application also claims priority to now-expired U.S. Provisional Patent Application No. 62 / 005,781, entitled “Activity Continuation between Electronic Devices,” filed on May 30, 2014, and to which prior application No. 14 / 586,566 also claims priority. Both applications are incorporated by reference.
[0004] This application is related to U.S. patent application Ser. No. 14 / 586,511, filed on the same date as this application, entitled “Companion Application for Activity Cooperation”, and having attorney docket number APL-P23129US1, by inventors Marc J. Krochmal, Christopher S. Linn, John J. Iarocci, Geoffrey Stahl, and Jacques P. Gasselin de Richebourg. This application is also related to U.S. patent application Ser. No. 14 / 475,329, filed on Sep. 2, 2014, entitled “Operating Mode Transitions based on Advertising Information”, and having attorney docket number APL-P22643US1, by inventors Craig P. Dooley, Akshay Mangalam Srivatsa, Anjali S. Sandesara, and Michael J. Giles. This application is also related to U.S. patent application Ser. No. 14 / 474,466, filed on Sep. 2, 2014, entitled “Predefined Wireless Pairing,” by inventors Jason C. Conn, Akshay Mangalam Srivatsa, Craig P. Dooley, and Michael J. Giles, having attorney docket number APL-P22642US1. This application is further related to U.S. patent application Ser. No. 14 / 586,566, filed on Dec. 30, 2014, entitled “Activity Continuation between Electronic Devices,” by inventors Christopher S. Linn, Keith Stattenfield, Christopher C. Jensen, Alexander R. Ledwith, David A. Carter, Marc J. Krochmal, John J. Iarocci, and Jonathan M. Grynspan, having attorney docket number APL-P22791US1. Each of the above-described applications is incorporated herein by reference. Technical Field
[0005] The disclosed embodiments relate to electronic devices. More particularly, the disclosed embodiments relate to forwarding activity-related information from a source electronic device to a companion electronic device. Background Art
[0006] Recent advances in computer technology have enabled manufacturers to produce powerful computing devices in a variety of form factors, thereby enabling users to use small and portable devices such as smartphones or tablet computers to perform tasks that previously required desktop or laptop computers. As a result of these advances, users often own and use multiple computing devices, such as a smartphone when on the road, a tablet computer when in a meeting, and a laptop or desktop computer at a desk.
[0007] Although a user may own different devices, each with powerful computing capabilities, in some cases the user may find himself or herself using a device that is not appropriate for the task being performed or for the situation the user is in. For example, a user may start an expected short email on a device such as a smart phone with a small display screen, and then may have difficulty entering and editing text in the email due to the size of the display screen when the email turns out to be longer than expected. Alternatively, the user may read a web page or watch a movie on a desktop computer but may have to leave the room where the desktop computer is located. Although the user can retrieve another device and start the task, this is cumbersome. Summary of the invention
[0008] Embodiments are directed to forwarding information related to an activity from a source electronic device to a companion electronic device for continuation of the activity on the companion electronic device.
[0009] According to some embodiments, a method for a companion electronic device is provided, the method comprising: performing, by the companion electronic device, operations for: receiving an announcement from a source electronic device, the announcement comprising an indication that activity-related information is available from the source electronic device, the indication comprising an identifier, the activity-related information being associated with an activity performed in the source electronic device, the activity-related information comprising source clipboard information, the source clipboard information comprising a copy of some or all of the contents of a clipboard in the source electronic device; in response to receiving the indication in the announcement, sending a request for activity-related information to the source electronic device, the request comprising the identifier; receiving activity-related information corresponding to the identifier from the source electronic device in a transmission separate from the announcement; and selectively providing activity-related information for use when performing one or more activities in the companion electronic device.
[0010] According to some embodiments, a companion electronic device is provided, the companion electronic device comprising: a processing subsystem and a network connection subsystem; the companion electronic device: receives an announcement from a source electronic device, the announcement comprising an indication that activity-related information is available from the source electronic device, the indication comprising an identifier, the activity-related information is associated with the activity performed in the source electronic device, the activity-related information comprises source clipboard information, the source clipboard information comprises a copy of some or all of the contents of a clipboard in the source electronic device; in response to receiving the indication in the announcement, sends a request for activity-related information to the source electronic device, the request comprising the identifier; receives activity-related information corresponding to the identifier from the source electronic device in a transmission separate from the announcement; and selectively provides activity-related information for use when performing one or more activities in the companion electronic device.
[0011] According to some embodiments, a computer-readable storage medium is provided. The computer-readable storage medium stores instructions that, when executed by a processing subsystem in a companion electronic device, cause the companion electronic device to perform a method, the method comprising: receiving a notice from a source electronic device, the notice including an indication that information related to an activity is available from the source electronic device, the indication including an identifier, the information related to the activity being associated with an activity executed in the source electronic device, the information related to the activity including source clipboard information, the source clipboard information including a copy of some or all of the contents of a clipboard in the source electronic device; in response to receiving the indication in the notice, sending a request for information related to the activity to the source electronic device, the request including the identifier; receiving information related to the activity corresponding to the identifier from the source electronic device in a transmission separate from the notice; and selectively providing information related to the activity for use when executing one or more activities in the companion electronic device. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] Figure 1 A block diagram illustrating an electronic device according to some embodiments is presented.
[0013] Figure 2 A block diagram illustrating a network environment according to some embodiments is presented.
[0014] Figure 3 A flow chart illustrating a process for broadcasting an event announcement message according to some embodiments is presented.
[0015] Figure 4 A flow chart illustrating a process for storing activity information describing an activity available at a companion electronic device according to some embodiments is presented.
[0016] Figure 5 A flow chart illustrating a process for requesting extended activity data and transferring an activity according to some embodiments is presented.
[0017] Figure 6 A flow chart illustrating a process for responding to a request for extended activity data in accordance with some embodiments is presented.
[0018] Figure 7 A flow chart illustrating a process for determining whether a second application is available at a companion electronic device according to some embodiments is presented.
[0019] Figure 8 A flow chart illustrating a process for determining a second application using a flag according to some embodiments is presented.
[0020] Fig. 9 A flow chart illustrating a process for determining whether a second application is available when an activity identifier identifies an input item in a structure storing posted activities is presented in accordance with some embodiments.
[0021] Fig.10 A flow chart illustrating a process for determining a most recent activity from two or more activity announcement messages according to some embodiments is presented.
[0022] Fig.11 A block diagram illustrating activity information in accordance with some embodiments is presented.
[0023] Fig.12 A block diagram illustrating a bulletin activity table according to some embodiments is presented.
[0024] Fig.13 A block diagram illustrating an activity announcement message in accordance with some embodiments is presented.
[0025] Fig.14 A block diagram illustrating a resumable activity indication in accordance with some embodiments is presented.
[0026] Fig.15 A swim lane diagram illustrating messages exchanged between electronic devices according to some embodiments is presented.
[0027] Fig.16 A block diagram illustrating electronic devices in proximity to each other in accordance with some embodiments is presented.
[0028] Fig.17 A flow chart illustrating a process for forwarding activity-related information from a source electronic device to a companion electronic device in accordance with some embodiments is presented.
[0029] Fig.18 A block diagram is presented illustrating an activity-related information bulletin generated by a source electronic device in accordance with some embodiments.
[0030] Fig.19A flow chart illustrating a process for receiving activity-related information in a companion electronic device from a source electronic device in accordance with some embodiments is presented.
[0031] Fig. 20 A block diagram illustrating an information availability indicator related to an activity in accordance with some embodiments is presented.
[0032] In the drawings, like reference numerals refer to the same drawing elements. DETAILED DESCRIPTION
[0033] The following description is presented to enable any person skilled in the art to make and use the described embodiments, and is provided in the context of a particular application and its requirements. Various modifications to the described embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the described embodiments. Thus, the described embodiments are not limited to the embodiments shown, but are intended to be accorded the widest scope consistent with the principles and features disclosed herein.
[0034] In some embodiments, an electronic device (e.g. Figure 1 The electronic device 100 and / or a portion thereof) uses program code and / or data stored on a computer-readable storage medium to perform some or all of the operations described herein. More specifically, the electronic device reads program code and / or data from the computer-readable storage medium and executes the program code and / or uses the data when performing the described operations. In these embodiments, the computer-readable storage medium may be any device or medium or a combination thereof that stores program code and / or data for use by the electronic device. For example, the computer-readable storage medium may include (but is not limited to) volatile memory or non-volatile memory, such as semiconductor memory (e.g., flash memory, random access memory (eDRAM, RAM, SRAM, DRAM, DDR, DDR2 / DDR3 / DDR4 SDRAM, etc.) and / or magnetic or optical storage media (e.g., disk drives, tapes, CDs, DVDs). In the described embodiments, the computer-readable storage medium does not include non-statutory computer-readable storage media such as temporary signals.
[0035] In some embodiments, one or more hardware modules are configured to perform the operations described herein. For example, the hardware modules may include (but are not limited to) one or more processors / cores / central processing units (CPUs), application-specific integrated circuits (ASIC) chips, field programmable gate arrays (FPGAs), caches / cache controllers, memory management units, computational units, embedded processors, graphics processing units (GPUs) / graphics cores, pipelines, and / or other programmable logic devices. When such hardware modules are activated, the hardware modules perform some or all of the operations. In some embodiments, the hardware modules include one or more general-purpose circuits configured to perform operations by executing instructions (program code, firmware, etc.).
[0036] In this description, reference may be made to functional blocks when describing some embodiments. Generally, a functional block includes one or more associated circuits, devices, and / or mechanisms that perform the described operations. In some embodiments, at least some of the functional blocks include general-purpose processing circuits that execute program code (e.g., microcode, firmware, application programs, etc.) that causes the general-purpose processing circuits to perform the described operations.
[0037] Overview
[0038] The described embodiments transfer an activity performed at a source electronic device from the source electronic device to a companion electronic device - a process referred to as "continuing" the activity in the companion electronic device. In the described embodiments, to perform the transfer, the source electronic device sends information describing the activity performed in a first application at the source electronic device to the companion electronic device. The companion electronic device then uses some or all of the information to configure a second application at the companion electronic device to perform the corresponding activity. Generally speaking, an activity includes one or more operations performed at least in part at the source electronic device, which are transferred to / continued on the companion electronic device. Examples of activities include reading and / or editing a document (such as a word processing document, spreadsheet, presentation, or other type of document), composing an email message, email, voice message, or video, drafting a note, visiting (browsing) a website, watching a movie, playing an audio file, or otherwise using an application or app to perform a corresponding operation.
[0039] In some embodiments, when transferring an activity from a source device to a companion device, the source electronic device first broadcasts an activity announcement message (also referred to as an "activity announcement") using a wireless network interface (e.g., Bluetooth Low Energy (BLE), ZigBee, etc.). In some embodiments, the source electronic device generates an activity identifier for the activity executed in a first application at the source electronic device and includes the activity identifier in the activity announcement message. The source electronic device generates the activity identifier by performing a set of operations (e.g., a hash operation, etc.) using activity information describing the activity received from the first application. See below for more information. Fig.11 An example of activity information is described in more detail.
[0040] The companion electronic device monitors a network (e.g., a Bluetooth low energy network) for activity announcement messages on a network interface that corresponds to a network interface in a source electronic device from which the activity announcement was broadcast. Upon detecting an activity announcement broadcast from the source electronic device, the companion electronic device compares an activity identifier for an activity available at the companion electronic device with the activity identifier in the activity announcement message. The companion electronic device uses this comparison to determine whether a second application that can perform an activity corresponding to the activity performed in the first application is available at the companion electronic device.
[0041] In some embodiments, after determining that the second application is available, the companion electronic device establishes communication with the source electronic device via a communication channel (e.g., using the same wireless network interface or a different network interface (wireless and / or wired) used to receive the activity announcement message). The companion electronic device then uses the communication channel to request extended activity data from the source electronic device for the activity performed in the first application. In some embodiments, after receiving the request for extended activity data, the source electronic device uses the same (or different) communication channel to provide the extended activity data to the companion electronic device. Generally speaking, the extended activity data includes information that can be used to configure the second application in the companion electronic device to continue the activity, such as a file identifier, scroll position, uniform resource locator (URL), etc. related to the activity performed in the first application.
[0042] In some embodiments, the companion electronic device uses the activity identifier and / or extended activity data to configure the second application to perform an activity corresponding to the activity performed in the first application at the source electronic device. Then, the companion electronic device begins to execute the activity in the second application at the companion electronic device. For example, after the companion electronic device configures the second application, the user can use the companion electronic device to continue working on a file that the user was working on at the source electronic device, continue watching a movie that the user was watching at the source electronic device, continue browsing a web page that the user was browsing at the source electronic device, and so on. In some embodiments, the companion electronic device sends a notification to the source electronic device to indicate that the activity is transferred to the second application. The notification can cause the source electronic device and / or the first application to perform housekeeping tasks, such as deleting a draft file of the activity, closing an open file of the activity, and so on.
[0043] In some embodiments, in addition to the activity identifier and / or extended activity data described above, the source electronic device forwards information related to the activity to the companion electronic device. For example, in some embodiments, the source electronic device forwards some or all of the contents of the clipboard (or "clipboard") copied and pasted in the source electronic device to the companion electronic device. After receiving the information related to the activity, the companion electronic device provides the information related to the activity for performing the activity (such as the transferred activity or other activity) in the companion electronic device. For example, in an embodiment in which some or all of the contents of the clipboard are forwarded from the source electronic device, the companion electronic device may overwrite some or all of the existing contents of the clipboard in the companion electronic device with the contents of the clipboard received from the source electronic device. In this way, the companion electronic device can make the contents of the clipboard from the source electronic device (i.e., information related to the activity) available for activities in the companion electronic device. For example, text, images, videos, sounds, files, fields and / or other information copied to (or otherwise placed on) a clipboard in a source electronic device may be made available for activities in the companion electronic device via the clipboard of the companion electronic device.
[0044] By performing the operations described above at the companion electronic device to continue the activities performed at the source electronic device, the described embodiments enable the user to continue the task smoothly and without complex user intervention. This enables the user to perform tasks on the desired electronic device more easily, which can improve the overall experience of users with two or more electronic devices.
[0045] Electronic Devices
[0046] Figure 1 A block diagram illustrating an electronic device 100 according to some embodiments is presented. The electronic device 100 includes a processing subsystem 102, a memory subsystem 104, a network connection subsystem 106, and a display subsystem 108.
[0047] The processing subsystem 102 is a functional block that performs computing operations in the electronic device 100. The processing subsystem 102 includes one or more central processing units (CPUs) / CPU cores, graphics processing units (GPUs) / GPU cores, embedded processors, application specific integrated circuits (ASICs), and / or other computing mechanisms.
[0048] The memory subsystem 104 is a functional block that stores data and / or instructions for use by other functional blocks in the electronic device 100 (e.g., the processing subsystem 102, etc.). The memory subsystem 104 includes volatile memory circuits such as dynamic random access memory (DRAM), static random access memory (SRAM), and / or other types of memory for storing instructions and data, and mechanisms for controlling the memory circuits. In some embodiments, the memory subsystem 104 includes a memory hierarchy having one or more caches coupled to the memory circuits. In some of these embodiments, the processing subsystem 102 also includes one or more caches that are part of the memory hierarchy.
[0049] In some embodiments, the memory subsystem 104 is coupled to one or more non-volatile high-capacity mass storage devices (not shown). For example, the memory subsystem 104 may be coupled to a magnetic or optical drive, a solid-state drive, or another type of mass storage device. In such embodiments, the memory subsystem 104 may be used by the electronic device 100 as fast access storage for frequently used data, while the mass storage device is used to store less frequently used data.
[0050] The network connection subsystem 106 is a functional block that includes one or more devices configured to couple to and communicate on a wired and / or wireless network (i.e., to perform network operations). For example, the network connection subsystem 106 may include a Bluetooth TMA network connection system, a cellular network connection system (e.g., 3G / 4G networks such as UMTS, LTE, etc.), a universal serial bus (USB) network connection system, a network connection system based on standards described in IEEE 802.11, 802.15, etc. (e.g., ZigBee or Wi-Fi network connection systems, etc.), an Ethernet network connection system, and / or another network connection system. The network connection subsystem 106 includes a processor, a controller, a radio / antenna, a socket / plug, and / or other devices for coupling to each supported network connection system, communicating on each supported network connection system, and handling data and events for each supported network connection system. In the following description, the mechanism of each network system for coupling to the network, communicating on the network, and handling data and events on the network is collectively referred to as the "interface" or "network interface" of the network system.
[0051] Display subsystem 108 is a functional block that includes one or more devices configured to display information on a visual interface of electronic device 100. For example, in some embodiments, display subsystem 108 includes a graphics processor (GPU), a graphics adapter, and / or a display screen for displaying information.
[0052] In some embodiments, communication paths (including one or more buses, wires, and / or connections) are coupled between functional blocks (processing subsystem 102, memory subsystem 104, etc.) in electronic device 100, as shown by arrow lines between components. The communication paths are used to transmit commands, data, event notifications, and / or other information between components.
[0053] Although specific components are used to describe the electronic device 100, in some embodiments, different components and / or subsystems may be present in the electronic device 100. For example, the electronic device 100 may include one or more additional processing subsystems 102, memory subsystems 104, etc. In addition, one or more of the subsystems may not be present in the electronic device 100 or some or all of the functionality of the subsystems may be incorporated into other subsystems. Furthermore, in some embodiments, the electronic device 100 may include other components not shown. Figure 1 For example, the electronic device 100 may include, but is not limited to, a data collection subsystem, an audio and / or video subsystem, an alarm subsystem, a media processing subsystem, and / or an input / output (I / O) subsystem.
[0054] The electronic device 100 may be or may be included in any device that performs computing operations. For example, the electronic device 100 may be or may be included in any of the following: a desktop computer, a laptop computer, a wearable computing device, a tablet computer, a smart phone, a server, a network electrical device, a toy, an audio-visual device (e.g., a receiver, a set-top box, Apple TV, etc.), an automobile (e.g., an automobile interface system, a navigation system, a head-up display, etc.), a home appliance, a controller, etc., and / or combinations thereof. (Apple TV is a registered trademark of Apple Inc. of Cupertino, California).
[0055] Network environment
[0056] Figure 2 A block diagram illustrating a network environment according to some embodiments is presented. Figure 2 As can be seen in FIG. 2 , network environment 200 includes source electronic device 202, companion electronic device 204, and second source electronic device 206 (collectively referred to as “electronic devices”). In some embodiments, each of these electronic devices is an electronic device similar to electronic device 100, i.e., has a subsystem similar to electronic device 100. However, this is not required; the described embodiments may use any electronic device that can perform the operations described herein.
[0057] The source electronic device 202 and the second source electronic device 206 are electronic devices that participate in an exchange of communications with the companion electronic device 204 regarding an activity transfer operation. In some embodiments, the source electronic device 202 (and / or the second source electronic device 206) is an electronic device that is recognized by the companion electronic device 204 and is therefore allowed to participate in the activity transfer operation. For example, both the source electronic device 202 and the companion electronic device 204 may have registered with a service provider using the same account and may therefore recognize each other through information stored in each electronic device. For example, in some embodiments, the source electronic device 202 and the companion electronic device 204 participate in a pre-pairing operation (e.g., predefined pairing) (and recognize each other via information obtained by the pre-pairing operation), as described in U.S. patent application filed on the same date as the present application by inventors Jason C. Conn, Akshay Mangalam Srivatsa, Craig P. Dooley, and Michael Giles, entitled “Predefined Wireless Pairing,” having attorney docket number APL-P22642USP1, and the contents of which are incorporated by reference as described above. In some embodiments, the source electronic device 202 and the companion electronic device 204 may participate in a device-to-device exchange of identification factors (encryption keys, credentials, etc.) such that the source electronic device 202 and the companion electronic device 204 subsequently recognize each other.
[0058] Within the network environment 200, the companion electronic device 204 may use wireless communication signals 208 (using Figure 2 2 (illustrated by the jagged line labeled "communication signal 208" in FIG. 2 ) communicates with the source electronic device 202 and the second source electronic device 206. In some embodiments, the communication signals 208 are formatted and exchanged (broadcast, transmit / receive, etc.) according to corresponding wireless protocols (e.g., via wireless network protocols such as Bluetooth, ZigBee, 802.11-based protocols, and / or other wireless network protocols). In some embodiments, some or all of the communication signals 208 are transmitted as wired communication signals (e.g., signals in a wired Ethernet network, a wired LAN, a wired WAN, etc.).
[0059] In some embodiments, the activity transfer operations described herein rely on the source electronic device 202 and the companion electronic device 204 being sufficiently close to each other to enable the communication signals 208 (and thus the messages incorporated) sent by each electronic device to be received by the other electronic device. In other words, the source electronic device 202 and the companion electronic device 204 are "close" to each other, thereby enabling message exchange between the electronic devices. "Close" as used herein thus refers to the distance at which a message broadcast / sent from a given electronic device can be received by one or more other electronic devices. This distance is specified by the radio equipment (antenna, receiver / transmitter, etc.) in the electronic device and the specific radio protocol / signal used to broadcast / send the message, limited by factors such as environmental conditions (electromagnetic interference, etc.), intervening objects (furniture, walls, clothing / bags, etc.), etc. For example, in some embodiments, the communication signals 208 are exchanged between the source electronic device 202 and the companion electronic device 204 using a protocol with an expected range of 30 meters, and thus the devices are "close" when the devices are within 30 meters of each other (however, note that the expected range can be significantly changed by the factors described above).
[0060] Fig.16 A block diagram illustrating electronic devices in proximity to each other according to some embodiments is presented. Fig.16As can be seen in the figure, the companion electronic device 204 is within the range 1602 of the radio signal (e.g., the communication signal 208) of the source electronic device 202, which means that the companion electronic device 204 can receive the radio signal sent from the source electronic device 202. In addition, the source electronic device 202 is within the range 1604 of the radio signal (e.g., the communication signal 208) of the companion electronic device 204, which means that the source electronic device 202 can receive the radio signal sent from the companion electronic device 204. Therefore, as described above, the source electronic device 202 and the companion electronic device 204 are "close" to each other, thereby achieving the communication of messages (and corresponding operations) described herein. However, neither the source electronic device 202 nor the companion electronic device 204 is within the range 1606 of the radio signal of the electronic device 1600, which means that neither the source electronic device 202 nor the companion electronic device 204 is close to the electronic device 1600. It should be noted that Fig.16 The ranges 1602 to 1606 are shown using irregular shapes to illustrate that the radio signal from the electronic device has an irregular range, which depends on the electronic device (antenna configuration, etc.), the factors described above, etc.
[0061] In some embodiments, messages, data, etc. communicated between electronic devices are encrypted. In such embodiments, some or all of the electronic devices perform corresponding encryption and decryption operations, for example, by using a shared key, a key obtained from a shared key, and / or a one-time key. For example, as previously described, in some embodiments, the source electronic device 202 and the companion electronic device 204 participate in a predefined pairing as described in a U.S. patent application filed by inventors Jason C. Conn, Akshay Mangalam Srivatsa, Craig P. Dooley, and Michael Giles on the same date as the present application, the case is entitled "Predefined Wireless Pairing", the case has attorney case number APL-P22642USP1, and the contents of the case are incorporated by reference as described above. In some embodiments, the source electronic device 202 and the companion electronic device 204 encrypt and decrypt messages exchanged for the active transfer operation by using one or more encryption keys obtained by the source electronic device 202 and the companion electronic device 204 while participating in the predefined pairing.
[0062] Although various electronic devices are displayed in Figure 2 , but in some embodiments, different configurations of electronic devices are used to perform some or all of the operations described herein. For example, in some embodiments, the second source electronic device 206 does not exist. In general, the described embodiments include sufficient means for transferring activities between electronic devices as described herein.
[0063] Broadcast event announcement message
[0064] Figure 3 A flowchart illustrating a process for broadcasting an activity announcement message according to some embodiments is presented. More specifically, in Figure 3 During the process shown in , an electronic device such as source electronic device 202 broadcasts an activity announcement message. Figure 3 The operations shown in are presented as general examples of operations performed by some embodiments. The operations performed by some embodiments include different operations and / or operations performed in a different order. In addition, although certain mechanisms are used to describe the operations (e.g., source electronic device 202, etc.), in some embodiments, other mechanisms perform the operations. For example, one or both of companion electronic device 204 and second source electronic device 206 may perform similar operations to broadcast their own activity announcement message.
[0065] Figure 3 The process shown in FIG. 1 begins with the source electronic device 202 receiving activity information describing an activity executed in a first application at the source electronic device 202 (i.e., a first application installed on / available to the source electronic device 202) (step 300). (See below for details.) Fig.11 ). In some embodiments, the first application provides or reports the activity information to the source electronic device 202, such as providing or reporting the activity information to an operating system, a daemon helper, or other processing program and / or service at the source electronic device 202. In some embodiments, the source electronic device 202 queries the first application for the activity information. Generally speaking, the activity information includes information describing an activity performed at least in part using an electronic device. Examples of activities include reading and / or editing a document (such as a word processing document, a spreadsheet, a presentation, or other type of document), composing an email message, drafting a note, visiting (browsing) a website, watching a movie, playing an audio file, or otherwise using an application or app to perform a corresponding operation.
[0066] Next, the source electronic device 202 determines whether to filter the received activity information (step 302), which includes using one or more criteria to discard activity information that should not undergo additional processing and / or should not be broadcast in the activity announcement message. For example, the source electronic device 202 may measure the frequency with which the first application provides updates to the activity information, and may discard activity information from the first application when the frequency with which the activity information is updated exceeds a threshold value (which may be referred to as "throttling" the activity information from the first application). As another example, the source electronic device 202 may discard activity information that is duplicated or repeated, does not contain significant changes to previously reported activity information (e.g., "unchanged" automatic reports, reports of simple / basic operations / changes, etc.), reports facts that are already known by the source electronic device 202, etc. As yet another example, in some embodiments, the source electronic device 202 filters the activity information based on an indication that the activity described by the activity information is not to be announced. For example, in some embodiments, the source electronic device 202 and / or a user of the source electronic device 202 may configure certain activities and / or certain types of activities as activities that are not to be announced. As yet another example, in some embodiments, the source electronic device 202 ranks some or all activities for which activity information exists (i.e., some or all of the activities that can be posted) and discards one or more of these activities based on the ranking. For example, the source electronic device 202 may assign a higher ranking to activities that the user previously continued and a lower ranking to activities that the user previously did not continue. In some of these embodiments, the source electronic device 202 uses messages from the companion electronic device 204 to determine which posted activities were previously continued and which were previously not continued, for example, such as described below. Figure 5 Messages of those messages described in step 510.
[0067] If the source electronic device 202 filters (e.g., discards) the activity information (step 302, yes), then the process ends. Otherwise, if the source electronic device 202 does not filter the activity information (step 302, no), then the source electronic device 202 stores some or all of the activity information in a structure (step 304). For purposes of illustration, we describe an embodiment in which the activity information is stored in an entry in a table, which we refer to as the "posted activity" table. However, it should be noted that the embodiments are not limited to using a table for storing activity information. Some embodiments use different storage mechanisms / structures for storing activity information, such as associative arrays, content addressable memories, etc.
[0068] In some embodiments, while storing the activity information, the source electronic device 202 overwrites and / or removes the activity information previously stored in the advertised activity table. For example, the source electronic device 202 may use a least recently used (LRU) algorithm to overwrite and / or remove entries from the advertised activity table. Fig.12 An example of an activity table describing an announcement in more detail.
[0069] Next, the source electronic device 202 determines an activity identifier for the activity information (step 306). Generally speaking, the activity identifier includes information from the activity information that identifies the first application and the activity executed in the first application. In some embodiments, the source electronic device 202 generates the activity identifier by reducing the activity information into a smaller encoded representation that can be broadcast more efficiently than the complete activity information. In some of these embodiments, the encoded representation is a hash of the activity information, that is, the output of a hash function (e.g., MD4, MD5, SHA, MurmurHash, etc.) whose input includes the activity information. In some embodiments, the source electronic device 202 stores the activity identifier along with the activity information in a posted activity table (or any structure used by the source electronic device 202 to store activity information). See below. Fig.12 Examples of activity identifiers are described in more detail.
[0070] In some embodiments, the activity identifier includes a representation of a domain name. For example, in some embodiments, when the activity performed in the first application includes using a resource at a network domain, the activity information includes the domain name of the network domain, such as at least a portion of a uniform resource locator (URL). In some embodiments, the source electronic device 202 determines the activity identifier by including some or all of the domain name in the activity identifier. For example, the activity identifier may be a hash of some or all of the URL for the resource.
[0071] In some embodiments, the activity identifier identifies an entry in a structure in which the source electronic device 202 stores activity information (e.g., as described above with reference to step 304). For example, the activity identifier may identify an entry in an activity table of a posting in which the source electronic device 202 stores activity information. The activity identifier may also include an identifier of the posting activity table itself. In some embodiments, to identify an entry in a structure in which the source electronic device 202 stores activity information, the activity identifier includes: (1) a hash of data in the posting activity table that is used to identify the posting activity table, and (2) an index of the entry in the posting activity table that stores activity information.
[0072] The source electronic device 202 then includes the activity identifier in the activity announcement message (step 308). In some embodiments, in addition to the activity identifier, the activity announcement message also includes other data. For example, in some embodiments, the activity announcement message includes a flag for indicating when the activity identifier includes a representation of the domain name of an online resource related to the activity. In these embodiments, the source electronic device 202 asserts the flag (e.g., sets the flag to a predetermined value such as 1) to indicate that the activity identifier includes a representation of the domain name. In some embodiments, the source electronic device 202 asserts the flag in the activity announcement message to indicate that the announcement activity can continue in a manner that the source electronic device 202 will provide separately to the companion electronic device 204 (e.g., by the source electronic device 202 including corresponding instructions in the extended activity data (described in more detail below)).
[0073] In some embodiments, the activity announcement message includes a timestamp for the activity / activity information. The timestamp (which may represent an absolute time or a relative time) may indicate the time when the activity was last performed in the first application, such as the last time a document was edited, a website was visited, a movie was watched, etc. In some embodiments, the timestamp is independent of the activity / activity information, that is, the timestamp indicates the time when the user last interacted with the source electronic device 202, regardless of whether the user's last interaction included the user performing an activity.
[0074] The source electronic device 202 then broadcasts the activity announcement message (step 310). For example, the source electronic device 202 may broadcast the activity announcement message using the communication signal 208. In some embodiments, the source electronic device 202 broadcasts / announces the activity announcement message in the network environment 200 so that nearby devices in the network environment 200 can receive the activity announcement message. For example, in these embodiments, the source electronic device 202 uses a Bluetooth such as Bluetooth Low Energy (BLE). TM The communication channel may be used to broadcast the activity announcement message. Some embodiments may broadcast the activity announcement message on different communication channels (such as peer-to-peer networks, LANs, the Internet, etc.). It should be noted that the activity broadcast may occur more than once, for example, the source electronic device 202 may broadcast the same activity announcement message multiple times and / or periodically.
[0075] Build a table of available activities
[0076] In some embodiments, the companion electronic device 204 stores available activity information, such as activity information describing activities available at the companion electronic device 204 (see below). Fig.11Examples of activity information are described in more detail in the present disclosure). For example, in some embodiments, the companion electronic device 204 stores activity identifiers for available activity information. For purposes of illustration, we describe the companion electronic device 204 storing available activity information in a table, which we refer to as an "available activity" table (an example of an available activity table is described in more detail later in this disclosure). It should be noted that although we describe embodiments that store available activity information in an available activity table, embodiments are not limited to using a table to store available activity information. Some embodiments may use other structures for storing available activity information, such as an associative array, a content addressable memory, etc.
[0077] Figure 4 A flow chart illustrating a process for storing activity information describing activities available at the companion electronic device 204 into an available activities table according to some embodiments is presented. Figure 4 The operations shown in are presented as general examples of operations performed by some embodiments. The operations performed by some embodiments include different operations and / or operations performed in a different order. In addition, although certain mechanisms are used to describe the operations (e.g., companion electronic device 204, etc.), in some embodiments, other mechanisms perform the operations. For example, one or both of source electronic device 202 and second source electronic device 206 may perform similar operations to store available activity information describing activities available to them.
[0078] Figure 4 The processing procedure shown in begins with the companion electronic device 204 receiving activity information describing activities available at a second application at the companion electronic device 204 (e.g., activity information describing activities that can be performed at the companion electronic device 204) (step 400). Generally speaking, this activity information describes activities that can be performed in the second application at the companion electronic device 204, that is, operations or functions that the second application at the companion electronic device 204 can perform. In some embodiments, the second application reports / provides activity information when the second application is installed and / or used. In some embodiments, the companion electronic device 204 queries or otherwise monitors the second application to collect activity information describing activities available at the second application. In some embodiments, the activity information includes activity information for activities that have not yet been executed on the companion electronic device 204 but are available for execution (e.g., activity information reported by the second application when the second application is installed / updated, launched, used, etc. at the companion electronic device 204).
[0079] Next, the companion electronic device 204 determines a second activity identifier (i.e., an activity identifier for activity information describing an activity available at the second application) (step 402). Generally speaking, the second activity identifier identifies the second application and the activity available at the second application. The second activity identifier can be an encoded representation of the activity information describing the activity available at the second application. In some embodiments, the companion electronic device 204 is executed by the source electronic device 202 to generate an activity identifier for an activity executed in the first application (see Figure 3 , step 306). For example, in some embodiments, companion electronic device 204 uses the same hash function to generate the second activity identifier that source electronic device 202 used to generate the activity identifier for the activity executed in the first application.
[0080] In some embodiments, when the second application can perform an activity including accessing resources at a network domain, the activity information for this activity includes the domain name of the network domain. In some of these embodiments, the second activity identifier is an encoded representation of the domain name, which enables the second application to "claim" the domain name, that is, to declare that the second application can use the resources at the domain name so that the companion electronic device 204 can transfer the corresponding activity to the second application. For example, as will be described later, in the case where the second application streams a movie from a specific site on the Internet, the second activity identifier can be an encoded representation of at least some portion of the domain name of the site. It should be noted that the second application can be different from the first application (i.e., the application whose activity is announced in the activity announcement message), so that applications different from the first application can continue activities at the companion electronic device 204.
[0081] Next, the companion electronic device 204 stores the second activity identifier in the available activity table (step 404 ).
[0082] Request to expand activity data and transfer activities
[0083] In some embodiments, upon receiving an activity announcement message, the electronic device may request extended activity data for the announced activity so that the announced activity may then be transferred to the electronic device. Figure 5 A flow chart illustrating a process for requesting extended activity data and transferring an activity according to some embodiments is presented. More specifically, in Figure 5 During the process shown in FIG. 1 , the companion electronic device 204 requests the source electronic device 202 for extended activity data for an activity executed in the first application in the source electronic device 202 . Figure 5The operations shown in are presented as general examples of operations performed by some embodiments. The operations performed by some embodiments include different operations and / or operations performed in a different order. In addition, although certain mechanisms are used to describe the operations (e.g., source electronic device 202, companion electronic device 204), in some embodiments, other electronic devices and / or mechanisms perform the operations.
[0084] Figure 5 The process shown in FIG. 1 begins with the companion electronic device 204 receiving an activity announcement message (step 500), such as an activity announcement message broadcast from the source electronic device 202 (see FIG. 1 ). Figure 3 , step 310). Next, the companion electronic device 204 determines whether the companion electronic device 204 is in a receiving state (step 502). Generally speaking, the companion electronic device 204 is in a receiving state when it is available to perform an activity transfer. For example, in some embodiments, the companion electronic device 204 transitions to a receiving state when the device "wakes up" (e.g., when a lock screen is displayed after a user presses a button to wake the device). In some embodiments, the companion electronic device 204 is not in a receiving state when the companion electronic device 204 is in use (e.g., when a user is using an application at the companion electronic device 204 and / or when a user has used an application for a given period of time).
[0085] If the companion electronic device 204 is not in a receiving state (step 502, no), the processing procedure ends (i.e., the activity announcement message is ignored). Otherwise, if the companion electronic device 204 is in a receiving state (step 502, yes), the companion electronic device 204 determines whether a second application associated with the first application is available at the companion electronic device 204 (step 504). Generally speaking, this operation includes determining whether the application is available on the companion electronic device 204 to continue the activity described in the activity announcement message from the source electronic device 202. See later Figures 7 and 8 Determining whether the second application is available is described in more detail.
[0086] If the second application is not available (step 504, no), the process ends. Otherwise, if the second application is available (step 504, yes), the companion electronic device 204 retrieves activity information for the second application (step 506). For example, as will also be seen Figures 7 and 8 and Figure 11 to Figure 12To describe in more detail, after determining the second application, the companion electronic device 204 may use the activity identifier for the second application to retrieve activity information describing activities available in the second application from a table of available activities (or from another structure used by the companion electronic device 204 to store available activity information). In some embodiments, the companion electronic device 204 uses the retrieved activity information (e.g., using the application identifier in the retrieved activity information) to customize an indication that the activity is resumable, such as described below with reference to steps 508 and / or Fig.14 See Fig.11 Describe application identifiers in more detail.
[0087] Next, the companion electronic device 204 presents an indication that the activity is resumable (step 508). For example, the companion electronic device 204 may present a graphical icon and / or a notification on the display of the companion electronic device 204. Fig.14 Describe the instructions in more detail.
[0088] Next, the companion electronic device 204 determines whether the activity transfer is accepted (step 510). In some embodiments, the user of the companion electronic device 204 accepts and / or rejects the activity transfer by performing an action on the indication (such as clicking on the indication, dragging the indication in one or more directions and / or to one or more specific locations, etc.). For example, to accept the activity transfer, the user may use a finger to tap the icon / notification (on the touch screen display) and drag the icon / notification in a first direction (e.g., left to right, upward, in a circular clockwise direction, etc.). As another example, to reject the activity, the user may use a finger to tap the icon / notification and drag the icon / notification in a second direction (e.g., right to left, downward, in a circular counterclockwise direction, etc.). In some embodiments, the companion electronic device 204 determines that the activity transfer is not accepted based on a timeout period (i.e., by determining that a period of time has passed since the indication was presented without the user performing an action to accept the indication / activity transfer).
[0089] If the activity transfer is not accepted (step 510, no), the processing procedure ends. It should be noted that in some embodiments, if the activity transfer is not accepted, the companion electronic device 204 sends a message to the source electronic device 202 to indicate that the activity transfer is not accepted. If the activity transfer is accepted (step 510, yes), the companion electronic device 204 sends a message to the source electronic device 202 to request extended activity data for the activity executed in the first application (step 512). Generally speaking, the request for extended activity data includes information that facilitates the source electronic device 202 to determine the activity for which the extended data is being requested. For example, in some embodiments, the companion electronic device 204 includes the activity identifier from the activity announcement message with the request for extended activity data.
[0090] Next, after receiving the extended activity data from the source electronic device 202 in response to the request for the extended activity data, the companion electronic device 204 configures the second application using the extended activity data (step 514). Configuring the second application may include launching / starting the second application, setting the state of the second application (or causing the state to change) based on the extended activity data, and otherwise configuring the second application to perform corresponding operations. For example, the companion electronic device 204 may pass a file / resource identifier, information representing a file / resource, and / or a reference to a file / resource in the extended activity data to the second application so that the second application accesses the file / resource (e.g., an identifier of a cloud storage file accessed by the second application from a cloud-based storage located on the Internet / information representing the cloud storage file / reference to the cloud storage file, an identifier of a file accessed by the second application from a database / information representing the file / reference to the file, etc.). In some embodiments, when the activity includes writing a file stored at the source electronic device 202, the extended activity data includes the file or information representing the file, thereby enabling the companion electronic device 204 and / or the second application to use / regenerate the file at the companion electronic device 204 for the second application. In some embodiments, the extended activity data includes edits in the file, such as the location and / or content of the edits in the file. In some embodiments, the extended activity data includes location information, such as the last played / viewed / recorded location in the media file (i.e., the location in the media file where playback or recording stopped or last executed), the location of a marker in the file, the location / state of the game in the video game (e.g., the last level played, the coordinates of the player's last location, the score and / or achievement won, and / or information that can be used to reproduce the game state played on the source electronic device 202 at the companion electronic device 204), etc.
[0091] Next, the companion electronic device 204 begins executing the activity in the second application (step 516), which generally includes starting / launching the second application at the companion electronic device 204 (if the second application is not already executing) and executing the second application at the companion electronic device 204 based on the extended activity data. For example, the companion electronic device 204 may cause the second application to begin executing in a viewing and / or editing mode for a file associated with the posted activity, and may cause the second application to scroll to the last position in the file viewed / edited at the source electronic device 202. Next, the companion electronic device 204 sends a notification to the source electronic device 202 indicating that the activity is transferred (step 518).
[0092] It should be noted that some embodiments may use information in the activity announcement message (e.g., an activity identifier) to begin configuring the second application while the extended activity data is being transmitted or even before the extended activity data is requested. Some of these embodiments use information in the activity announcement message to set an initial context for the second application, set a mode for the second application (e.g., edit mode, read-only mode, email writing mode, note writing mode, etc.). Thus, some embodiments may start and / or configure the second application before receiving the extended activity data (perhaps once the activity transfer is accepted), thereby improving performance in slow networks by hiding data transfer time with application startup time.
[0093] In some embodiments, the companion electronic device 204 sends a request for extended activity data using a signal different from the communication signal 208 and / or by using a communication channel / network interface different from the communication channel / network interface on which the activity announcement message is received. For example, the companion electronic device 204 may receive the activity announcement message via a Bluetooth link (using the BLE protocol) and may request extended activity data via a Wi-Fi link or the Internet. In these embodiments, the source electronic device 202 and the companion electronic device 204 use the communication signal 208 (e.g., a Bluetooth link) to exchange information that enables the electronic devices to communicate via different communication channels / networks. For example, in some of these embodiments, the companion electronic device 204 establishes a peer network (e.g., a dedicated Wi-Fi network) and provides information for accessing the peer network to the source electronic device 202. In some embodiments, the source electronic device 202 provides the extended activity data to a server and the companion electronic device 204 receives the extended activity data from the server, for example, via the Internet.
[0094] Transition to receiving state based on announcement information
[0095] although Figure 5 We describe receiving activity announcement messages ( Figure 5 , step 500) and determining whether the companion electronic device 204 is in a receiving state ( Figure 5 , step 502), but some embodiments transfer to the receiving state based on the information in the received activity announcement message. In some of these embodiments, upon receiving the activity announcement message (e.g., Figure 5 As shown in FIG. 5 , after step 500), the companion electronic device 204 does not determine whether the companion electronic device 204 is in a receiving state, i.e. Figure 5 The processing procedure shown in FIG. 5 continues from step 500 to step 504 without executing the operation of step 502 .
[0096] For example, in some embodiments, the source electronic device 202 uses a low power protocol (such as Bluetooth Low Energy (BLE), ZigBee, etc.) to broadcast activity announcement messages via corresponding communication signals 208. A device such as the companion electronic device 204 may monitor the activity announcement messages broadcast from the source electronic device 202 using a corresponding low power mechanism (such as a baseband processor within a corresponding network interface, such as a baseband processor in the network connection subsystem 106). In some of these embodiments, the reception of the activity announcement message is handled by the companion electronic device 204 using only the baseband processor of the companion electronic device 204, which means that the companion electronic device 204 may otherwise be in an idle state (e.g., a subsystem such as a processing subsystem is in a low power state). For example, in some embodiments, the companion electronic device 204 may be a smart phone in an idle state in a user's pocket in which the baseband processor monitors for activity announcement messages while the processing subsystem (and generally the companion electronic device 204) is in a low power state.
[0097] In some embodiments, upon so identifying an activity announcement message, the baseband processor wakes up the processing subsystem (and may generally transition the companion electronic device 204 out of an idle operating state to a higher power / more active operating state) to perform subsequent operations. For example, in some embodiments, the companion electronic device 204 may monitor for activity announcement messages and react to the activity announcement messages as described in a pending U.S. patent application filed on the same date as the present application by inventors Craig P. Dooley, Akshay Mangalam Srivatsa, Anjali S. Sandesara, and Michael Giles, entitled “Operating Mode Transitions based on Advertising Information,” having attorney docket number APL-P22643USP1, and which is incorporated by reference as described above. In some embodiments, the companion electronic device 204 / smartphone may not need to be removed from the user's pocket and activated to place the companion electronic device 204 in a receiving state.
[0098] Respond to requests for expanded campaign data
[0099] Figure 6 A flow chart illustrating a process for responding to a request for extended activity data according to some embodiments is presented. More specifically, in Figure 6 During the process shown in FIG. 1 , an electronic device such as source electronic device 202 responds to a request for extended activity data from an electronic device such as companion electronic device 204. Note Figure 6The operations shown in are presented as general examples of operations performed by some embodiments. The operations performed by some embodiments include different operations and / or operations performed in a different order. In addition, although certain mechanisms are used to describe the operations (e.g., source electronic device 202, companion electronic device 204), in some embodiments, other electronic devices and / or mechanisms perform the operations.
[0100] Figure 6 The process shown in FIG. 1 begins when the source electronic device 202 receives a request for extended activity data (step 600), for example, as shown in FIG. Figure 5 As described in step 512 of , the electronic device 204 transmits a request for extended activity data.
[0101] Next, the source electronic device 202 uses the information in the request for extended activity data to determine that the request is for extended activity data for the first application (step 602). For example, as described above, the request for extended activity data may include an activity identifier from an activity announcement message (see Figure 3 In some embodiments, the source electronic device 202 executes the process of storing the announced activity table (or other structure in which the announced activity information is stored; see below for more details). Fig.12 When the source electronic device 202 finds an input item in the announced activity table including the activity identifier from the activity announcement message, the source electronic device 202 can retrieve the activity information of the input item to determine that the activity identifier corresponds to the first application, for example, by determining that the application identifier of the input item is the application identifier of the first application (see Figure 11 to Figure 12 Examples of activity information and application identifiers are described in more detail).
[0102] Next, the source electronic device 202 sends a notification / request to the first application to perform updates associated with the activity as needed (step 604). In some embodiments, the notification causes the first application to update the extended activity data before providing the extended activity data to the companion electronic device 204. For example, the first application can use the notification to update the last scroll / view position of the file associated with the activity and / or perform completion operations associated with the activity before transferring the activity, such as saving the file associated with the activity, updating the extended activity data with the latest draft of the file associated with the activity, etc.
[0103] Next, the source electronic device 202 retrieves the extended activity data for the first application (step 606). In some embodiments, the source electronic device 202 requests the first application to provide the extended activity data. In some embodiments, the first application provides the extended activity along with some or all of the initial activity information (see Figure 3, step 300) and / or periodically report the extended activity information (e.g., reporting every N seconds, where N is a number such as 1, 3, etc., and reporting the extended activity information whenever an event occurs in the first application (such as when a file is stored in the first application, a movie being watched is paused in the first application, etc.)).
[0104] Next, the source electronic device 202 sends the extended activity data to the companion electronic device 204 (step 608). Generally speaking, the extended activity data includes information that can be used to configure the second application to continue the activity, such as a file identifier that identifies a file used for the activity performed in the first application (and / or information representing the file, such as a reference to the file), a uniform resource location (URL) of a web page accessed / browsed in the first application (and / or information representing the web page / URL, such as a reference to the web page / URL), location information (e.g., an indication of the last viewed / scrolled position in a file or web page, the last played position in a video game, etc.), a copy of a draft file stored at the source electronic device 202 and / or in a storage device accessible on the Internet (e.g., "cloud storage") or a corporate network (and / or information representing the draft file, such as a reference to the draft file), etc.
[0105] Next, the source electronic device 202 receives a notification that the activity has been transferred (step 610), for example, receiving a notification as shown in FIG. Figure 5 Step 518 describes the notification sent by the companion electronic device 204. In some embodiments, in response to receiving the notification, the source electronic device 202 notifies the first application that the activity is transferred (step 612). In some embodiments, the source electronic device 202 and / or the first application performs one or more operations related to the activity based on receiving the notification, such as housekeeping tasks such as deleting locally stored files / drafts, closing open files, closing applications, etc.
[0106] In some embodiments, the source electronic device 202 provides the extended activity data using a signal different from the communication signal 208 and / or by using a communication channel / network interface different from the communication channel / network interface over which the activity announcement message and / or the request for extended activity data is communicated. For example, the source electronic device 202 may receive the request for extended activity data via a Bluetooth link and may provide the extended activity data via a Wi-Fi link or the Internet.
[0107] Secure communication using cloud pairing
[0108] As discussed earlier, in some embodiments, the electronic devices performing the activity transfer operation participate in a pre-pairing operation, e.g., a "cloud pairing" operation, such as the predefined pairing described in U.S. patent application filed on the same date as the present application, entitled "Predefined Wireless Pairing," by inventors Jason C. Conn, Akshay Mangalam Srivatsa, Craig P. Dooley, and Michael Giles, having attorney docket number APL-P22642USP1, and the contents of which are incorporated by reference as described above. In some embodiments, the electronic devices use security information obtained during the cloud pairing operation (e.g., using an encryption key obtained during the cloud pairing operation) to encrypt and decrypt messages exchanged with each other for performing the activity transfer operation.
[0109] For example, in some embodiments, the source electronic device 202 encrypts the activity announcement message using an encryption key obtained during a cloud pairing operation performed between the source electronic device 202 and the companion electronic device 204 (see Figure 3 , step 310) and / or extended activity data (see Figure 6 , step 608). In some embodiments, the companion electronic device 204 encrypts the request for the extended activity data using the same security information, different security information obtained during a cloud pairing operation performed by the companion electronic device 204 with the source electronic device 202, and / or information derived from the security information obtained during the cloud pairing operation (see Figure 5 , step 512) and / or notification that the activity is transferred (see Figure 5 , step 518).
[0110] Using the activity identifier to determine the second application
[0111] As previously described, in some embodiments, the electronic device determines whether a second application associated with the first application is available in the electronic device (to facilitate possible transfer of activity to the electronic device). Figure 7 A flow chart illustrating a process for determining whether a second application is available at the companion electronic device 204 according to some embodiments is presented. Figure 5 During the processing procedure shown in (e.g., at step 504), Figure 7 The operation shown in the figure should be noted Figure 7The operations shown in are presented as general examples of operations performed by some embodiments. The operations performed by some embodiments include different operations and / or operations performed in a different order. In addition, although certain mechanisms are used to describe the operations (e.g., companion electronic device 204, etc.), in some embodiments, other mechanisms perform the operations. For example, one or both of source electronic device 202 and second source electronic device 206 can perform similar operations to determine whether the second application is available on its own.
[0112] Figure 7 The process shown in FIG. 7 begins with the companion electronic device 204 determining whether a flag in the activity announcement message is validated (step 700). As previously described, in some embodiments, the source electronic device 202 validates a flag in the activity announcement message to indicate that the activity identifier is / includes a representation of the domain name for the announced activity. In some of these embodiments, the companion electronic device 204 determines that the activity announcement message includes a representation of the domain name by determining that the flag is validated. Fig.11 and Fig.13 Describe the flag in more detail.
[0113] If the flag in the activity announcement message is confirmed (step 700, yes), the companion electronic device 204 processes the flag (step 702). Figure 8 The processing of the flags that occurs at step 702 is described. Some embodiments repeat step 702 for each confirmed flag in the activity announcement message (i.e., reference Figure 8 The process described in the description), for example, when the activity announcement message includes two or more confirmation flags, the process is repeated for each confirmation flag.
[0114] If the activity announcement message does not include a verified flag (step 700, no), the companion electronic device 204 compares the activity identifier from the activity announcement message with the activity identifiers for the activities available at the companion electronic device 204 (step 704). For example, the companion electronic device 204 may store the available activity table at the companion electronic device 204 (or other structure in which the companion electronic device 204 stores the available activity information, as described above). Figure 4 The activity identifier from the activity announcement message is searched in the activity identifier in the activity identifier described in the activity identifier in the activity announcement message.
[0115] If the search for the activity identifier finds a match in the input item in the available activity list (step 706 , yes), the companion electronic device 204 determines that the second application is the application whose activity identifier is stored in the input item (step 708 ).
[0116] If the lookup of the activity identifier does not find a match in the available activity information (step 706, no), the companion electronic device 204 determines that the application associated with the first application is not available at the companion electronic device 204 (step 710).
[0117] Using a flag to identify the second application
[0118] As previously described, some embodiments verify a flag in an activity announcement message. Figure 8 A flow chart illustrating a process for determining a second application using a flag according to some embodiments is presented. More specifically, Figure 8 The presentation instructions accompany the electronic device 204 in Figure 7 Flowchart of the processing procedure executed at step 702 of FIG. Figure 8 The operations shown in are presented as general examples of operations performed by some embodiments. The operations performed by some embodiments include different operations and / or operations performed in a different order. In addition, although certain mechanisms are used to describe the operations (e.g., companion electronic device 204, etc.), in some embodiments, other mechanisms perform the operations. For example, one or both of source electronic device 202 and second source electronic device 206 can perform similar operations themselves.
[0119] Figure 8 The process shown in begins with the companion electronic device 204 determining the application corresponding to the flag (step 800). In some embodiments, the companion electronic device 204 uses the position of the confirmation flag and / or the value of the flag to determine the application corresponding to the flag. For example, when the activity announcement message includes more than one flag that can be confirmed, each of the flags can be used to identify a different application that can be used to continue the activity. In some embodiments, the flag is a multi-bit field and different values of the multi-bit field identify different applications. In some embodiments, the companion electronic device 204 stores an image that identifies the application corresponding to the position / value of the flag.
[0120] Next, the companion electronic device 204 determines whether the application corresponding to the logo is available at the companion electronic device 204 (step 802). For example, the companion electronic device 204 may check whether the application corresponding to the logo is installed at the companion electronic device 204. In some embodiments, step 802 is not performed / skipped, so that Figure 8 The process shown in continues from step 800 to step 804. For example, step 802 is not performed in embodiments that use flags to identify only pre-installed applications that are known to be available at the companion electronic device 204 and cannot be uninstalled by the user.
[0121] If the application corresponding to the symbol is available (step 802, yes), the companion electronic device 204 determines that the second application is the application corresponding to the symbol (step 804). The processing procedure then ends, which may include continuing Figure 5 Step 506.
[0122] If the application corresponding to the tag is not available at the companion electronic device 204 (step 802, no), the processing procedure ends. At this point, the companion electronic device 204 may determine that the second application is not available (e.g., Figure 5 Step 504, No), or you can continue Figure 7 Step 704 in the process is to determine whether the second application is available by using the activity identifier from the activity announcement message.
[0123] In some embodiments, Figure 8 The processing procedure shown in allows an application different from the first application to continue activity at the companion electronic device 204. For example, consider a situation where the first application is a web browser and the activity performed in the first application includes browsing a social media website. In this example, the second application may be a social media app (i.e., the second application is an app and not a web browser) that accesses resources (e.g., social media user pages, etc.) accessed in the first application / web browser. By using a flag, these embodiments can configure the social media app to continue the activity performed at the social media website at the same point where the web browser stopped. As another example, in some embodiments, the first application is an independent media streaming app (such as a media player app) that streams movies from a website and the second application is a web browser that can stream movies. By using a flag, these embodiments configure the web browser to continue playing the movie, which may include using extended activity data for the activity so that the web browser continues playing the movie at the point where the media streaming app stopped.
[0124] In some embodiments, the source electronic device 202 sets a second flag (or a different value for the flag) in the activity announcement message to indicate that the source electronic device 202 will subsequently provide instructions / information on how to continue the activity at the companion electronic device 204. In some embodiments, the application corresponding to the flag includes instructions / information on how to continue the activity at the companion electronic device 204. In some embodiments, the extended activity data provides instructions / information for continuing the activity at the companion electronic device 204.
[0125] Determine the second application using the structure of the stored announcement activity
[0126] See above Figure 3As described above, in some embodiments, the activity identifier in the activity announcement message identifies an entry in a structure (eg, a table) in which the electronic device announcing the activity stores activity information for the announced activity. Fig. 9 A flow chart illustrating a process for determining whether a second application is available when an activity identifier identifies an input item in this structure according to some embodiments is presented. More specifically, in Fig. 9 During the process shown in FIG. 1 , the companion electronic device 204 uses the activity identifier that identifies the input item in the announcement activity table (in which the source electronic device 202 stores activity information for the announcement activity) to determine whether the second application associated with the first application is available at the companion electronic device 204 (see below). Fig.12 The following table describes an example of an announcement activity in more detail.) Note Fig. 9 The operations shown in are presented as general examples of operations performed by some embodiments. The operations performed by some embodiments include different operations and / or operations performed in a different order. In addition, although certain mechanisms are used to describe the operations (e.g., source electronic device 202, companion electronic device 204), in some embodiments, other electronic devices and / or mechanisms perform the operations.
[0127] Fig. 9 The process shown in FIG. 1 begins when the companion electronic device 204 receives an activity identifier that identifies an entry in a posting activity table in which the source electronic device 202 stores activity information for posting activities (step 900). In some embodiments, the activity identifier includes a table identifier and an entry index, the table identifier identifying the posting activity table in which the source electronic device 202 stores activity information for posting activities, and the entry index identifying the entry in the posting activity table identified by the table identifier that stores activity information for posting activities. In some embodiments, the table identifier is a hash of the posting activity table data.
[0128] Next, the companion electronic device 204 determines whether a table of posted activities for the activity identifier is available at the companion electronic device 204 (step 902). In some embodiments, the companion electronic device 204 uses the table identifier from the activity identifier to determine whether the companion electronic device 204 stores a local copy of the posted activity table.
[0129] If the announcement activity table for the activity identifier is not available at the companion electronic device 204 (step 902, no), the companion electronic device 204 retrieves the announcement activity table from the source electronic device 202 (step 904). In some embodiments, the companion electronic device 204 requests the source electronic device 202 to send the announcement activity table identified by the activity identifier from the activity announcement message, such as the announcement activity table identified by the table identifier. Using the communication signal 208 and / or a different communication signal / different channel, the companion electronic device 204 can transmit this request, and the source electronic device 202 can respond to the request.
[0130] In some embodiments, the companion electronic device 204 periodically synchronizes its local copy / copies of the announcement activity table with the source electronic device 202. For example, the companion electronic device 204 may receive a copy of the announcement activity table from the source electronic device 202 using a "push" mechanism (i.e., without sending a request for a copy of the announcement activity table).
[0131] If the posted activity table for the activity identifier is available at the companion electronic device 204 (step 902, yes), or after receiving the posted activity table from the source electronic device 202, the companion electronic device 204 uses the activity identifier to retrieve the activity information from the posted activity table (step 906). For example, the companion electronic device 204 may retrieve the activity information from the input item identified by the input item index in the posted activity table.
[0132] In some embodiments, Fig. 9 The operations shown in enable information describing more than one activity to be announced in a single activity announcement message. For example, consider a case where the size of an activity announcement message is limited, e.g., due to limitations of a network protocol used to broadcast the activity announcement message. In this case, an input item identifier (i.e., an activity identifier that identifies an input item in which the activity information is stored) may be smaller (e.g., represented using fewer bits than an activity identifier) than an encoded representation (i.e., an activity identifier generated from the same activity information), enabling such embodiments to carry multiple input item identifiers in an activity announcement message.
[0133] See above Figure 3 As mentioned, the described embodiments are not limited to using a table for storing available activity information. Some embodiments use different structures for storing available activity information, such as an associative array, a content addressable memory, etc. In these embodiments, the activity identifier may identify an entry in the structure where the source electronic device 202 stores activity information for announcing an activity. For example, in these embodiments, the table identifier may identify a structure and the entry index may identify an index in the structure where the source electronic device 202 stores activity information for announcing an activity.
[0134] Additionally, although we describe embodiments that use one announcement activity table, some embodiments use more than one announcement activity table, such as storing activity information for announcement activities in different announcement activity tables.
[0135] Determine recent activity
[0136] As previously described, network environment 200 may include a second source electronic device that may broadcast an activity announcement message for an activity executed at the second source electronic device. Also as described earlier, some embodiments include a timestamp in the activity announcement message to indicate the time when the activity announced in the activity announcement message was last executed. Fig.10 A flow chart illustrating a process for determining the most recent activity from two or more activity announcement messages according to some embodiments is presented. More specifically, in Fig.10 During the process shown in , companion electronic device 204 uses the timestamp included with the announcement from source electronic device 202 ("activity announcement") and the timestamp included with the announcement from second source electronic device 206 ("second activity announcement") to determine the most recent of the activities announced in the activity announcement and the second activity announcement. Fig.10 The operations shown in are presented as general examples of operations performed by some embodiments. The operations performed by some embodiments include different operations and / or operations performed in a different order. In addition, although certain mechanisms are used to describe the operations (e.g., source electronic device 202, companion electronic device 204, second source electronic device 206), in some embodiments, other electronic devices and / or mechanisms perform the operations.
[0137] for Fig.10 The processing procedure shown in FIG. 1 assumes that the companion electronic device 204 has received an activity announcement from the source electronic device 202, such as Figure 5 Thus, the companion electronic device 204 has the activity announcement, including a first timestamp included with the activity announcement.
[0138] Fig.10 The process shown in FIG. 1 begins with the companion electronic device 204 receiving a second activity announcement (step 1000). Next, the companion electronic device 204 compares a first timestamp included in the activity announcement with a second timestamp included in the second activity announcement (step 1002). For example, the companion electronic device 204 may compare the timestamps to see which one is newer (i.e., indicates a more recent time).
[0139] If the comparison indicates that the first timestamp is newer (step 1004, yes), the companion electronic device determines that the activity performed in the first application (i.e., the activity announced in the activity announcement) is the most recent activity (step 1006). Otherwise, if the comparison indicates that the second timestamp is newer (step 1004, no), the companion electronic device 204 determines that the activity performed in the second application (i.e., the activity announced in the second activity announcement) is the most recent activity (step 1008).
[0140] In some embodiments, the companion electronic device 204 reduces the number of active activities that can be resumed by only presenting an indication that the activity is resumed for the most recent of the posted activities. Fig.14 In some embodiments, companion electronic device 204 uses timestamps to present indications of resumable activities in order, such as presenting the most recent activity first, followed by other announced activities in descending order based on relative recency. In such embodiments, two or more indications may be presented side by side, one above the other, etc., based on the relative recency of the corresponding activities.
[0141] In some embodiments, the companion electronic device 204 uses the history of previously resumed activities to present indications of resumable activities in order. In some embodiments, the companion electronic device 204 sorts previously resumed activities first, i.e., presents indications of previously resumed activities that can be resumed before indications of previously unresumed activities that can be resumed. In some embodiments, two or more indications are presented in an order based on the number of times each of the corresponding activities has been previously resumed.
[0142] Event Information
[0143] As previously described, some embodiments use activity information that describes activities performed at an electronic device. Fig.11 A block diagram illustrating activity information 1100, activity information 1110, and activity information 1120 according to some embodiments is presented. Fig.11 Activity information 1100, activity information 1110, and activity information 1120 shown in FIG. 1 are presented as general examples of the format of activity information used by some embodiments. Some embodiments use different formats and / or different information included in the activity information.
[0144] Activity information 1100 includes application identifier 1102, which identifies the application used to perform the activity described in activity information 1100. For example, application identifier 1102 (which includes the string com.apple.Keynote) identifies the application Keynote, which is an application that can be used to edit and view presentations. Activity descriptor 1104 includes the string EditPresentation, which identifies the activity performed using the application Keynote as editing a presentation. Timestamp 1106 (which includes string / number 103) identifies the time when the activity was last performed, such as the last time a user edited a presentation in the application Keynote. The timestamp may indicate the actual time when the activity was last performed (e.g., the wall clock time (or a representation thereof, such as the system time)), or it may be a representation of the time that has elapsed since the activity was last performed after the hour or since a synchronization event. In some embodiments, the timestamp indicates an actual time (e.g., absolute / wall clock time (or a representation thereof, such as system time)) when the source electronic device 202 was last used (e.g., actively last used by a user), or it may be a representation of the time that has elapsed since the source electronic device 202 was last used after the hour or since a synchronization event. In the activity information 1100, the flag 1108 is not verified.
[0145] Activity information 1110 includes an application identifier 1112 that identifies the application used to perform the activity described in activity information 1110. For example, application identifier 1112 (which includes the string com.apple.Mail) identifies the application Mail (an application that can be used to compose and send email messages). Activity descriptor 1114 includes the string ComposeDraft to identify that the activity performed using the application Mail includes composing a draft message. Timestamp 1116 (which includes the string / number 315) identifies the time when the activity was last performed, for example, the last time a user composed a draft using Mail. Flag 1118 for activity information 1110 has not been confirmed.
[0146] Activity information 1120 includes an application identifier 1122 that identifies the application used to perform the activity described in activity information 1120. For example, application identifier 1122 (which includes the string com.apple.Safari) identifies the application Safari (a web browser). Activity descriptor 1124 includes the string www.evideostreamer.com, which identifies the domain name accessed using the web browser. In this example, activity descriptor 1124 retains the domain name, so flag 1128 in activity information 1120 is a confirmed flag 1128 to indicate that activity description 1124 includes the domain name. Timestamp 1126 (which includes the string / number 820) identifies the time when the web browser was last used to access the mobile streaming website.
[0147] Activity information 1130 includes an application identifier 1132 that identifies the application used to perform the activity described in activity information 1130. For example, application identifier 1132 (which includes the string com.CompanyA.MediaPlayer) identifies the application MediaPlayer (which in this example is developed by developer CompanyA) (which is an application that can be used to play and record multimedia content). Activity descriptor 1134 includes the string PlayVideo to identify that the activity performed using the application MediaPlayer includes playing a video (i.e., video playback). Timestamp 1136 (which includes the string / number 902) identifies the time when the activity was last performed, for example, the last time a user played a video using MediaPlayer. Flag 1138 for activity information 1130 has not been confirmed.
[0148] For illustrative purposes, Fig.11 The timestamps shown in are calculated as deltas (differences) since a synchronization event (e.g., the hour). Fig.11 In the example shown in , the activity described using activity information 1100 is the most recent activity because timestamp 1106 indicates the least amount of time has elapsed since the hour since the activity described using activity information 1100 was performed.
[0149] It should be noted that although Fig.11The examples shown in use strings for application identifiers and activity descriptors, but some embodiments may use different information to identify applications and / or activities. For example, some embodiments use numeric identifiers for application identifiers and / or activity descriptors. In some embodiments, the application identifier is an identifier of a corresponding application in an online "app store." In some embodiments, the application identifier includes some or all of a bundle identifier (e.g., a bundle ID). Additionally, while the application identifier is shown separate from the activity descriptor, some embodiments combine the application identifier and activity descriptor in a single identifier.
[0150] In some embodiments, the application / app developer provides information for activity descriptors such as activity descriptor 1104, activity descriptor 1114, activity descriptor 1124, and activity descriptor 1134. In these embodiments, the developer of the application / app may determine several activities for the application / app and may provide relevant values for the activity descriptors.
[0151] Announcement activity list
[0152] Fig.12 A block diagram illustrating an announced activity table 1200 according to some embodiments is presented. As described above, the announced activity table 1200 includes information about announced activities (i.e., activities whose activity announcement messages have been sent by an electronic device such as the source electronic device 202). It should be noted that Fig.12 The announcement activity table shown in is presented as a general example of an announcement activity table used by some embodiments. Some embodiments represent activity information in different ways and / or include more or less information in the announcement activity table.
[0153] Input item 1202 (which is identified by input item index 1206) stores activity information 1100 and activity identifier 1204. In this example, activity identifier 1204 is generated using a hash of application identifier 1102 and activity descriptor 1104 (such as a string "com.apple.Keynote::EditPresentation").
[0154] Input item 1212 (identified by input item index 1216) stores activity information 1110 and activity identifier 1214. In this example, activity identifier 1214 is generated using application identifier 1112 and activity descriptor 1114 (such as a hash of the string "com.apple.Mail::ComposeDraft").
[0155] Input item 1222, which is identified by input item index 1226, stores activity information 1120 and activity identifier 1224. In this example, activity identifier 1224 is generated using activity descriptor 1124, such as a hash of the string www.evideostreamer.com.
[0156] Input item 1232 (which is identified by input item index 1236) stores activity information 1130 and activity identifier 1234. In this example, activity identifier 1234 is generated using application identifier 1132 and activity descriptor 1134 (such as a hash of the string "com.CompanyA.MediaPlayer::PlayVideo").
[0157] For purposes of illustration, input items 1202 to 1232 store all activity information 1100 to 1130, respectively. However, it should be noted that in some embodiments, input items 1202 to 1232 store only some of the activity information 1100 to 1130, respectively. For example, some embodiments do not store timestamps 1106 to 1136 in input items 1202 to 1232.
[0158] Available activity sheets
[0159] In some embodiments, the available activity table described above is similar to Fig.12 1200 is formatted as shown in the announcement activity table 1200. However, the entry items in the available activity table include application information for applications available in the corresponding electronic device (eg, companion electronic device 204).
[0160] Event Announcement
[0161] Fig.13 A block diagram illustrating an activity announcement 1300 (e.g., an activity announcement message) according to some embodiments is presented. Fig.13 The activity announcement message shown in is presented as a general example of an activity announcement message used by some embodiments. Some embodiments order the fields in the activity announcement message differently and / or include different information in the activity announcement message.
[0162] The activity announcement message 1300 optionally includes a device ID field 1302 and a version ID field 1304. The device ID field 1302 includes an identifier that identifies the device from which the activity announcement message 1300 is sent (e.g., identifies the source electronic device 202). The version ID field 1304 includes a version identifier, such as a version identifier that the companion electronic device 204 can use to determine how fields in the activity message 1300 are formatted and / or how information is stored in the fields.
[0163] The activity identifier field 1306 includes an activity identifier, such as one or more of the activity identifiers 1204-1224. The flag field 1308 includes one or more flags, such as flags 1108-1128, corresponding to the announced activity.
[0164] Timestamp field 1310 includes a timestamp for the activity posted in activity identifier field 1306 , such as one or more of timestamps 1106 - 1126 .
[0165] Resumable activity indication
[0166] As previously described, some embodiments present an indication that the activity is resumable prior to requesting extended activity data. Fig.14 A block diagram illustrating a resumable activity indication (i.e., an indication that an activity is resumable) according to some embodiments is presented. More specifically, Fig.14 The resumable activity indication is shown on the display 1400 of the companion electronic device 204. Fig.14 The resumable activity indication shown in is presented as a general example of a resumable activity indication used by some embodiments. Some embodiments use different resumable activity indications and / or present the resumable activity indication in different ways.
[0167] In the illustrated embodiment, the companion electronic device 204 is a smartphone that includes a touch screen display 1400 . Fig.14 The embodiment shown in is in a receiving state, because the display 1400 shows a lock screen with an unlock indicator 1402 showing the phrase "slide to unlock". Generally speaking, the user of the companion electronic device 204 uses the unlock indicator 1402 to perform an operation to unlock the companion electronic device 204, such as sliding the graphic of the unlock indicator 1402 across the display 1400 using a finger.
[0168] The resumable activity indication 1404 includes a graphic (e.g., an icon) that the user can manipulate to accept (or reject) the activity transfer. Fig.14 , the resumable activity indication 1404 includes an icon similar to an envelope, indicating that the resumable activity includes using a mail application. In some embodiments, the user can accept the activity transfer by clicking / touching the resumable activity indication 1404 on the resumable activity indication 1404, and / or by moving the resumable activity indication 1404 along a path on the display 1400. For example, in some embodiments, the user can accept the activity transfer by touching and dragging the resumable activity indication 1404 along or near the path 1406 (shown as a dotted line).
[0169] For purposes of illustration, the resumable activity indication 1404 is displayed at the lock screen of the companion electronic device 204. In some embodiments, the resumable activity indication 1404 may be displayed at different screens / locations (e.g., at the unlock screen, at the menu bar, by using a notification window / pop-up, etc.). In addition, the location, size, graphics, color, and / or other visual features of the resumable activity indication 1404 may vary for different embodiments and may depend on the type of activity that can be resumed. For example, in some embodiments, the companion electronic device 204 determines the graphics displayed in the resumable activity indication 1404 based on the application identifier used to announce the activity. As another example, in some embodiments, the resumable activity indication 1404 is displayed at the lower left corner of the display 1400. Some embodiments present multiple resumable activity indicators simultaneously.
[0170] It should be noted that acceptance (or rejection) of the activity transfer may include moving the resumable activity indicator 1404 along a path different from the path 1406 (e.g., to the top of the screen, along a curved path, etc.). In some embodiments, the user may accept the activity transfer by clicking on the resumable activity indicator 1404, by tapping on the resumable activity indicator 1404, by sliding the resumable activity indicator 1404, by performing a gesture using the resumable activity indicator 1404, etc.
[0171] Automatic and manual event announcements
[0172] In some embodiments, the source electronic device 202 broadcasts the activity announcement automatically, such as at predetermined time intervals, upon receiving activity information, based on the detected location of the source electronic device 202, etc. In these embodiments, the source electronic device 202 may provide a setting, such as a system preference, that the user may use to turn the broadcast of the activity announcement on or off.
[0173] In some embodiments, the source electronic device 202 manually starts broadcasting the activity announcement, i.e., waits for input from the user to start broadcasting the activity announcement. In some of these embodiments, the source electronic device 202 starts broadcasting the activity announcement after detecting the user's input, and continues broadcasting the activity announcement for a predetermined period of time and / or until the user provides input that causes the source electronic device 202 to stop the activity announcement. In some embodiments, the user input for starting and / or stopping the activity announcement includes movement of the source electronic device 202 (e.g., shaking the source electronic device 202, moving the source electronic device 202 in an arc, swinging the source electronic device 202, etc.), performing one or more gestures on the touch screen of the source electronic device 202, pressing keys and / or button combinations, etc.
[0174] In some embodiments, the activity announcement message and / or the message that the source electronic device 202 sends to the companion electronic device 204 along with (i.e., in addition to) the activity announcement message causes the companion electronic device 204 to start a timer. In some embodiments, the companion electronic device 204 remains in the receiving state as described above until such timer expires. The source electronic device 202 may provide the expiration time of the timer to the companion electronic device 204, or the companion electronic device 204 may determine the expiration time.
[0175] In some embodiments, the companion electronic device 204 presents an indication that the activity is resumable until the timer expires, and if the user accepts the indication, the activity continues at the companion electronic device 204 without requiring the user to perform one or more operations (e.g., fingerprint scanning, password entry, etc.) to unlock the companion electronic device 204. More specifically, the companion electronic device 204 may detect that the user accepts the indication and may bypass the lock screen / unlock operation, thereby allowing the user to begin using the companion electronic device 204 without unlocking the companion electronic device 204. In some embodiments, the user is allowed to bypass the lock screen / unlock operation only before the timer expires.
[0176] Activity continues to structure
[0177] In some embodiments, the third-party application receives a response to the activity transfer operation (eg, as described earlier) via an "activity continuation" framework available at an electronic device that can participate in the activity transfer operation. Figures 3 to 10 The activity continuation framework may provide third-party applications with access to some or all of the operating system functions, daemon helpers, handlers, services, etc., which perform at least some of the activity transfer operations. For example, in some embodiments, the provider of the electronic device and / or the operating system of the electronic device provides an application programming interface (API) through which the third-party application can call functions that facilitate the activity transfer operations. In some embodiments, the activity continuation framework enables third-party applications (and third-party application developers) to transfer activities from one electronic device to another electronic device without implementing (or even understanding) the low-level details of activity continuation.
[0178] For example, in some embodiments, to enable a third-party application to participate in an activity transfer operation, the third-party application developer provides an activity descriptor for an activity that can be executed by the third-party application and a method for configuring the third-party application to perform the activity. In some of these embodiments, at an electronic device such as the source electronic device 202, the third-party application calls a function provided by the activity continuation framework to provide an activity descriptor (and possibly extended activity data) for an activity to be performed in the third-party application. At an electronic device such as the companion electronic device 204, to configure the third-party application to perform the activity, the activity continuation framework can pass extended activity data to the third-party application (e.g., via a command line switch or parameter, by using an object, etc.). Therefore, the activity continuation framework can facilitate the continuation of activities of third-party applications with minimal effort and cost for third-party application developers.
[0179] Exchange messages between electronic devices
[0180] Fig.15 A swim lane diagram illustrating messages exchanged between electronic devices according to some embodiments is presented. Fig.15 As can be seen in FIG. 1 , messages are exchanged between the source electronic device 202 and the companion electronic device 204 over a period of time, with the activity announcement 1500 appearing first and the lower messages appearing later. Fig.15 The messages are shown exchanged in a particular order, but in some embodiments, other messages are exchanged and / or the messages are exchanged in a different order.In general, the electronic devices in the described embodiments exchange sufficient messages to implement the operations described herein.
[0181] Fig.15 The message in is associated with two operations performed by the source electronic device 202 and / or the companion electronic device 204. The first operation (which includes the announcement 1500) is such as Figure 3 During the activity announcement operation, the source electronic device 202 broadcasts at least one activity announcement 1500 .
[0182] The second operation (which includes a request for extended activity data 1502, extended activity data 1504, and notification 1506 of activity transfer) is such as Figures 5 and 61500 . During the activity transfer operation, the companion electronic device 204 responds to the activity announcement 1500 with a request for extended activity data 1502. After receiving the request for extended activity data 1502, the source electronic device 202 responds by sending the extended activity data 1504. In some embodiments, after the companion electronic device 204 uses the extended activity data to start executing the activity at the second application, the companion electronic device 204 sends a notification of activity transfer 1506 to let the source electronic device 202 know that the activity is transferred.
[0183] Retweet information related to the event
[0184] As described above, in some embodiments, a source electronic device (e.g., source electronic device 202) forwards information related to an activity to a companion electronic device (e.g., companion electronic device 204). In general, information related to an activity includes any information that can be used when performing an activity (e.g., an activity transferred to a companion electronic device as described herein or another activity performed on a companion electronic device). For example, information related to an activity includes (but is not limited to) information copied and pasted to a clipboard from the source electronic device 202 (e.g., text, images, videos, sounds, settings, files, etc.), earlier versions of files, contents of an undo buffer (which retains a record of changes made to the system by a user that can be used to reverse the changes, etc.), and / or other types of information. After receiving the information related to an activity, the companion electronic device may use the information related to the activity for one or more activities. For example, when the information related to an activity includes the contents of an undo buffer, the companion electronic device may update a local undo buffer (i.e., an undo buffer in the companion electronic device) using the contents of the undo buffer received from the source electronic device. For example, the undo buffer may include a list of the last N operations performed while editing a file, the list being configured to enable the operations to be reversed or "undoed" while subsequently editing the file using a menu, hot key combination, etc. In this way, the companion electronic device may configure itself to enable the reversal or undo of operations previously performed on the source electronic device.
[0185] Fig.17 A flow chart illustrating a process for forwarding activity-related information from a source electronic device to a companion electronic device according to some embodiments is presented. More specifically, Fig.17 An embodiment is described in which the source electronic device 202 forwards information related to an activity to the companion electronic device 204 using an announcement message. Fig.17The operations shown in the present invention are presented as general examples of operations performed by some embodiments. The operations performed by some embodiments include different operations and / or operations performed in different orders. In addition, although certain mechanisms are used to describe the operations (e.g., accompanying electronic device 204, etc.), in some embodiments, other mechanisms perform the operations.
[0186] for Fig.17 , the contents of the clipboard in the source electronic device 202 are used as information related to the activity. However, in some embodiments, and as described above, other types of information related to the activity may be forwarded from the source electronic device 202. In addition, "clipboard" as used herein indicates a copy and paste clipboard in a corresponding device. In some embodiments, a clipboard is a software service (e.g., an operating system software service, a stand-alone application, etc.) that provides temporary storage of information in an electronic device. The clipboard enables a user to perform operations such as copy, paste, cut, etc. to interact with the information. Such clipboards are generally known in the art and are therefore not described in more detail herein.
[0187] Fig.17 The process shown in FIG. 1 begins when the source electronic device 202 determines that information related to an activity is available for forwarding to the companion electronic device 204 (step 1700). For example, based on receiving the activity information described above (see, e.g., Figure 3 In step 300 of the above, the source electronic device 202 may perform one or more checks and determine that information related to the activity is available. As another example, after receiving an indication that a user has performed a copy operation to copy information (e.g., text, a file, an image, etc.) to a clipboard, the source electronic device 202 may determine that information related to the activity is available. As another example, the source electronic device 202 may monitor various operations performed in the source electronic device 202 as part of performing the activity and may directly or indirectly determine that information related to the activity has become available. As described above, for Fig.17 In the example, the content of the clipboard is information related to the activity. Therefore, the source electronic device 202 determines in step 1700 that there are one or more copy items placed on the clipboard when executing the current activity.
[0188] The source electronic device 202 then generates an information bulletin related to the activity (step 1702). Generally speaking, the information bulletin related to the activity includes sufficient information to enable the companion electronic device 204 (and other devices that may receive the information bulletin related to the activity) to determine that the information related to the activity is of interest and to process the information related to the activity. Continuing with the clipboard example, the source electronic device 202 may generate an information bulletin related to the activity that enables the companion electronic device 204 to determine that the information related to the activity described in the information bulletin related to the activity (i.e., the contents of the clipboard from the source electronic device 202) is of interest to the companion electronic device 204, and to update the clipboard in the companion electronic device 204 using the contents of the clipboard from the source electronic device 202 or based on the contents of the clipboard from the source electronic device 202.
[0189] Fig.18 A block diagram illustrating an activity-related information bulletin 1800 generated by a source electronic device 202 is presented in accordance with some embodiments. The activity-related information bulletin 1800 optionally includes a device ID field 1802, a version ID field 1804, an activity identifier field 1806, and a timestamp field 1808. The device ID field 1802 includes an identifier that identifies the device from which the activity-related information bulletin 1800 was sent (e.g., identifying the source electronic device 202). The version ID field 1804 includes a version identifier, such as a version identifier that the accompanying electronic device 204 can use to determine how fields in the activity-related information bulletin 1800 are formatted and / or how information is stored in the fields. The activity identifier field 1806 includes an activity identifier that identifies the activity with which the corresponding activity-related information is associated, such as one or more of the activity identifiers 1204-1224. The timestamp field 1808 includes a timestamp for the activity announced in the activity identifier field 1806. As described above, the timestamps may be used to resolve the order in which to handle two or more activity-related information bulletins 1800, which activity-related information bulletins 1800 to ignore, and the like.
[0190] The activity-related information field 1810 includes information related to the activity and / or information based on, obtained from, or otherwise identifying the activity-related information. Continuing with the above example, in some embodiments, the source electronic device 202 includes some or all of the actual contents of the clipboard from the source electronic device 202 in the activity-related information field 1810. For example, if a segment of text was recently copied to the clipboard, the segment of text (i.e., the text itself) (possibly with metadata including formatting, timestamps, version information, etc.) may be included in the activity-related information field 1810. As another example, if a segment of text, an image, and a file were separately copied to the clipboard during one or more copy operations, some or all of the segment of text, an image, and a file (possibly with corresponding metadata) may be included in the activity-related information field 1810.
[0191] As another example, in embodiments where the source electronic device 202 includes information based on, obtained from, or the like, the information related to the activity in the information related to the activity field 1810, the source electronic device 202 may include compressed information, representative information, information that can be used to derive the information related to the activity, and / or other information based on or associated with the information related to the activity in the information related to the activity field 1810. For example, the source electronic device 202 may include an indication (e.g., a pointer, label, identifier, reference, and / or other indicator) that information is available (possibly including a basic identification of the type of information), but not include the actual information related to the activity itself in the information related to the activity bulletin 1800. In such embodiments, the companion electronic device 204 may perform one or more operations for retrieving the information related to the activity indicated in the information related to the activity bulletin 1800. For example, assuming that the source electronic device 202 includes a pointer to the information related to the activity in the information related to the activity field 1810, the companion electronic device 204 may retrieve the information related to the activity indicated by the pointer from the source electronic device 202 via one or more corresponding independent communications.
[0192] In some embodiments, in addition to some or all of the actual activity-related information, information based on, obtained from, and the like, the activity-related information may be included in the activity-related information field 1810. Continuing with the clipboard example, assuming that a small segment of text (100 bytes) and a larger image (4MB) are copied to the clipboard in the source electronic device 202, the source electronic device 202 may include the small segment of text (and possibly corresponding metadata) in the activity-related information field 1810, but may only include a reference to the image. The companion electronic device 204 may then use the reference to request the image as described above. In some embodiments, the size of the activity-related information is used to determine whether the activity-related information or information based thereon will be included in the activity-related information bulletin 1800. For example, based on one or more threshold values (e.g., a maximum size for an activity-related information bulletin 1800, etc.), the activity-related information may be directly included or indirectly included (e.g., represented by a pointer, indicator, etc.) in the activity-related information field 1810.
[0193] The source electronic device 202 then transmits (e.g., broadcasts, unicasts, multicasts, etc.) the information announcement 1800 related to the activity (step 1704). For example, using a corresponding protocol, the source electronic device 202 may unicast the information announcement 1800 related to the activity to the companion electronic device 204. Generally speaking, during this operation, the source electronic device 202 provides the information announcement 1800 related to the activity to the companion electronic device 204 via a wired or wireless communication link. As described in more detail below, after receiving the information announcement 1800 related to the activity, the companion electronic device 204 selectively provides the information related to the activity for use in performing one or more activities in the companion electronic device 204.
[0194] For example, in Fig.17 , an embodiment is described in which the source electronic device 202 announces information related to the activity separately from the activity announcement described above (e.g., the activity announcement 1300). In other words, in some embodiments, the activity announcement 1300 is transmitted in addition to the information announcement 1800 related to the activity. However, in some embodiments, some or all of the information related to the activity described above (i.e., actual information, pointers, etc.) is included in the activity announcement 1300. In such embodiments, a separate activity-related information announcement 1800 may not be used. In such embodiments, the activity announcement 1300 includes various fields, values, etc. for retaining information related to the activity or information based thereon. In such embodiments, the companion electronic device 204 may perform a process similar to Fig.19 The operations for processing the event-related information in the event announcement 1300 are shown in FIG.
[0195] Although the activity-related information bulletin 1800 is shown as an example of an activity-related information bulletin, in some embodiments, the activity-related information bulletin 1800 is formatted differently (e.g., includes a different configuration of fields, etc.). For example, in some embodiments, one or more of the fields described as optional are not optional. In general, the activity-related information bulletin 1800 includes sufficient information to enable the source electronic device 202 to communicate the activity-related information to the companion electronic device 204 to enable the companion electronic device 204 to provide the activity-related information for use in performing one or more activities in the companion electronic device 204.
[0196] Fig.19 A flow chart illustrating a process for receiving activity-related information from a source electronic device in a companion electronic device according to some embodiments is presented. More specifically, Fig.19 An embodiment is described in which the companion electronic device 204 receives information related to the activity from the source electronic device 202. Fig.19 The operations shown in the present invention are presented as general examples of operations performed by some embodiments. The operations performed by some embodiments include different operations and / or operations performed in different orders. In addition, although certain mechanisms are used to describe the operations (e.g., accompanying electronic device 204, etc.), in some embodiments, other mechanisms perform the operations.
[0197] for Fig.19 In the process shown in , the content of the clipboard in the source electronic device 202 is used as the information related to the activity. However, in some embodiments, and as described above, other types of information related to the activity can be received from the source electronic device 202.
[0198] Fig.19 The process shown in FIG. 1 begins with the companion electronic device 204 receiving an activity-related information announcement 1800 from the source electronic device 202 (step 1900). As described above, this operation may include receiving a unicast, broadcast, multicast, etc. activity-related information announcement 1800 that includes information that enables the companion electronic device 204 to process the activity-related information and selectively provide the activity-related information for use in performing one or more activities in the companion electronic device 204.
[0199] The companion electronic device 204 then determines whether the activity-related information described in the activity-related information bulletin 1800 is of interest (1902). Generally speaking, during this operation, the companion electronic device 204 determines whether the activity-related information is to be used for the companion electronic device 204. It should be noted that in this specification, the operation of determining that the activity-related information is of interest and providing (or not providing) the activity-related information accordingly is described as "selectively" providing the activity-related information. In other words, the companion electronic device 204 chooses whether to provide the activity-related information to the activity in the companion electronic device 204 as described herein.
[0200] In some embodiments, when determining whether information related to the activity is of interest, the companion electronic device 204 presents an information availability indicator related to the activity on a display of the companion electronic device 204 (eg, display 1400 ). Fig. 20 A block diagram illustrating an activity-related information availability indicator 2000 is presented in accordance with some embodiments. Fig. 20 As can be seen in FIG. 1 , the activity-related information availability indicator 2000 is an icon presented on the display 1400 of the companion electronic device 204. In some embodiments, the activity-related information availability indicator 2000 is a simple icon that generally indicates that information related to the activity is available. However, in some embodiments, the activity-related information availability indicator 2000 includes a representation of the type of information related to the activity within the icon (e.g., a text indicator, an image indicator, an undo buffer indicator, a clipboard indicator, a combination indicator, etc. as shown). Similar to the resumable activity indicator 1404 described above, in some embodiments, the user can select the activity-related information availability indicator 2000 to signal acceptance (or non-acceptance) of the activity-related information to the companion electronic device 204. For example, the user can touch the activity-related information availability indicator 2000 with a finger on a touch-sensitive screen, hover and click the mouse pointer on the activity-related information availability indicator 2000, click to select and drag the activity-related information availability indicator 2000 along a specified path, etc. In some embodiments, receipt of the activity-related information causes the companion electronic device 204 to determine that the activity-related information is of interest.
[0201] In some embodiments, when determining whether information related to an activity is of interest (in addition to or in lieu of using the activity related information availability indicator 2000 described above), the companion electronic device 204 determines whether the corresponding activity is to be transferred from the source electronic device 202 to the companion electronic device 204, whether the information related to the activity is in a format supported by the companion electronic device 204, etc. In general, the companion electronic device 204 determines that information related to an activity is of interest when the information related to the activity should and can be made available to the activity in the companion electronic device 204.
[0202] If the activity-related information described in the activity-related information announcement 1800 is not of interest (step 1904), the companion electronic device 204 may stop processing related to the activity-related information announcement 1800 and the processing procedure ends. For this operation, in some embodiments, the companion electronic device 204 may remove the activity-related information availability indicator 2000 from the display screen, may configure itself to ignore future repeated announcements, may convey a negative response or rejection to the source electronic device 202, etc.
[0203] If the activity-related information described in the activity-related information bulletin 1800 is of interest (step 1904), the companion electronic device 204 obtains the activity-related information (1906). Generally speaking, during this operation, the companion electronic device 204 retrieves at least some of the activity-related information from one or both of the activity-related information bulletin 1800 and the source electronic device 202. For this operation, if the activity-related information bulletin 1800 contains some or all of the actual activity-related information, the companion electronic device 204 may obtain some or all of the activity-related information from the activity-related information bulletin 1800. For example, assuming that the source electronic device 202 includes at least some of the contents of the clipboard in the activity-related information bulletin 1800, the companion electronic device 204 may obtain the contents of the clipboard from the activity-related information bulletin 1800.
[0204] In addition to or instead of obtaining the activity-related information from the activity-related information bulletin 1800, the companion electronic device 204 may obtain some or all of the activity-related information from the source electronic device 202. For example, if the source electronic device 202 includes in the activity-related information bulletin 1800 a pointer (or other indicator) to the activity-related information on the source electronic device 202 (e.g., a pointer to information such as an image file on a clipboard in the source electronic device 202, etc.), the companion electronic device 204 may request the activity-related information from the source electronic device 202.
[0205] In some embodiments, the activity-related information may be obtained by the source electronic device 202 along with the extended activity data, i.e., included in the extended activity data. In some of these embodiments, the companion electronic device 204 requests that the activity-related information be sent along with the extended activity data. For example, the activity-related information announcement 1800 may include an indication (e.g., an indicator or other indicator) that the activity-related information is available, and the companion electronic device may receive the request to obtain the activity-related data and transfer the corresponding activity (i.e., request for extended activity data) as described herein.
[0206] The companion electronic device 204 then provides the information associated with the activity for use in executing one or more activities in the companion electronic device 204 (step 1908). During this operation, the companion electronic device 204 uses one or more corresponding structures (memory, clipboard, cache, buffer, etc.) to store the information associated with the activity so that the information associated with the activity is available to the activity (e.g., an activity transferred from the source electronic device 202 to the companion electronic device 204, an activity started on the companion electronic device 204, etc.). In some embodiments, "providing information associated with the activity for use in executing one or more activities" includes providing the information associated with the activity in a manner that the information associated with the activity can be used in a corresponding and expected manner during the operation of the activity. Continuing with the clipboard example, this can include making the contents of the clipboard from the source electronic device 202 available for pasting and other operations, because the information on the clipboard (i.e., the clipboard from the companion electronic device 204) is generally available to the companion electronic device 204. For example, hotkeys and menu selections can therefore be used to access the contents of the clipboard copied from the source electronic device 202 on the companion electronic device 204. As another example, assuming that the information associated with the activity includes the contents of an undo buffer, the undo buffer in the companion electronic device 204 can be updated using the information associated with the activity (i.e., the history of operations performed in the source electronic device 202) so that corresponding operations that were not originally performed in the companion electronic device 204 can be undone in the companion electronic device 204.
[0207] Continuing with the clipboard example, in some embodiments, providing activity-related information for use when performing one or more activities in the companion electronic device 204 includes copying the contents of the clipboard described in the activity-related information bulletin 1800 to the clipboard in the companion electronic device 204. In these embodiments, the contents of the clipboard may be partially or completely overwritten by the contents of the clipboard described in the activity-related information bulletin 1800. In some embodiments, to avoid overwriting and thus losing applicable information on the clipboard in the companion electronic device 204, the companion electronic device 204 (e.g., an operating system thereon) provides an independent transfer information buffer. In these embodiments, the transfer information buffer may be accessed using a corresponding menu selection, hotkey, etc. In some embodiments, the user may be presented with a choice of overwriting the clipboard or writing information to the transfer activity buffer (e.g., with a pop-up prompt). In some embodiments, the transfer information buffer is a software service (e.g., an operating system software service, an independent application, etc.) that provides temporary storage for information in the electronic device, but a hardware-based transfer information buffer may be used alone or in combination with a software transfer information buffer. The transfer information buffer enables the user to perform operations such as copy, paste, cut, etc. to interact with the information stored in the transfer information buffer.
[0208] In some embodiments, an interface may be presented to the user (e.g., on display 1400) that enables the user to determine which contents of the clipboard from the source electronic device 202 are to be copied to the clipboard in the companion electronic device and where the contents of the clipboard from the source electronic device 202 are to be copied to the clipboard in the companion electronic device. For example, after selecting the information availability indicator 2000 associated with the activity, a pop-up window showing or otherwise listing the contents of the clipboard from the source electronic device 202 may be presented on display 1400, the pop-up window including a mechanism for selecting which contents are to be copied to the clipboard in the companion electronic device 204, where the contents are to be copied to the clipboard, etc.
[0209] It should be noted that although the information availability indicator 2000 related to the activity is presented in a specific location on the lock screen, in some embodiments, the information availability indicator 2000 related to the activity may be presented on any screen during operation of the companion electronic device 204, in a different location, etc. In addition, the information availability indicator 2000 related to the activity may be presented together with and / or in association with the resumable activity indication 1404. In such embodiments, the user may select one or both of the information availability indicator 2000 related to the activity and the resumable activity indication 1404 to transfer the activity (as described herein) or accept the information related to the activity. In some embodiments, the companion electronic device 204 only presents the resumable activity indication 1404 and the user selects the resumable activity indication 1404 so that the companion electronic device 204 transfers the activity (as described herein) and accepts the information related to the activity.
[0210] The foregoing description of the embodiments is presented for the purpose of illustration and description only. It is not intended to be exhaustive or to limit the embodiments to the disclosed form. Therefore, many modifications and variations will be apparent to those skilled in the art. In addition, the above disclosure is not intended to limit the embodiments. The scope of the embodiments is defined by the appended claims.
Claims
1. A method, include: The accompanying electronic device performs the following operations: receiving a message from a source electronic device, the message comprising an indication that activity-related information is available from the source electronic device, the indication comprising: Part of the information related to the event; A pointer to the remainder of the activity-related information on the source electronic device, wherein The message does not include the remaining portion of the activity-related information; and a timestamp corresponding to the information related to the activity on the source electronic device; determining whether to obtain the remaining part of the activity-related information based on the part of the activity-related information and the timestamp; In response to determining that the remaining portion of the activity-related information is to be obtained, obtaining the remaining portion of the activity-related information from the source electronic device in a transmission separate from the message based on a pointer to the activity-related information; and When one or more activities are performed on the companion electronic device, activity-related information is selectively provided for use by one or more processes on the companion electronic device.
2. The method of claim 1, wherein the activity-related information is selectively provided include: Some or all of the contents of a clipboard in a companion electronic device are replaced with source clipboard information that includes a copy of some or all of the contents of the clipboard in the source electronic device.
3. The method according to claim 2, in, The source clipboard information includes the contents of an undo buffer in the source electronic device, the undo buffer maintaining a record of changes made to one or more applications of the source electronic device, the record of changes allowing the changes to be reversed in the companion electronic device.
4. The method of claim 2, further comprising receiving an indication regarding replacing the contents of the clipboard, wherein in response to receiving the indication, some or all of the contents of the clipboard in the companion electronic device are replaced with source clipboard information.
5. The method according to claim 2, further comprising: include: storing the source clipboard information in a transmission information buffer in the companion electronic device, the transmission information buffer being different from the clipboard in the companion electronic device; and Source clipboard information from a transfer information buffer is provided for accompanying activities in the electronic device.
6. The method of claim 1 , wherein determining whether to obtain the remainder of the activity-related information comprises comparing the timestamp with timestamps from one or more other messages indicating that the activity-related information is available from the source electronic device, the method further comprising: include: Extended activity data is received, the extended activity data including information directing configuration of an application in a companion electronic device to continue an activity from a source electronic device.
7. The method of claim 1, wherein the activity-related information is selectively provided include: presenting, on a display of the companion electronic device, an activity-related information availability indicator; Upon receiving acceptance of the activity-related information availability indicator, providing a remaining portion of the activity-related information for use in performing one or more activities in the companion electronic device; as well as Upon receiving a rejection of the activity-related information availability indicator, the remainder of the activity-related information is not provided for use in performing one or more activities in the companion electronic device.
Citation Information
Patent Citations
Activity continuation between electronic devices
US20150350355A1
Predefined wireless pairing
US9451438B2
Companion application for activity cooperation
US9544714B2
Operating-mode transitions based on advertising information
US9549375B2