CN107949830B - Forwarding activity-related information from a source electronic device to a companion electronic device - Google Patents

Forwarding activity-related information from a source electronic device to a companion electronic device Download PDF

Info

Publication number
CN107949830B
CN107949830B CN201680050026.4A CN201680050026A CN107949830B CN 107949830 B CN107949830 B CN 107949830B CN 201680050026 A CN201680050026 A CN 201680050026A CN 107949830 B CN107949830 B CN 107949830B
Authority
CN
China
Prior art keywords
activity
electronic device
information
related information
source
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201680050026.4A
Other languages
Chinese (zh)
Other versions
CN107949830A (en
Inventor
M·J·克罗彻马尔
D·M·维内格拉德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/841,410 external-priority patent/US10187770B2/en
Application filed by Apple Inc filed Critical Apple Inc
Priority to CN202210397164.7A priority Critical patent/CN114706698A/en
Publication of CN107949830A publication Critical patent/CN107949830A/en
Application granted granted Critical
Publication of CN107949830B publication Critical patent/CN107949830B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Abstract

The described embodiments transfer an activity from a source electronic device to a companion electronic device. The source electronic device receives activity information describing an activity performed in a first application at the source electronic device and broadcasts an activity announcement that includes an activity identifier for the activity. Upon receiving the activity announcement, the companion electronic device determines whether a second application associated with the first application is available at the companion electronic device. If the second application is available, the companion electronic device obtains extended activity data from the source electronic device and uses the extended activity data to configure the second application and begin performing the activity with the second application at the companion electronic device. The source electronic device may also forward activity-related information (e.g., information from a copy and paste clipboard in the source electronic device) to the companion electronic device.

Description

Forwarding activity-related information from a source electronic device to a companion electronic device
RELATED APPLICATIONS
This application is a Continuation-in-part application of U.S. patent application No. 14/586,566 in the application and hereby claiming priority to that application, U.S. patent application No. 14/586,566 entitled "Activity content between Electronic Devices", filed on 30/12/2014. This application also claims priority from U.S. provisional patent application No. 62/005,781 entitled "Activity content between Electronic Devices" filed on 30/5/2014, and also claims priority from parent application 14/586,566. Both of these applications are incorporated by reference.
The present Application is related to U.S. patent Application No. 14/586,511 entitled "association Application for Activity coding" filed on the same date as the present Application by the inventors Marc j.krochmal, Christopher s.linn, John j.iaroci, Geoffrey Stahl and Jacques p.gasselin de Richebourg, having attorney docket No. APL-P23129US 1. The present application is also related to U.S. patent application No. 14/475,329 entitled "Operating Mode Transitions based on adapting Information" filed on 2.9.2014 by the inventors Craig p.dooley, Akshay mancalam Srivatsa, Anjali s.sandesara and Michael j.giles, having attorney docket No. APL-P22643US 1. The present application is also related to U.S. patent application No. 14/474,466 entitled "Predefined Wireless Pairing" in an application filed on 9/2/2014 by the inventors Jason c.conn, Akshay mancalam Srivatsa, Craig p.dooley and Michael j.giles, having attorney docket No. APL-P22642US 1. The present application further relates to U.S. patent application No. 14/586,566 entitled "Activity continuity between Electronic Devices" filed on 30.2014 by the inventors Christopher s. lin, Keith statten, Christopher c. jensen, Alexander r.ledwith, David a.carter, Marc j.krochmal, John j.iarocci and Jonathan m.grynspan, in the application filed on 30.12.2014, having attorney number APL-P22791US 1. Each of the above-described applications is incorporated herein by reference.
Technical Field
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
Recent advances in computer technology have enabled manufacturers to produce large power computing devices of various form factors, thereby enabling users to use small and portable devices such as smart phones or tablet computers to perform tasks that previously required desktop or laptop computers. As a result of these developments, users often own and use multiple computing devices, such as smart phones while on the road, tablet computers while at a meeting, and laptop or desktop computers at a desk.
Although a user may have 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 context in which the user is located. For example, a user may start anticipating a shorter email on a device such as a smartphone with a small display screen, and then when the email results longer than anticipated, there may be difficulty entering and editing text in the email due to the size of the display screen. Alternatively, the user may read a web page or watch a movie on the desktop computer but may have to leave the room in which the desktop computer is located. While the user can retrieve another device and start the task, this is cumbersome.
Disclosure of Invention
Embodiments relate to forwarding activity-related information from a source electronic device to a companion electronic device for activity continuation on the companion electronic device.
According to some embodiments, there is provided a method for a companion electronic device, the method comprising: performing, by a companion electronic device, operations for: receiving an advertisement from a source electronic device, the advertisement 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 the activity performed 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 announcement, sending a request for information related to the activity to the source electronic device, the request including 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 in performing one or more activities in the companion electronic device.
According to some embodiments, there is provided a companion electronic device comprising: a processing subsystem and a network connection subsystem; the accompanying electronic device: receiving an advertisement from a source electronic device, the advertisement 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 performed 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 announcement, sending a request for information related to the activity to the source electronic device, the request including 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 in performing one or more activities in the companion electronic device.
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 an advertisement from a source electronic device, the advertisement 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 performed 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 announcement, sending a request for information related to the activity to the source electronic device, the request including 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 in performing one or more activities in the companion electronic device.
Drawings
FIG. 1 presents a block diagram illustrating an electronic device in accordance with some embodiments.
FIG. 2 presents a block diagram illustrating a network environment in accordance with some embodiments.
Figure 3 presents a flowchart illustrating a process for broadcasting an activity announcement message in accordance with some embodiments.
FIG. 4 presents a flowchart illustrating a process for storing activity information describing activities available at a companion electronic device in accordance with some embodiments.
FIG. 5 presents a flowchart illustrating a process for requesting extended campaign data and transferring a campaign in accordance with some embodiments.
FIG. 6 presents a flowchart illustrating a process for responding to a request for extended active data in accordance with some embodiments.
Fig. 7 presents a flowchart illustrating a process for determining whether a second application is available at a companion electronic device, in accordance with some embodiments.
FIG. 8 presents a flowchart illustrating a process for determining a second application using a flag in accordance with some embodiments.
FIG. 9 presents a flowchart illustrating a process for determining whether a second application is available when an activity identifier identifies an input item in a structure storing an advertised activity, in accordance with some embodiments.
Figure 10 presents a flowchart illustrating a process for determining recent activity from two or more activity advertisement messages in accordance with some embodiments.
FIG. 11 presents a block diagram illustrating activity information in accordance with some embodiments.
Fig. 12 presents a block diagram illustrating an advertisement campaign table in accordance with some embodiments.
Figure 13 presents a block diagram illustrating an activity announcement message in accordance with some embodiments.
FIG. 14 presents a block diagram illustrating a recoverable activity indication in accordance with some embodiments.
FIG. 15 presents a swim lane diagram illustrating messages exchanged between electronic devices, in accordance with some embodiments.
FIG. 16 presents a block diagram illustrating electronic devices in proximity to one another in accordance with some embodiments.
FIG. 17 presents a flowchart illustrating a process for forwarding activity-related information from a source electronic device to a companion electronic device in accordance with some embodiments.
FIG. 18 presents a block diagram illustrating an activity-related information advertisement generated by a source electronic device, in accordance with some embodiments.
FIG. 19 presents a flowchart illustrating a process for receiving activity-related information in a companion electronic device from a source electronic device in accordance with some embodiments.
FIG. 20 presents a block diagram illustrating activity-related information availability indicators in accordance with some embodiments.
In the drawings, like reference numerals refer to like elements throughout.
Detailed Description
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 to be accorded the widest scope consistent with the principles and features disclosed herein.
In some embodiments, an electronic device (e.g., electronic device 100 in fig. 1 and/or some 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 particularly, 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 in performing the described operations. In these embodiments, the computer-readable storage medium may be any device or medium or combination of devices that store program code and/or data for use by an electronic device. For example, computer-readable storage media may include, but are not limited to, volatile memory or non-volatile memory, such as semiconductor memory (e.g., flash memory, random access memory (eDRAM, RAM, SRAM, DRAM, DDR2/DDR3/DDR4 SDRAM, etc.) and/or magnetic or optical storage media (e.g., disk drives, tape, CDs, DVDs). In the described embodiments, the computer-readable storage medium does not include a non-quorum computer-readable storage medium, such as a transitory signal.
In some embodiments, one or more hardware modules are configured to perform the operations described herein. For example, a hardware module may include, but is not limited to, one or more processors/cores/Central Processing Units (CPUs), Application Specific Integrated Circuit (ASIC) chips, Field Programmable Gate Arrays (FPGAs), cache/cache controllers, memory management units, computing units, embedded processors, Graphics Processors (GPUs)/graphics cores, pipelines, and/or other programmable logic devices. When such hardware modules are launched, the hardware modules perform some or all of the operations. In some embodiments, a hardware module includes one or more general-purpose circuits configured by execution of instructions (program code, firmware, etc.) to perform operations.
In this description, reference may be made to functional blocks in describing some embodiments. Generally, functional blocks include 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 circuitry that executes program code (e.g., microcode, firmware, applications, etc.) that causes the general-purpose processing circuitry to perform the operations described.
SUMMARY
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 described embodiments, to perform the transfer, the source electronic device sends information describing an 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 a corresponding activity. In general, an activity includes one or more operations performed at least in part at a source electronic device that are transferred to/continued on a companion electronic device. Examples of activities include reading and/or editing a file (e.g., a word processing file, spreadsheet, presentation, or other type of file), composing an email message, email, voice message, or video, drafting a note, accessing (browsing) a website, watching a movie, playing an audio file, or otherwise using an application or app to perform a corresponding operation.
In some embodiments, when transferring activity from a source device to a companion device, the source electronic device first broadcasts an activity advertisement message (also referred to as an "activity advertisement") 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 an activity performed in a first application at the source electronic device and includes the activity identifier in the activity advertisement message. The source electronic device generates an activity identifier by performing a set of operations (e.g., hash operations, etc.) using activity information describing the activity received from the first application. An example of activity information is described in more detail below with reference to FIG. 11.
The companion electronic device monitors a network (e.g., a bluetooth low energy network) for activity announcement messages on a network interface corresponding to a network interface in the source electronic device from which the activity announcement is broadcast. Upon detecting the activity advertisement broadcast from the source electronic device, the companion electronic device compares the activity identifier for the activity available at the companion electronic device to the activity identifier in the activity advertisement 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.
In some embodiments, upon determining that the second application is available, the companion electronic device establishes communication with the source electronic device via a communication channel, such as using the same wireless network interface or a different network interface (wireless and/or wired) for receiving activity announcement messages. The companion electronic device then requests extended activity data for the activity performed in the first application from the source electronic device using the communication channel. In some embodiments, upon receiving a request for extended activity data, the source electronic device uses the same (or a different) communication channel to provide the extended activity data to the companion electronic device. In general, the extended activity data includes information that may be used to configure a second application in the companion electronic device to continue the activity, such as a file identifier, a scroll position, a Uniform Resource Locator (URL), etc., associated with the activity performed in the first application.
In some embodiments, the companion electronic device uses the activity identifier and/or the 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. The companion electronic device then begins performing an activity in a second application at the companion electronic device. For example, after the companion electronic device configures the second application, the user may use the companion electronic device to continue working with files that the user is working at the source electronic device, continue viewing movies the user is viewing at the source electronic device, continue viewing web pages the user is viewing at the source electronic device, and so forth. In some embodiments, the companion electronic device sends a notification to the source electronic device to indicate that the activity was transferred to the second application. The notification may cause the source electronic device and/or the first application to perform housekeeping tasks, such as deleting a draft document for the activity, closing an open document for the activity, and so forth.
In some embodiments, the source electronic device forwards information related to the activity to the companion electronic device in addition to the activity identifier and/or extended activity data described above. For example, in some embodiments, the source electronic device forwards some or all of the contents of a copy and paste clipboard (or "clipboard") in the source electronic device to the companion electronic device. Upon receiving the activity-related information, the companion electronic device provides the activity-related information for performing an activity (e.g., a transferred activity or other activity) in the companion electronic device. For example, in embodiments where 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 manner, the companion electronic device can make the content (i.e., activity-related information) from the clipboard of the source electronic device available to the activity 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 to activities in the companion electronic device via the clipboard of the companion electronic device.
By performing the above-described operations at the companion electronic device to continue the activity performed at the source electronic device, the described embodiments enable the user to continue the task smoothly and without complex user intervention. This enables a user to more easily perform tasks on a desired electronic device, which may improve the overall experience of a user having two or more electronic devices.
Electronic device
FIG. 1 presents a block diagram illustrating an electronic device 100 in accordance with some embodiments. Electronic device 100 includes a processing subsystem 102, a memory subsystem 104, a network connection subsystem 106, and a display subsystem 108.
The processing subsystem 102 is a functional block that performs computing operations in the electronic device 100. 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 architectures.
Memory subsystem 104 is a functional block that stores data and/or instructions for use by other functional blocks in electronic device 100, such as processing subsystem 102. Memory subsystem 104 includes volatile memory circuitry for storing instructions and data, such as Dynamic Random Access Memory (DRAM), Static Random Access Memory (SRAM), and/or other types of memory, as well as mechanisms for controlling the memory circuitry. In some embodiments, memory subsystem 104 includes a memory hierarchy having one or more caches coupled to memory circuitry. In some of these embodiments, processing subsystem 102 also includes one or more caches that are part of the memory hierarchy.
In some embodiments, 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 disk drive, a solid state drive, or another type of mass storage device. In such embodiments, memory subsystem 104 may be used by electronic device 100 as fast-access storage for frequently used data, while mass storage is used to store less frequently used data.
Network connection subsystem 106 is a functional block that includes one or more devices configured to couple to and communicate over a wired and/or wireless network (i.e., to perform network operations). For example, the network connection subsystem 106 may include BluetoothTMA network connection system, a cellular network connection system (e.g., a 3G/4G network 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., a zigbee or Wi-Fi network connection system, etc.), an ethernet network connection system, and/or another network connection system. Network connection subsystem 106 includes a processor, controller, radio/antenna, jack/plug, and/or other means for coupling to, communicating over, and handling data and events for each supported network connection system. In the following description, the mechanisms of each network system for coupling to, communicating over, and handling data and events on the network are collectively referred to as the "interfaces" or "network interfaces" of the network system.
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.
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 indicated by the arrowed lines between the components. The communication paths are used to transmit commands, data, event notifications and/or other information between components.
Although specific components are used to describe electronic device 100, in some embodiments, different components and/or subsystems may be present in electronic device 100. For example, electronic device 100 may include one or more additional processing subsystems 102, memory subsystems 104, and the like. Additionally, 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 in other subsystems. Furthermore, in some embodiments, electronic device 100 may include one or more additional subsystems not shown in fig. 1. For example, electronic device 100 may include, but is not limited to, a data collection subsystem, an audio and/or video subsystem, an alert subsystem, a media processing subsystem, and/or an input/output (I/O) subsystem.
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: desktop computers, laptop computers, wearable computing devices, tablet computers, smart phones, servers, network electrical equipment, toys, audio visual equipment (e.g., receivers, set-top boxes, Apple TVs, etc.), automobiles (e.g., automobile interface systems, navigation systems, heads-up displays, etc.), household electrical equipment, controllers, and/or the like, and/or combinations thereof. (Apple TV is a registered trademark of Apple Inc. of Coopertino, Calif.).
Network environment
FIG. 2 presents a block diagram illustrating a network environment in accordance with some embodiments. As can be seen in fig. 2, network environment 200 includes a source electronic device 202, a companion electronic device 204, and a second source electronic device 206 (collectively referred to as "electronic devices"). In some embodiments, each of the electronic devices is an electronic device similar to electronic device 100, i.e., has subsystems similar to electronic device 100. However, this is not required; the described embodiments may be used with any electronic device that may perform the operations described herein.
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 activity transfer operations. In some embodiments, source electronic device 202 (and/or second source electronic device 206) is an electronic device that is identified by companion electronic device 204 and thus allowed to participate in activity transfer operations. For example, both the source electronic device 202 and the companion electronic device 204 may have registered with the service provider using the same account and thus may identify each other via 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., a Predefined Pairing) (and recognize each other via information obtained by the pre-Pairing operation), as described in U.S. patent application No. xx/xxx, in an application filed on the same day as the present application by inventors Jason c.conn, Akshay mangal Srivatsa, Craig p.doley, and Michael Giles, entitled "Predefined Wireless Pairing," having attorney docket No. 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.
Within network environment 200, companion electronic device 204 can communicate with source electronic device 202 and second source electronic device 206 using wireless communication signals 208 (illustrated using the jagged line labeled "communication signals 208" in fig. 2). In some embodiments, the communication signals 208 are formatted and exchanged (broadcast, transmitted/received, etc.) according to a corresponding wireless protocol (e.g., via a wireless network protocol 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.).
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 one another to enable the communication signal 208 (and thus the incorporated message) 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 "in proximity" to each other, thereby enabling message exchange between the electronic devices. As used herein, "proximate" thus denotes a distance that a message broadcast/sent from a given electronic device may 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 for broadcasting/sending the message, limited by factors such as environmental conditions (electromagnetic interference, etc.), intermediate objects (furniture, walls, clothing/bags, etc.), etc. For example, in some embodiments, communication signals 208 are exchanged between source electronic device 202 and 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 (note, however, that the expected range may be significantly altered by the factors described above).
FIG. 16 presents a block diagram illustrating electronic devices in proximity to one another in accordance with some embodiments. As can be seen in fig. 16, the companion electronic device 204 is within a range 1602 of the radio signal (e.g., communication signal 208) of the source electronic device 202, meaning that the companion electronic device 204 can receive the radio signal transmitted from the source electronic device 202. Additionally, the source electronic device 202 is within a range 1604 of the radio signal (e.g., communication signal 208) of the companion electronic device 204, meaning that the source electronic device 202 can receive the radio signal transmitted from the companion electronic device 204. Thus, as described above, the source electronic device 202 and the companion electronic device 204 are "in proximity" to one another, thereby enabling communication of messages (and corresponding operations) as 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, meaning that neither the source electronic device 202 nor the companion electronic device 204 is in proximity to the electronic device 1600. It should be noted that the ranges 1602 to 1606 in fig. 16 are shown using irregular shapes, thereby illustrating that the radio signals from the electronic device have irregular ranges, depending on the electronic device (antenna configuration, etc.), the factors described above, and the like.
In some embodiments, messages, data, and the like 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 the shared key, a key obtained from the 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 U.S. patent application No. xx/xxx, in an application filed on the same day as the present application by the inventors Jason c. In some embodiments, the source electronic device 202 and the companion electronic device 204 encrypt and decrypt messages exchanged for the activity transfer operation by using one or more encryption keys that the source electronic device 202 and the companion electronic device 204 obtain while participating in the predefined pairing.
Although various electronic devices are shown in fig. 2, 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, second source electronic device 206 is not present. In general, the described embodiments include sufficient means for transferring activity between electronic devices as described herein.
Broadcast activity announcement messages
Figure 3 presents a flowchart illustrating a process for broadcasting an activity announcement message in accordance with some embodiments. More particularly, during the process illustrated in FIG. 3, an electronic device, such as source electronic device 202, broadcasts an activity announcement message. It should be noted that the operations shown in fig. 3 are presented as a general example of operations performed by some embodiments. The operations performed by some embodiments include different operations and/or operations performed in a different order. Additionally, while certain mechanisms are used to describe operations (e.g., source electronics 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 messages.
The process shown in fig. 3 begins with source electronic device 202 receiving activity information describing an activity performed in a first application at source electronic device 202 (i.e., the first application installed on/available to source electronic device 202) at source electronic device 202 (step 300). (an example of activity information is described in more detail below with reference to FIG. 11). In some embodiments, the first application provides or reports activity information to the source electronic device 202, such as to an operating system, a daemon assistant, or other processes and/or services at the source electronic device 202. In some embodiments, the source electronic device 202 queries the first application for activity information. Generally, the activity information includes information describing an activity performed, at least in part, using the electronic device. Examples of activities include reading and/or editing a file (e.g., a word processing file, spreadsheet, presentation, or other type of file), composing an email message, drafting a note, accessing (browsing) a website, watching a movie, playing an audio file, or otherwise using an application or app to perform a corresponding operation.
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 the activity information from the first application (which may be referred to as "throttling" the activity information from the first application) when the frequency with which the activity information is updated exceeds a threshold value. As another example, the source electronic device 202 may discard activity information that is duplicated or duplicated, does not contain significant changes to previously reported activity information (e.g., "unchanged" automatic reporting, reporting of simple/basic operations/changes, etc.), reports the fact that it is 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 advertised. 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 advertised. As yet another example, in some embodiments, the source electronic device 202 ranks some or all of the activities for which activity information exists (i.e., some or all of the activities that can be advertised) 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 has previously continued and assign a lower ranking to activities that the user has not previously continued. In some of these embodiments, the source electronic device 202 uses messages from the companion electronic device 204 to determine which advertising activities were previously continued and which were not previously continued, e.g., messages such as those messages described below with reference to FIG. 5 step 510.
If the source electronic device 202 filters (e.g., discards) the activity information (Yes, step 302), the process ends. Otherwise, if the source electronic device 202 does not filter the activity information (step 302, no), the source electronic device 202 stores some or all of the activity information in a structure (step 304). For purposes of illustration, we describe embodiments in which campaign information is stored in entries in a table, which we refer to as the "campaign advertised" table. However, it should be noted that embodiments are not limited to the use of tables for storing activity information. Some embodiments use different storage mechanisms/structures for storing activity information, such as associative arrays, content addressable memories, and the like.
In some embodiments, the source electronic device 202 overwrites and/or removes activity information previously stored in the advertised activity table while storing the activity information. 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. An example of an advertised activity table is described in more detail below with reference to FIG. 12.
Next, the source electronic device 202 determines an activity identifier for the activity information (step 306). Generally, the activity identifier includes information from activity information that identifies the first application and an activity performed in the first application. In some embodiments, the source electronic device 202 generates the activity identifier by reducing the activity information to a smaller encoded representation that may be more efficiently broadcast than the full activity information. In some of these embodiments, the encoded representation is a hash of the activity information, i.e., the input of which comprises the output of a hash function of the activity information (e.g., MD4, MD5, SHA, murmurmurr hash, etc.). In some embodiments, the source electronic device 202 stores the campaign identifier along with the campaign information in a campaign table of the bulletin (or any structure used by the source electronic device 202 to store the campaign information). An example of an activity identifier is described in more detail below with reference to FIG. 12.
In some embodiments, the activity identifier comprises 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 web domain, the activity information includes a domain name of the web domain, such as at least a portion of a Uniform Resource Locator (URL). In some embodiments, the source electronic device 202 determines the active identifier by including some or all of the domain names in the active identifier. For example, the activity identifier may be a hash of some or all of the URLs for the resource.
In some embodiments, the activity identifier identifies an input item 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 campaign identifier may identify an entry in a campaign table in which the source electronic device 202 stores announcements of campaign information. The campaign identifier may also include an identifier of the campaign table itself that was advertised. In some embodiments, to identify an entry in the structure in which the source electronic device 202 stores activity information, the activity identifier includes: (1) a hash of data in the advertised activity table that identifies the advertised activity table, and (2) an index of an entry in the advertised activity table that stores activity information.
The source electronic device 202 next includes the activity identifier into the activity advertisement message (step 308). In some embodiments, the activity advertisement message includes other data in addition to the activity identifier. For example, in some embodiments, the activity advertisement message includes a flag to indicate when the activity identifier includes a representation of a domain name of an online resource associated with the activity. In such embodiments, the source electronic device 202 asserts (assert) the flag (e.g., sets the flag to a predetermined value such as 1) to indicate that the activity identifier includes a representation of a domain name. In some embodiments, the source electronic device 202 asserts a flag in the activity advertisement message to indicate that the advertised activity may continue in a manner in which the source electronic device 202 will provide the associated electronic device 204 separately (e.g., by the source electronic device 202 including corresponding instructions in extended activity data (extended activity data described in more detail below)).
In some embodiments, the activity advertisement message includes a timestamp for the activity/activity information. The timestamp (which may represent an absolute or relative time) may indicate the time at which the activity was last performed in the first application, such as the last time a file was edited, a website was visited, a movie was viewed, and so forth. In some embodiments, the timestamp is independent of the activity/activity information, and also indicates a time of a last interaction of the user with the source electronic device 202, regardless of whether the last interaction of the user included the user performing the activity.
The source electronic device 202 then broadcasts an activity announcement message (step 310). For example, the source electronic device 202 may broadcast an activity announcement message using the communication signal 208. In some embodiments, the source electronic device 202 broadcasts/advertises activity announcement messages in the network environment 200 so that nearby devices in the network environment 200 can receive the activity announcement messages. For example, in such embodiments, source electronics 202 use Bluetooth (R) such as Bluetooth Low Energy (BLE)TMThe communication channel is to broadcast an active announcement message. Some embodiments may broadcast the active advertisement message on a different communication channel, such as an inter-peer network, a LAN, the internet, etc. It should be noted that the campaign broadcast may occur more than once, e.g., the source electronic device 202 may broadcast the same campaign advertisement message multiple times and/or periodically.
Build available activity table
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 (examples of activity information are described in more detail below with reference to fig. 11). For example, in some embodiments, the companion electronic device 204 stores an activity identifier for the available activity information. For purposes of illustration, we describe the companion electronic device 204 storing available activity information in a table, which we will refer to as the "available activities" table (examples of available activities tables are 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 associative arrays, content addressable memory, and the like.
FIG. 4 presents a flowchart illustrating a process for storing activity information describing activities available at the companion electronic device 204 into an available activity table in accordance with some embodiments. It should be noted that the operations shown in fig. 4 are presented as a general example of operations performed by some embodiments. The operations performed by some embodiments include different operations and/or operations performed in a different order. Additionally, while certain mechanisms are used to describe operations (e.g., accompanying electronics 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 for themselves.
The process shown in fig. 4 begins with the companion electronic device 204 receiving activity information describing an activity available at a second application at the companion electronic device 204 (e.g., activity information describing an activity that may be performed at the companion electronic device 204) (step 400). Generally, the activity information describes an activity that may be performed in a second application at the companion electronic device 204, i.e., an operation or function that the second application at the companion electronic device 204 is capable of performing. 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 the activities available at the second application. In some embodiments, the activity information includes activity information for activities that have not yet been performed 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).
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). In general, the second activity identifier identifies the second application and the activities available at the second application. The second activity identifier may be an encoded representation of activity information describing an activity available at the second application. In some embodiments, the companion electronic device 204 determines the second activity identifier by performing some or all of the same operations performed by the source electronic device 202 to generate an activity identifier for an activity performed in the first application (see fig. 3, step 306). For example, in some embodiments, the companion electronic device 204 uses the same hash function to generate a second activity identifier that the source electronic device 202 uses to generate an activity identifier for an activity performed in the first application.
In some embodiments, when the second application can perform an activity that includes accessing a resource at a domain, the activity information for the activity includes a domain name of the domain. In some of these embodiments, the second activity identifier is an encoded representation of the domain name that enables the second application to "claim" the domain name, i.e., state that the second application can use resources at the domain name so that 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 particular site on the internet, the second campaign identifier may be an encoded representation of at least some portion of the domain name of the site. It should be noted that the second application may be different from the first application (i.e., the application whose activity was advertised in the activity advertisement message) so that the application other than the first application can continue to be active at the companion electronic device 204.
Next, the companion electronic device 204 stores the second activity identifier in an available activity table (step 404).
Requesting extended campaign data and transferring campaigns
In some embodiments, upon receiving the activity advertisement message, the electronic device may request extended activity data for the advertised activity so that the advertised activity may be subsequently transferred to the electronic device. FIG. 5 presents a flowchart illustrating a process for requesting extended campaign data and transferring a campaign in accordance with some embodiments. More particularly, during the process shown in FIG. 5, the companion electronic device 204 requests extended activity data from the source electronic device 202 for an activity performed in a first application in the source electronic device 202. It should be noted that the operations shown in fig. 5 are presented as a general example of operations performed by some embodiments. The operations performed by some embodiments include different operations and/or operations performed in a different order. Additionally, while certain mechanisms are used to describe operations (e.g., source electronic device 202, companion electronic device 204), in some embodiments other electronic devices and/or mechanisms perform the operations.
The process shown in FIG. 5 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. 3, step 310). Next, the companion electronic device 204 determines whether the companion electronic device 204 is in a receive state (step 502). Generally, the companion electronic device 204 is in the receive state when it is available to perform activity transitions. For example, in some embodiments, the companion electronic device 204 transitions to a receive state when the device "wakes up" (e.g., when a lock screen is displayed after a user presses a button to wake up the device). In some embodiments, the companion electronic device 204 is not in the receive 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 the user has used an application within a given time period).
If the companion electronic device 204 is not in the receive state (NO, STEP 502), then the process ends (i.e., the activity announcement message is ignored). Otherwise, if the companion electronic device 204 is in the receive state (yes, step 502), 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, this operation includes determining whether an application is available on the companion electronic device 204 to continue the activity described in the activity advertisement message from the source electronic device 202. Determining whether the second application is available is described in more detail later with reference to fig. 7-8.
If the second application is not available (NO, STEP 504), then the process ends. Otherwise, if the second application is available (YES, step 504), the companion electronic device 204 retrieves activity information for the second application (step 506). For example, as will also be described in more detail with reference to fig. 7-8 and 11-12, after determining the second application, the companion electronic device 204 can use the activity identifier for the second application to retrieve activity information describing activities available in the second application from the available activity table (or from another structure used by the companion electronic device 204 to store the available activity information). In some embodiments, the companion electronic device 204 uses the retrieved activity information (e.g., using an application identifier in the retrieved activity information) to customize the indication that the activity is recoverable, e.g., as described below with reference to step 508 and/or fig. 14. The application identifier is described in more detail with reference to fig. 11.
Next, the companion electronic device 204 presents an indication that the activity is recoverable (step 508). For example, the companion electronic device 204 can present graphical icons and/or notifications in a display of the companion electronic device 204. The indication is described in more detail below with reference to fig. 14.
Next, the companion electronic device 204 determines whether the activity transfer is accepted (step 510). In some embodiments, a user of companion electronic device 204 accepts and/or rejects activity transfers by performing actions on the directions (such as clicking on the directions, dragging the directions in one or more directions, and/or to one or more particular locations, etc.). For example, to accept an activity transition, a user may tap the icon/notification with a finger (on a touch screen display) and drag the icon/notification in a first direction (e.g., left-to-right, up, clockwise in a circle, etc.). As another example, to decline the activity, the user may tap the icon/notification with a finger and drag the icon/notification in a second direction (e.g., right-to-left, down, counterclockwise in a circle, 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).
If the activity transfer is not accepted (NO, step 510), the process 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 indicating that the activity transfer is not accepted. If the activity transfer is accepted (YES, step 510), the companion electronic device 204 sends a message to the source electronic device 202 requesting extended activity data for the activity performed in the first application (step 512). In general, the request for extended activity data includes information for facilitating the source electronic device 202 in determining an activity for which extended data is being requested. For example, in some embodiments, the companion electronic device 204 includes an activity identifier from an activity announcement message with a request for extended activity data.
Next, upon 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 a second application using the extended activity data (step 514). Configuring the second application may include launching/starting the second application, setting a state of the second application (or causing a state change) based on the extended activity data, and otherwise configuring the second application to perform a corresponding operation. For example, companion electronic device 204 can pass a file/resource identifier, information representative of the file/resource, and/or a reference to the file/resource in the extended activity data to the second application to cause the second application to access the file/resource (e.g., an identifier/information representative/reference to a cloud-stored file for the second application to access from a cloud-based storage located on the internet, an identifier/information representative/reference to a file for the second application to access from a database, etc.). In some embodiments, when the activity comprises writing a file stored at the source electronic device 202, the extended activity data comprises the file or information representative of the file, thereby enabling the companion electronic device 204 and/or the second application to use/reproduce the file at the companion electronic device 204 for the second application. In some embodiments, the extended campaign data includes edits in the file, such as locations and/or content in the file where the edits were made. In some embodiments, the extended activity data includes location information, such as the last play/view/record location in the media file (i.e., the location where play or record in the media file stopped or was last performed), the location of a flag 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 may be used to recreate the game state played on the source electronic device 202 at the companion electronic device 204), and so forth.
The companion electronic device 204 then begins performing an 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 can cause the second application to begin executing in a viewing and/or editing mode for the file associated with the advertising campaign, and can cause the second application to scroll to the last location in the file where the file was 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 was transferred (step 518).
It should be noted that some embodiments may begin configuring the second application using information in the campaign advertisement message (e.g., the campaign identifier) while the extended campaign data is being transmitted or even before the extended campaign data is requested. Some of these embodiments use information in the activity announcement message to set an initial background for the second application, to set a mode for the second application (e.g., edit mode, read-only mode, email compose mode, note compose mode, etc.). Thus, some embodiments may launch and/or configure a second application before receiving the extended campaign data (possibly once the campaign transition is accepted), thereby improving performance in slow networks by hiding data transfer times with application launch times.
In some embodiments, the companion electronic device 204 sends the 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 can receive the activity advertisement message via a bluetooth link (using the BLE protocol) and can request extended activity data via a Wi-Fi link or the internet. In such embodiments, the source electronic device 202 and the companion electronic device 204 use the communication signal 208 (e.g., bluetooth link) to exchange information that enables the electronic devices to communicate via different communication channels/networks. For example, in some of these embodiments, companion electronic device 204 establishes an inter-peer network (e.g., an ad hoc Wi-Fi network) and provides information for accessing the inter-peer network to source electronic device 202. In some embodiments, the source electronic device 202 provides the extended activity data to the server and the companion electronic device 204 receives the extended activity data from the server, e.g., via the internet.
Transitioning to a receive state based on advertisement information
Although we describe embodiments in fig. 5 of receiving an activity advertisement message (fig. 5, step 500) and determining whether the companion electronic device 204 is in a receive state (fig. 5, step 502), some embodiments transition to a receive state based on information in the received activity advertisement message. In some of these embodiments, after receiving the activity advertisement message (e.g., as shown in FIG. 5, step 500), the companion electronic device 204 does not determine whether the companion electronic device 204 is in a receive state, i.e., the process shown in FIG. 5 continues from step 500 to step 504 without performing the operations of step 502.
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 the activity announcement message by the corresponding communication signal 208. Devices such as companion electronic device 204 may monitor for activity advertisement messages broadcast from source electronic device 202 using a corresponding low-power mechanism, such as a baseband processor within a corresponding network interface, e.g., a baseband processor in network connection subsystem 106. In some of these embodiments, receipt of the activity advertisement 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 additionally 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 smartphone in a user's pocket in an idle state in which the baseband processor monitors for active announcement messages while the processing subsystem (and typically the companion electronic device 204) is in a low power state.
In some embodiments, upon so recognizing the active advertisement message, the baseband processor wakes up the processing subsystem (and may typically transition the companion electronic device 204 from an idle operating state out to a higher power/more active operating state) to perform subsequent operations. For example, in some embodiments, companion electronic device 204 may monitor for and respond to campaign announcement messages as described in U.S. patent application No. xx/xxx, filed by inventor Craig P. dooley, Akshay mangal Srivatsa, Anjali s. sandesara and Michael Giles on the same date as the present application entitled "Operating Mode Transitions on adapting Information" with attorney's docket No. APL-P22643USP1, 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.
Responding to requests for extended active data
FIG. 6 presents a flowchart illustrating a process for responding to a request for extended active data in accordance with some embodiments. More particularly, during the process shown in FIG. 6, 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. It should be noted that the operations shown in fig. 6 are presented as a general example of operations performed by some embodiments. The operations performed by some embodiments include different operations and/or operations performed in a different order. Additionally, while certain mechanisms are used to describe operations (e.g., source electronic device 202, companion electronic device 204), in some embodiments other electronic devices and/or mechanisms perform the operations.
The process shown in FIG. 6 begins with the source electronic device 202 receiving a request for extended campaign data (step 600), e.g., a request for extended campaign data transmitted by the companion electronic device 204 as described with reference to step 512 in FIG. 5.
Next, the source electronic device 202 uses information in the request for extended activity data to determine that the request is for extended activity data of the first application (step 602). For example, as previously described, the request for extended activity data may include an activity identifier from an activity advertisement message (see step 308 in FIG. 3). In some embodiments, the source electronic device 202 performs a lookup of the activity identifier in the advertised activity table (or other structure in which the advertised activity information is stored; an example of the advertised activity table is described in more detail below with reference to FIG. 12). When the source electronic device 202 finds an input item in the posted activity table that includes an activity identifier from the activity posting message, the source electronic device 202 may retrieve activity information for the input item to determine that the activity identifier corresponds to the first application, for example, by determining the application identifier of the input item as the application identifier of the first application (examples of activity information and application identifier are described in more detail with reference to fig. 11-12).
Next, the source electronic device 202 optionally sends a notification/request to the first application to perform an activity-related update (step 604). In some embodiments, the notification causes the first application to update the extended activity data prior to providing the extended activity data to the companion electronic device 204. For example, the first application may use the notification to update the last scroll/view location of the activity-related document and/or perform activity-related completion operations prior to transferring the activity, such as storing the activity-related document, updating the extended activity data with the latest draft of the activity-related document, and so forth.
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 campaign data. In some embodiments, the first application provides extended activity along with some or all of the initial activity information (see fig. 3, step 300) and/or reports extended activity information periodically (e.g., every N seconds, where N is a number such as 1, 3, etc., reporting extended activity information each time an event occurs with the first application (such as when a file is stored in the first application, a movie being viewed pauses in the first application, etc.).
Next, the source electronic device 202 sends the extended activity data to the companion electronic device 204 (step 608). In general, the extended activity data includes information that may be used to configure the second application to continue the activity, such as a file identifier (and/or information representing the file, such as a reference to the file) identifying the file for the activity performed in the first application, a Uniform Resource Location (URL) of the web page visited/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 a last viewed/scrolled location in the file or web page, a last played location in a video game, etc.), a copy of the draft file (and/or information representing the draft file, such as a reference to a draft document), etc.
Next, the source electronic device 202 receives a notification that activity is transferred (step 610), such as a notification sent by the companion electronic device 204 as described with reference to step 518 of FIG. 5. In some embodiments, in response to receiving the notification, the source electronic device 202 notifies the first application activity to be transferred (step 612). In some embodiments, source electronic device 202 and/or the first application perform one or more operations related to the activity based on receiving the notification, such as a housekeeping task of deleting locally stored files/file drafts, closing open files, closing applications, and so forth.
In some embodiments, the source electronic device 202 provides the extended activity data using a signal other than the communication signal 208 and/or by using a communication channel/network interface other than the communication channel/network interface on which the activity announcement message and/or the request for extended activity data is communicated. For example, the source electronic device 202 may receive a request for extended activity data via a bluetooth link and may provide the extended activity data via a Wi-Fi link or the internet.
Secure communication using cloud pairing
As discussed earlier, in some embodiments, an electronic device performing an activity transfer operation participates in a pre-Pairing operation, such as a "cloud Pairing" operation, such as a Predefined Pairing described in U.S. patent application No. xx/xxx, entitled "Predefined Wireless Pairing" in an application filed on the same day as the present application by the inventors Jason c. In some embodiments, the electronic devices encrypt and decrypt messages exchanged with each other for performing activity transfer operations using security information obtained during the cloud pairing operation (e.g., using an encryption key obtained during the cloud pairing operation).
For example, in some embodiments, the source electronic device 202 encrypts the campaign announcement message (see fig. 3, step 310) and/or the expanded campaign data (see fig. 6, step 608) using an encryption key obtained during a cloud pairing operation performed by the source electronic device 202 and the companion electronic device 204 together. In some embodiments, the companion electronic device 204 encrypts the request for extended campaign data (see fig. 5, step 512) and/or the notification that the campaign is transferred (see fig. 5, step 518) using the same security information, different security information obtained during the cloud pairing operation performed by the companion electronic device 204 with the source electronic device 202, and/or information obtained from the security information obtained during the cloud pairing operation.
Determining a second application using an activity identifier
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 a possible transfer of activity to the electronic device). FIG. 7 presents a flowchart illustrating a process for determining whether a second application is available at the companion electronic device 204 in accordance with some embodiments. The operations shown in fig. 7 may be performed during the processing procedure shown in fig. 5, such as at step 504. It should be noted that the operations shown in fig. 7 are presented as a general example of operations performed by some embodiments. The operations performed by some embodiments include different operations and/or operations performed in a different order. Additionally, while certain mechanisms are used to describe operations (e.g., accompanying electronics 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 determine itself whether the second application is available.
The process shown in fig. 7 begins with the companion electronic device 204 determining whether a flag in the activity announcement message is asserted (step 700). As previously described, in some embodiments, the source electronic device 202 asserts a flag in the activity advertisement message to indicate that the activity identifier is/includes a representation of a domain name for the advertised 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 asserted. The flags are described in more detail later in this specification, for example, with reference to fig. 11 and 13.
If the flag in the activity announcement message is asserted (step 700, YES), the companion electronic device 204 processes the flag (step 702). The processing of the flag that occurs at step 702 is described later with reference to FIG. 8. Some embodiments repeat step 702 (i.e., the process described with reference to fig. 8) for each validation flag in the activity advertisement message, such as repeating the process for each validation flag when the activity advertisement message includes two or more validation flags.
If the activity advertisement message does not include a flag that is asserted (NO, STEP 700), the companion electronic device 204 compares the activity identifier from the activity advertisement message with activity identifiers for activities available at the companion electronic device 204 (STEP 704). For example, the companion electronic device 204 can look up the activity identifier from the activity advertisement message among the activity identifiers in an available activity table at the companion electronic device 204 (or other structure in which the companion electronic device 204 stores available activity information, as described previously with reference to fig. 4).
If the lookup for the activity identifier finds a match in an entry in the available activity table (YES, step 706), companion electronic device 204 determines that the second application is the application whose activity identifier is stored in that entry (step 708).
If the lookup activity identifier does not find a match in the available activity information (no, step 706), then the companion electronic device 204 determines that an application associated with the first application is not available at the companion electronic device 204 (step 710).
Determining a second application using a flag
As previously described, some embodiments assert a flag in an activity announcement message. FIG. 8 presents a flowchart illustrating a process for determining a second application using a flag in accordance with some embodiments. More particularly, FIG. 8 presents a flowchart illustrating a processing procedure performed by the companion electronic device 204 at step 702 of FIG. 7. It should be noted that the operations shown in fig. 8 are presented as a general example of operations performed by some embodiments. The operations performed by some embodiments include different operations and/or operations performed in a different order. Additionally, while certain mechanisms are used to describe operations (e.g., accompanying electronics 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 on their own.
The process shown in FIG. 8 begins with the companion electronic device 204 determining an application corresponding to the token (step 800). In some embodiments, the companion electronic device 204 uses the location of the validation token and/or the value of the token to determine the application corresponding to the token. For example, when an activity advertisement message includes more than one flag that may be asserted, each of the flags may be used to identify different applications that may 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, companion electronic device 204 stores an image of the application to which the location/value of the identification tag corresponds.
Next, the companion electronic device 204 determines whether an application corresponding to the flag is available at the companion electronic device 204 (step 802). For example, the companion electronic device 204 can check whether an application corresponding to the flag is installed at the companion electronic device 204. In some embodiments, step 802 is not performed/skipped such that the process shown in FIG. 8 continues from step 800 to step 804. For example, step 802 is not performed in embodiments that use flags to only identify pre-installed applications that are known to be available at the companion electronic device 204 and that cannot be uninstalled by a user.
If the application corresponding to the token is available (YES, step 802), the companion electronic device 204 determines that the second application is the application corresponding to the token (step 804). The process then ends, which may include continuing with step 506 in FIG. 5.
If the application corresponding to the flag is not available at the companion electronic device 204 (NO, STEP 802), then the process ends. At this point, the companion electronic device 204 can determine that the second application is not available (e.g., no, as in step 504 of fig. 5), or can continue to step 704 of fig. 7 to determine whether the second application is available by using the activity identifier from the activity announcement message.
In some embodiments, the process shown in fig. 8 allows an application different from the first application to continue to be active at companion electronic device 204. For example, consider the case 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 is not a web browser) that accesses resources (e.g., social media user pages, etc.) accessed in the first application/web browser. By using the flag, such embodiments may configure the social media app to continue the activity performed at the social media website at the same point that the web browser stopped. As another example, in some embodiments, the first application is a separate 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 the flag, such embodiments configure the web browser to continue playing the movie, which may include using the extended campaign data for the campaign to cause the web browser to continue playing the movie where the media streaming app stopped.
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 activity at the companion electronic device 204. In some embodiments, the application corresponding to the flag includes instructions/information regarding how to continue activity at companion electronic device 204. In some embodiments, the extended activity data provides instructions/information for continuing the activity at the companion electronic device 204.
Determining a second application using a structure of a store announcement campaign
As previously described with reference to FIG. 3, in some embodiments, the campaign identifier in the campaign announcement message identifies an entry in a structure (e.g., a table) in which the electronic device that announces the campaign stores campaign information for the announced campaign. FIG. 9 presents a flowchart illustrating a process for determining whether a second application is available when an active identifier identifies an input item in this structure, in accordance with some embodiments. More particularly, during the process shown in FIG. 9, the companion electronic device 204 uses an activity identifier that identifies an input item in an advertising activity table in which the source electronic device 202 stores activity information for the advertising activity to determine whether a second application associated with the first application is available at the companion electronic device 204 (an example of an advertising activity table is described in more detail below with reference to FIG. 12). It should be noted that the operations shown in fig. 9 are presented as a general example of operations performed by some embodiments. The operations performed by some embodiments include different operations and/or operations performed in a different order. Additionally, while certain mechanisms are used to describe operations (e.g., source electronic device 202, companion electronic device 204), in some embodiments other electronic devices and/or mechanisms perform the operations.
The process shown in FIG. 9 begins with the companion electronic device 204 receiving an activity identifier that identifies an entry in an advertising activity table in which the source electronic device 202 stores activity information for an advertising activity (step 900). In some embodiments, the activity identifier includes a table identifier that identifies an advertising activity table in which the source electronic device 202 stores activity information for the advertising activity and an input item index that identifies an input item in the advertising activity table identified by the table identifier that stores activity information for the advertising activity. In some embodiments, the table identifier is a hash of the advertised active table data.
Next, the companion electronic device 204 determines whether an advertisement activity table 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 advertised activity table.
If the advertising campaign table for the campaign identifier is not available at the companion electronic device 204 (step 902, NO), the companion electronic device 204 retrieves the advertising campaign 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 an advertisement campaign table identified by a campaign identifier from the campaign advertisement message, such as the advertisement campaign table identified by the table identifier. Using communication signal 208 and/or a different communication signal/different channel, companion electronic device 204 can transmit the request, and source electronic device 202 can respond to the request.
In some embodiments, the companion electronic device 204 periodically synchronizes its local copy/copies of the advertising campaign table with the source electronic device 202. For example, the companion electronic device 204 can receive a copy of the advertising campaign table from the source electronic device 202 using a "push" mechanism (i.e., without sending a request for a copy of the advertising campaign table).
If an advertised activity table for the activity identifier is available at the companion electronic device 204 (Yes, step 902), or after receiving the advertised activity table from the source electronic device 202, the companion electronic device 204 uses the activity identifier to retrieve activity information from the advertised activity table (step 906). For example, the companion electronic device 204 can retrieve the campaign information from the input items in the posted campaign table identified by the input item index.
In some embodiments, the operations illustrated in FIG. 9 enable information describing more than one activity to be advertised in a single activity advertisement message. For example, consider a case where the size of an activity announcement message is limited, e.g., due to limitations of the network protocol used to broadcast the activity announcement message. In this case, the input item identifier (i.e., the activity identifier that identifies the input item in which the activity information is stored) may be smaller (e.g., represented using fewer bits than the activity identifier) than the encoded representation (i.e., the activity identifier generated from the same activity information), such that these embodiments are capable of carrying multiple input item identifiers in the activity announcement message.
As previously described with reference to FIG. 3, the described embodiments are not limited to using a table for storing available campaign information. Some embodiments use different structures for storing the available activity information, such as associative arrays, content addressable memory, and the like. In such embodiments, the campaign identifier may identify the input item in the structure in which the source electronic device 202 stored the campaign information for the advertising campaign. For example, in such embodiments, the table identifier may identify a structure and the input item index may identify an index in the structure in which the source electronic device 202 stores activity information for the advertising activity.
In addition, although we describe embodiments that use one ad campaign table, some embodiments use more than one ad campaign table, such as storing campaign information for ad campaigns in different ad campaign tables.
Determining recent activities
As previously described, network environment 200 may include a second source electronic device that may broadcast an activity announcement message for an activity performed at the second source electronic device. As also described earlier, some embodiments include a timestamp in the activity advertisement message to indicate the time at which the activity advertised in the activity advertisement message was last performed. Figure 10 presents a flowchart illustrating a process for determining recent activity from two or more activity advertisement messages in accordance with some embodiments. More particularly, during the process shown in FIG. 10, the companion electronic device 204 uses the timestamp included with the announcement from the source electronic device 202 ("activity announcement") and the timestamp included with the announcement from the second source electronic device 206 ("second activity announcement") to determine the closest of the activities announced in the activity announcement and the second activity announcement. It should be noted that the operations shown in fig. 10 are presented as a general example of operations performed by some embodiments. The operations performed by some embodiments include different operations and/or operations performed in a different order. Additionally, while certain mechanisms are used to describe 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.
For the process shown in FIG. 10, it is assumed that the companion electronic device 204 has received an activity announcement from the source electronic device 202, e.g., as shown in FIG. 5. Thus, the companion electronic device 204 has an activity announcement that includes a first timestamp included with the activity announcement.
The process shown in FIG. 10 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 to a second timestamp included in a second activity announcement (step 1002). For example, the companion electronic device 204 may compare the timestamps to know which is newer (i.e., indicating the most recent time).
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 posted in the activity bulletin) is the most recent activity (step 1006). Otherwise, if the comparison indicates that the second timestamp is more recent (step 1004, no), the companion electronic device 204 determines that the activity performed in the second application (i.e., the activity posted in the second activity post) is the most recent activity (step 1008).
In some embodiments, companion electronic device 204 reduces the number of indications presented to the user in a display of companion electronic device 204 (e.g., as shown in fig. 14) by presenting an indication that the activity is recoverable only for the most recent of the posted activities. In some embodiments, the companion electronic device 204 uses timestamps to present indications of recoverable activities in an order, such as presenting the most recent activity first followed by presenting other advertising activities in a descending order based on relative recency. In such embodiments, two or more indications may be presented in parallel, one above the other, etc., depending on the relative recency of the corresponding activity.
In some embodiments, the companion electronic device 204 uses a history of previously continued activities to present indications of recoverable activities in order. In some embodiments, companion electronic device 204 ranks previously resumed activities earlier, i.e., presents an indication of recoverable previously resumed activities prior to an indication of recoverable previously not resumed activities. In some embodiments, two or more indications are presented in an order based on a number of times each of the corresponding activities has previously continued.
Activity information
As previously described, some embodiments use activity information that describes activities performed at an electronic device. FIG. 11 presents a block diagram illustrating activity information 1100, activity information 1110, and activity information 1120, according to some embodiments. It should be noted that the campaign information 1100, campaign information 1110, and campaign information 1120 shown in fig. 11 are presented as a general example of the format of campaign information used by some embodiments. Some embodiments use different formats and/or different information included in the activity information.
The activity information 1100 includes an application identifier 1102 that identifies the application used to perform the activity described in the activity information 1100. For example, the application identifier 1102 (which includes the string com. applet. Keynote) identifies the application Keynote, which is an application that may be used to edit and view a presentation. The activity descriptor 1104 includes a string EditPresentation that identifies an activity performed using the application Keynote as editing the presentation. The timestamp 1106 (which includes the string/number 103) identifies the time the activity was last performed, e.g., the last time the user edited the presentation in the application Keynote. The timestamp may indicate the actual time that the activity was last performed (e.g., wall clock time (or a representation thereof, such as system time)), or it may be a representation of the time elapsed since the activity was last performed after the event was timed or since the event was synchronized. In some embodiments, the timestamp indicates the actual time (e.g., absolute/wall-clock time (or a representation thereof, such as system time)) that the source electronic device 202 was last used (e.g., was last used actively by the user), or it may be a representation of the elapsed time since the source electronic device 202 was last used for the event or since the event was synchronized. In activity information 1100, flag 1108 is not asserted.
The activity information 1110 includes an application identifier 1112 that identifies the application for performing the activity described in the activity information 1110. For example, application identifier 1112, which includes the string com. The activity descriptor 1114 includes a string ComposeDraft to identify that an activity performed using the application Mail includes writing a draft message. The timestamp 1116 (which includes the string/number 315) identifies the time at which the activity was last performed, e.g., the last time the user drafted using Mail. The flag 1118 for the activity information 1110 is not asserted.
Activity information 1120 includes an application identifier 1122 that identifies the application used to perform the activity described in activity information 1120. For example, the application identifier 1122 (which includes the string com. app. Safari) identifies the application Safari (web browser). Activity descriptor 1124 includes a string www.evideostreamer.com that identifies the domain name accessed using a web browser. In this example, the activity descriptor 1124 retains the domain name, so the flag 1128 in the activity information 1120 is a asserted flag 1128 to indicate that the activity description 1124 includes a domain name. A timestamp 1126, which includes a string/number 820, identifies the time that the web browser was last used to access the mobile streaming website.
The activity information 1130 includes an application identifier 1132 that identifies the application used to perform the activity described in the activity information 1130. For example, the application identifier 1132 (which includes the string com. company a. MediaPlayer) identifies the application MediaPlayer (which in this example was developed by the developer company a) (which is an application that can be used to play and record multimedia content). The activity descriptor 1134 includes a string PlayVideo to identify that the activity performed using the application MediaPlayer includes playing video (i.e., video play). The timestamp 1136 (which includes the string/number 902) identifies the time when the activity was last performed, e.g., the last time the user played the video using MediaPlayer. The flag 1138 for the activity information 1130 is not asserted.
For purposes of illustration, the timestamp shown in FIG. 11 is calculated as the increment (difference) from the synchronous event (e.g., the integer). Thus, in the example shown in fig. 11, the activity described using the activity information 1100 is the most recent activity because the timestamp 1106 indicates that the minimum amount of time has elapsed since the activity described using the activity information 1100 was performed.
It should be noted that although the example shown in FIG. 11 uses a string of characters for the application identifier and the campaign descriptor, some embodiments may use different information to identify the application and/or campaign. For example, some embodiments use a numeric identifier for the application identifier and/or the activity descriptor. In some embodiments, the application identifier is an identifier of a corresponding application in an online "app store". In some embodiments, the application identifier comprises some or all of the bundle identifiers (e.g., bundle IDs). Additionally, although the application identifier is shown separate from the activity descriptor, some embodiments combine the application identifier and the activity descriptor in a single identifier.
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 such embodiments, a developer of the application/app may determine a number of activities for the application/app and may provide a relevant value for the activity descriptor.
Notice activity table
Fig. 12 presents a block diagram illustrating an advertisement activity table 1200 in accordance with some embodiments. As described above, the announce activity table 1200 includes information about activities that have been announced (i.e., activities whose activity announcement messages have been sent by electronic devices, such as the source electronic device 202). It should be noted that the bulletin activity sheet shown in fig. 12 is presented as a general example of a bulletin activity sheet used by some embodiments. Some embodiments represent campaign information in a different manner and/or include more or less information in the ad campaign table.
The entry 1202 (identified by the entry index 1206) stores the activity information 1100 and the activity identifier 1204. In this example, activity identifier 1204 is generated using application identifier 1102 and activity descriptor 1104 (such as a hash of the string "com.
Entry 1212, which is identified by entry 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.
The input item 1222 (which is identified by the input item index 1226) stores activity information 1120 and an activity identifier 1224. In this example, activity descriptor 1124 (such as a hash of string www.evideostreamer.com) is used to generate activity identifier 1224.
The entry 1232, which is identified by the entry index 1236, stores activity information 1130 and an activity identifier 1234. In this example, the campaign identifier 1234 is generated using the application identifier 1132 and the campaign descriptor 1134 (such as the hash of the string "com.
For illustrative purposes, input items 1202-1232 store all activity information 1100-1130, respectively. However, it should be noted that in some embodiments, the input items 1202-1232 store only some of the activity information 1100-1130, respectively. For example, some embodiments do not store the timestamps 1106-1136 in the input entries 1202-1232.
Available activity table
In some embodiments, the available activity table described above is formatted similar to the advertised activity table 1200 shown in fig. 12. However, the entries in the available activity table include application information for applications available in the corresponding electronic device (e.g., companion electronic device 204).
Activity announcement messages
Fig. 13 presents a block diagram illustrating an activity announcement 1300 (e.g., an activity announcement message) in accordance with some embodiments. It should be noted that the campaign announcement message shown in fig. 13 is presented as a general example of a campaign announcement message used by some embodiments. Some embodiments order fields in the activity announcement message differently and/or include different information in the activity announcement message.
The activity advertisement 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 advertisement message 1300 is sent (e.g., identifies the source electronic device 202). The version ID field 1304 includes a version identifier, such as one that the companion electronic device 204 can use to determine how the fields in the activity information 1300 are formatted and/or how the information is stored in the fields.
The activity identifier field 1306 includes an activity identifier, such as one or more of the activity identifiers 1204-1224. The flags field 1308 includes one or more flags corresponding to the advertising activity, such as flags 1108-1128.
Timestamp field 1310 includes a timestamp for the activity advertised in activity identifier field 1306, e.g., one or more of timestamps 1106-1126.
Recoverable activity indication
As previously described, some embodiments present an indication that an activity is recoverable before requesting extended activity data. FIG. 14 presents a block diagram illustrating a recoverable activity indication (i.e., an indication that an activity is recoverable), in accordance with some embodiments. More particularly, FIG. 14 shows a recoverable activity indication displayed on a display 1400 of the companion electronic device 204. It should be noted that the recoverable activity indication shown in FIG. 14 is presented as a general example of a recoverable activity indication used by some embodiments. Some embodiments use different recoverable activity indications and/or present recoverable activity indications in different ways.
In the illustrated embodiment, the companion electronic device 204 is a smartphone that includes a touch screen display 1400. The embodiment shown in fig. 14 is in the receive state, as the display 1400 shows a lock screen with an unlock indicator 1402 (which shows the phrase "slide to unlock"). Generally, a user of companion electronic device 204 performs an operation to unlock companion electronic device 204 using unlock indicator 1402, such as sliding a graphic of unlock indicator 1402 across display 1400 using a finger.
The recoverable activity indication 1404 includes a graphic (e.g., an icon) that the user can manipulate to accept (or reject) the activity transfer. In FIG. 14, the recoverable activity indication 1404 includes an illustration similar to an envelope indicating that recoverable activity includes using a mail application. In some embodiments, the user may accept the activity transfer by clicking/touching the recoverable activity indicator 1404 on the recoverable activity indicator 1404 and/or by moving the recoverable activity indicator 1404 along a path on the display 1400. For example, in some embodiments, a user may accept an activity transfer by touching and dragging the recoverable activity indication 1404 along or near path 1406 (shown as a dashed line).
For illustrative purposes, the recoverable activity indication 1404 is shown at a lock screen of the companion electronic device 204. In some embodiments, the recoverable activity indication 1404 may be shown at a different screen/location (e.g., at an unlock screen, at a menu bar, by using a notification window/pop-up, etc.). In addition, the location, size, graphics, color, and/or other visual characteristics of the recoverable activity indication 1404 may vary for different embodiments, and may depend on the type of activity that can be recovered. For example, in some embodiments, the companion electronic device 204 determines the graphic shown in the recoverable activity indication 1404 based on an application identifier used for the advertising activity. As another example, in some embodiments, the recoverable activity indication 1404 is shown at the lower left corner of the display 1400. Some embodiments present multiple recoverable activity indicators simultaneously.
It should be noted that accepting (or rejecting) the activity transfer can include moving the recoverable activity indication 1404 along a path different from 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 recoverable activity indication 1404, by tapping on the recoverable activity indication 1404, by sliding the recoverable activity indication 1404, by performing a gesture using the recoverable activity indication 1404, or the like.
Automatic and manual activity bulletin
In some embodiments, the source electronic device 202 broadcasts the activity announcement automatically, e.g., at predetermined time intervals, upon receiving the activity information, based on the detected location of the source electronic device 202, etc. In such embodiments, the source electronic device 202 may provide settings, such as system preferences, that the user may use to turn on or off the broadcast of the activity announcement.
In some embodiments, the source electronic device 202 manually begins broadcasting the activity announcement, i.e., waits for input from the user to begin broadcasting the activity announcement. In some of these embodiments, the source electronic device 202 starts broadcasting the activity announcement upon detecting the input by the user and continues to broadcast 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 a motion 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 a touch screen of the source electronic device 202, pressing a key and/or button combination, etc.
In some embodiments, the activity announcement message and/or the message sent by the source electronic device 202 to the companion electronic device 204 along with (i.e., in addition to) the activity announcement message causes the companion electronic device 204 to initiate a timer. In some embodiments, companion electronic device 204 remains in the receive state as described above until the expiration of this timer. Source electronic device 202 can provide an expiration time of a timer to companion electronic device 204, or companion electronic device 204 can determine the expiration time.
In some embodiments, the companion electronic device 204 presents an indication that the activity is recoverable until the timer expires, and if the user accepts the indication, the activity is continued at the companion electronic device 204 without the user performing one or more operations (e.g., fingerprint scan, password input, etc.) to unlock the companion electronic device 204. More particularly, companion electronic device 204 can detect the user acceptance indication and can bypass the lock screen/unlock operation, allowing the user to begin using companion electronic device 204 without unlocking companion electronic device 204. In some embodiments, the user is allowed to bypass the lock screen/unlock operation only before the timer expires.
Activity continuation framework
In some embodiments, the third party application receives access to some or all of the activity transfer operations (such as those described earlier with reference to fig. 3-10) via an "activity continuation" framework available at the electronic device that may participate in the activity transfer operations. The activity continuation framework may provide third-party applications with access to operating system functions, daemon assistance programs, handlers, services, etc., which perform at least some of the activity transfer operations. For example, in some embodiments, the electronic device and/or a provider of the operating system of the electronic device provides an Application Programming Interface (API) through which third party applications may make calls to functions that facilitate activity transfer operations. In some embodiments, the activity continuation framework enables third-party applications (and third-party application developers) to transfer activity from one electronic device to another without implementing (or even knowing) the low-level details of activity continuation.
For example, in some embodiments, to enable third party applications to participate in activity transfer operations, third party application developers provide activity descriptors for activities that the third party applications may perform and methods of configuring the third party applications to perform the activities. In some of these embodiments, at an electronic device, such as source electronic device 202, a third-party application makes calls to the functionality provided by the activity continuation framework in order to provide an activity descriptor (and possibly extended activity data) for an activity performed in the third-party application. At an electronic device, such as companion electronic device 204, to configure a third party application to perform an activity, the activity continuation framework may pass extended activity data to the third party application (e.g., via a command line switch or parameter, by using an object, etc.). Thus, the activity continuation framework can facilitate the third party application developer's activity continuation with minimal effort and expense for the third party application.
Exchanging messages between electronic devices
FIG. 15 presents a swim lane diagram illustrating messages exchanged between electronic devices, in accordance with some embodiments. As can be seen in fig. 15, 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 occurring first and lower messages occurring later. Although fig. 15 is shown with messages exchanged in a particular order, in some embodiments other messages are exchanged and/or messages are exchanged in a different order. Generally, the electronic devices in the described embodiments exchange sufficient messages to implement the operations described herein.
The messages in FIG. 15 are associated with two operations performed by source electronic device 202 and/or companion electronic device 204. The first operation, which includes advertisement 1500, is an activity advertisement operation such as that illustrated in FIG. 3. During activity announcement operation, the source electronic device 202 broadcasts at least one activity announcement 1500.
The second operation, which includes a request for extended campaign data 1502, extended campaign data 1504, and a notification of campaign transition 1506, is a campaign transition operation such as that shown in fig. 5-6. During activity transfer operations, the companion electronic device 204 responds to the activity announcement 1500 with a request 1502 for extended activity data. Upon receiving the request 1502 for extended activity data, the source electronic device 202 responds by sending extended activity data 1504. In some embodiments, after the companion electronic device 204 uses the extended activity data to begin performing the activity at the second application, the companion electronic device 204 sends a notification of the activity transfer 1506 to let the source electronic device 202 know that the activity was transferred.
Forwarding activity-related information
As described above, in some embodiments, a source electronic device (e.g., source electronic device 202) forwards activity-related information to a companion electronic device (e.g., companion electronic device 204). In general, the activity-related information includes any information that may be used in performing an activity (e.g., an activity transferred to a companion electronic device or another activity performed on the companion electronic device as described herein). For example, activity-related information includes, but is not limited to, information from a copy and paste clipboard in the source electronic device 202 (e.g., text, images, video, sound, settings, files, etc.), an earlier version of a file, the contents of a undo buffer (which holds a record of changes made to the system by the user that may be used to reverse the changes, etc.), and/or other types of information. Upon receiving the activity-related information, the companion electronic device can use the activity-related information for one or more activities. For example, when the activity-related information includes the contents of a revocation buffer, the companion electronic device may update a local revocation buffer (i.e., a revocation buffer in the companion electronic device) with the contents of the revocation buffer received from the source electronic device. For example, the undo buffer may include a list of the last N operations performed when editing the file, the list configured to enable the use of menu, hot key combinations, etc. to reverse or "undo" the operations while subsequently editing the file. In this manner, the companion electronic device may configure itself to effect the reversal or undo of operations previously performed on the source electronic device.
FIG. 17 presents a flowchart illustrating a process for forwarding activity-related information from a source electronic device to a companion electronic device in accordance with some embodiments. More particularly, FIG. 17 illustrates an embodiment in which the source electronic device 202 forwards activity-related information to the companion electronic device 204 using an announcement message. It should be noted that the operations shown in fig. 17 are presented as a general example of operations performed by some embodiments. The operations performed by some embodiments include different operations and/or operations performed in a different order. Additionally, while certain mechanisms are used to describe operations (e.g., accompanying electronics 204, etc.), in some embodiments other mechanisms perform the operations.
For the process shown in FIG. 17, the contents of the clipboard in the source electronic device 202 are used as activity-related information. However, in some embodiments, and as described above, other types of activity-related information may be forwarded from the source electronic device 202. In addition, a "clipboard" as used herein indicates a copy in the corresponding device and pasting the clipboard. In some embodiments, the clipboard is a software service (e.g., an operating system software service, a standalone application, etc.) that provides temporary storage of information in the electronic device. The clipboard enables a user to perform operations such as copy, paste, cut, etc. to interact with information. Such clipboards are generally known in the art and are therefore not described in more detail herein.
The process shown in FIG. 17 begins with the source electronic device 202 determining that activity-related information 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., step 300 in fig. 3), the source electronic device 202 may perform one or more checks and determine that information related to the activity is available. As another example, upon receiving an indication that a user has performed a copy operation to copy information (e.g., copy text, files, images, etc.) to a clipboard, 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 an activity and may directly or indirectly determine that information related to the activity has become available. As described above, for the example in FIG. 17, the contents of the clipboard are activity-related information. The source electronic device 202 thus determines in step 1700 that there are one or more copy items disposed there on the clipboard at the time the current activity is performed.
The source electronic device 202 then generates an information advertisement related to the activity (step 1702). In general, the activity-related information publications include sufficient information to enable the companion electronic device 204 (and possibly other devices that receive the activity-related information publications) to determine that the activity-related information is of interest and process the activity-related information. Continuing with the clipboard example, the source electronic device 202 can generate an activity-related information publication that enables the companion electronic device 204 to determine that activity-related information described in the activity-related information publication (i.e., content of the clipboard from the source electronic device 202) is of interest to the companion electronic device 204, and update the clipboard in the companion electronic device 204 using content of the clipboard from the source electronic device 202 or based on content of the clipboard from the source electronic device 202.
FIG. 18 presents a block diagram illustrating an activity-related information advertisement 1800 generated by a source electronic device 202, in accordance with some embodiments. The activity-related information advertisement 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 advertisement 1800 is sent (e.g., identifies the source electronic device 202). The version ID field 1804 includes a version identifier, such as a version identifier that the companion electronic device 204 can use to determine how fields in the information advertisement 1800 related to an activity are formatted and/or how information is stored in the fields. The activity identifier field 1806 includes an activity identifier, such as one or more of the activity identifiers 1204-1224, that identifies an activity with which the corresponding activity-related information is associated. Timestamp field 1808 includes a timestamp for the activity advertised in activity identifier field 1806. As described above, timestamps may be used to resolve an order in which two or more activity-related information announcements 1800 are handled, which activity-related information announcements 1800 are ignored, and so on.
The activity-related information field 1810 includes activity-related information 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 content from the clipboard in 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 the sections, images, and files of text are separately copied to the clipboard during one or more copy operations, some or all of the sections, images, and files of text (possibly with corresponding metadata) may be included in the activity-related information field 1810.
As another example, in embodiments where the source electronic device 202 includes information based on the activity-related information in the activity-related information field 1810, information obtained therefrom, etc., the source electronic device 202 may include compressed information, representative information, information that may be used to derive the activity-related information, and/or other information based on or associated with the activity-related information in the activity-related information field 1810. For example, the source electronic device 202 may include an indication (e.g., a pointer, tag, 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 activity-related information itself in the activity-related information publication 1800. In such embodiments, the companion electronic device 204 can perform one or more operations for retrieving the activity-related information indicated in the activity-related information bulletin 1800. For example, assuming that the source electronic device 202 includes a pointer to the activity-related information in the activity-related information field 1810, the companion electronic device 204 may retrieve the activity-related information indicated by the pointer from the source electronic device 202 via one or more corresponding independent communications.
In some embodiments, information based on, obtained from, etc. the activity-related information may be included in the activity-related information field 1810 in addition to some or all of the actual activity-related information. Continuing with the clipboard example, assuming that a small section (100 bytes) of text 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 section of text (and possibly corresponding metadata) in the activity-related information field 1810, but may include only references to images. The companion electronic device 204 may then use the reference to request an image as described above. In some embodiments, the size of the information related to the activity is used to determine whether the information related to the activity or information based thereon is to be included in the information advertisement 1800 related to the activity. For example, activity-related information may be included directly or indirectly (e.g., represented by a metric, an indicator, etc.) in the activity-related information field 1810 based on one or more thresholds (e.g., a maximum size for the activity-related information advertisement 1800, etc.).
The source electronic device 202 then transmits (e.g., broadcasts, unicasts, multicasts, etc.) the information advertisement 1800 associated with the activity (step 1704). For example, using the corresponding protocol, the source electronic device 202 can unicast the activity-related information advertisement 1800 to the companion electronic device 204. Generally, during this operation, the source electronic device 202 provides an activity-related information announcement 1800 to the companion electronic device 204 via a wired or wireless communication link. As described in more detail below, upon receiving the activity-related information publication 1800, the companion electronic device 204 selectively provides the activity-related information for use in performing one or more activities in the companion electronic device 204.
For example, in FIG. 17, an embodiment is depicted in which the source electronic device 202 advertises information related to an activity separately from an activity advertisement (e.g., activity advertisement 1300) described above. In other words, in some embodiments, activity advertisement 1300 is transmitted in addition to information advertisement 1800 related to the activity. However, in some embodiments, some or all of the activity-related information described above (i.e., actual information, pointers, etc.) is included in activity advertisement 1300. In such embodiments, a separate activity-related information bulletin 1800 may not be used. In such embodiments, activity advertisement 1300 includes various fields, values, etc. for retaining information related to or based on the activity. In such embodiments, the companion electronic device 204 can perform operations similar to those shown in fig. 19 to process the activity-related information in the activity bulletin 1300.
Although activity-related information publications 1800 are shown as examples of activity-related information publications, in some embodiments, activity-related information publications 1800 are formatted differently (e.g., including different configurations 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 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.
FIG. 19 presents a flowchart illustrating a process for receiving activity-related information in a companion electronic device from a source electronic device in accordance with some embodiments. More particularly, FIG. 19 illustrates an embodiment in which the companion electronic device 204 receives activity-related information from the source electronic device 202. It should be noted that the operations shown in fig. 19 are presented as a general example of operations performed by some embodiments. The operations performed by some embodiments include different operations and/or operations performed in a different order. Additionally, while certain mechanisms are used to describe operations (e.g., accompanying electronics 204, etc.), in some embodiments other mechanisms perform the operations.
For the process shown in FIG. 19, the contents of the clipboard in the source electronic device 202 are used as activity-related information. However, in some embodiments, and as described above, other types of activity-related information may be received from source electronic device 202.
The process shown in FIG. 19 begins with the companion electronic device 204 receiving an information bulletin 1800 related to an activity from the source electronic device 202 (step 1900). As described above, this operation can include receiving a unicast, broadcast, multicast, or other activity-related information advertisement 1800 that includes information that enables the companion electronic device 204 to process activity-related information and selectively provide the activity-related information for use in performing one or more activities in the companion electronic device 204.
The companion electronic device 204 then determines whether the information related to the activity described in the information related to the activity announcement 1800 is of interest (1902). Generally, during this operation, the companion electronic device 204 determines whether activity-related information is to be used with the companion electronic device 204. It should be noted that in this specification, the operation of deciding 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 selects whether to provide activity-related information to an activity in the companion electronic device 204 as described herein.
In some embodiments, when determining whether the information related to the activity is of interest, companion electronic device 204 presents an activity-related information availability indicator on a display (e.g., display 1400) of companion electronic device 204. FIG. 20 presents a block diagram illustrating an activity-related information availability indicator 2000 in accordance with some embodiments. As can be seen in fig. 20, the activity-related information availability indicator 2000 is an illustration presented on a display 1400 of the companion electronic device 204. In some embodiments, the activity-related information availability indicator 2000 is a simple illustration that generally indicates that activity-related information is available. However, in some embodiments, the activity-related information availability indicator 2000 includes a representation of the type of activity-related information within the diagram (e.g., text indicator, image indicator, undo buffer indicator, clipboard indicator, composition indicator, etc., as shown). Similar to the recoverable activity indication 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, a user may finger tap the activity-related information availability indicator 2000 on a touch-sensitive screen, perform a mouse pointer hover and click over the activity-related information availability indicator 2000, click selection and drag the activity-related information availability indicator 2000 along a specified path, and so forth. In some embodiments, the acceptance of the activity-related information causes the companion electronic device 204 to determine that the activity-related information is of interest.
In some embodiments, when deciding whether the activity-related information is of interest (in addition to or instead 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 activity-related information is in a format supported by the companion electronic device 204, and so forth. In general, the companion electronic device 204 determines that the activity-related information is of interest when the activity-related information should and can make activity available in the companion electronic device 204.
If the information related to the activity described in the information related to the activity publication 1800 is not of interest (step 1904), the companion electronic device 204 can stop processing related to the activity-related information publication 1800 and the process 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 communicate a negative acknowledgement or denial to the source electronic device 202, and the like.
If the information related to the activity described in the information related to the activity publication 1800 is of interest (step 1904), the companion electronic device 204 acquires the information related to the activity (1906). Generally, 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 publication 1800 and the source electronic device 202. For this operation, if the information publication 1800 related to the activity contains some or all of the information actually related to the activity, the companion electronic device 204 can obtain some or all of the information related to the activity from the information publication 1800 related to the activity. 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 can obtain the contents of the clipboard from the activity-related information bulletin 1800.
In addition to or instead of obtaining information related to an activity from the information bulletin 1800, the companion electronic device 204 can obtain some or all of the information related to the activity from the source electronic device 202. For example, if the source electronic device 202 includes a pointer (or other indicator) to information related to an activity on the source electronic device 202 in the activity-related information bulletin 1800 (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 can request the activity-related information from the source electronic device 202.
In some embodiments, the information related to the activity may be acquired by the source electronic device 202 along with, i.e., included in, the extended activity data. In some of these embodiments, the companion electronic device 204 requests that information related to the activity be sent along with the extended activity data. For example, the activity-related information bulletin 1800 may include an indication (e.g., a pointer or other indicator) that activity-related information is available, and the companion electronic device may receive a request to obtain activity-related data and transfer the corresponding activity (i.e., request expanded activity data) as described herein.
The companion electronic device 204 then provides the activity-related information for use in performing 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 activity-related information so that the activity-related information is available for the activity (e.g., the activity transferred from the source electronic device 202 to the companion electronic device 204, the activity started on the companion electronic device 204, etc.). In some embodiments, "providing information related to an activity for use in performing one or more activities" includes providing information related to an activity in a manner that the information related to the activity can be used in a corresponding and intended manner during operation of the activity. Continuing with the clipboard example, this may include making the contents of the clipboard from the source electronic device 202 available for pasting and other operations, as the information on the clipboard (i.e., from the clipboard in the companion electronic device 204) is typically available in the companion electronic device 204. For example, hot keys and menu selections may thus 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 activity-related information includes the contents of a revocation buffer, the revocation buffer in the companion electronic device 204 may be updated with the activity-related information (i.e., the history of operations performed in the source electronic device 202) such that corresponding operations that were not initially performed in the companion electronic device 204 may be revoked in the companion electronic device 204.
Continuing with the clipboard instance, in some embodiments, the activity-related information is provided to use a clipboard in the companion electronic device 204 that includes copying the contents of the clipboard described in the activity-related information bulletin 1800 to the companion electronic device 204 when performing one or more activities in the companion electronic device 204. In such 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 a clipboard in the companion electronic device 204, the companion electronic device 204 (e.g., an operating system thereon) provides a separate transfer information buffer. In such 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 to overwrite the clipboard or write information to the transfer activity buffer (e.g., with a quick-show prompt). In some embodiments, the transfer information buffer provides software services (e.g., operating system software services, stand-alone applications, etc.) for temporary storage of information in the electronic device, although a hardware-based transfer information buffer may be used alone or in combination with a software transfer information buffer. The transfer information buffer enables a user to perform operations such as copy, paste, cut, etc. to interact with the information stored in the transfer information buffer.
In some embodiments, the user may be presented with an interface (e.g., on display 1400) that enables the user to determine which content from the clipboard of the source electronic device 202 is to be copied to the clipboard in the companion electronic device and where the content from the clipboard of the source electronic device 202 is to be copied to the clipboard in the companion electronic device. For example, upon selection of the activity-related information availability indicator 2000, a pop-up window showing or otherwise listing the content from the clipboard of the source electronic device 202 may be presented on the display 1400, the pop-up window including mechanisms for selecting which content is to be copied to the clipboard in the companion electronic device 204, where on the clipboard the content is to be copied, and so forth.
It should be noted that although the activity-related information availability indicator 2000 is presented in a particular location on the lock screen, in some embodiments, the activity-related information availability indicator 2000 may be presented on any screen, in a different location, etc. during operation of the companion electronic device 204. Additionally, the activity-related information availability indicator 2000 may be presented along with and/or in association with the recoverable activity indication 1404. In such embodiments, the user may select one or both of the activity-related information availability indicator 2000 and the recoverable activity indication 1404 for performing the transfer activity (as described herein) or for accepting the activity-related information. In some embodiments, the companion electronic device 204 only presents the recoverable activity indication 1404 and the user selects the recoverable activity indication 1404 such that the companion electronic device 204 transfers activity (as described herein) and accepts activity-related information.
The foregoing descriptions of embodiments have been presented only for purposes of illustration and description. It is not intended to be exhaustive or to limit the embodiments to the forms disclosed. Accordingly, many modifications and variations will be apparent to practitioners skilled in this art. Furthermore, the above disclosure is not intended to limit embodiments. The scope of the embodiments is defined by the appended claims.

Claims (21)

1. A method for activity continuation on a companion electronic device, the method comprising:
performing, by the companion electronic device, operations for:
receiving an announcement from a source electronic device, the announcement including an indication that activity-related information is available from the source electronic device, the indication including an identifier, the activity-related information associated with an activity performed in the source electronic device, the activity-related information 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 an indication in the announcement, sending a request for the activity-related information to the source electronic device, the request including the identifier;
receiving the activity-related information corresponding to the identifier from the source electronic device in a transmission separate from the announcement; and
selectively providing the activity-related information for use in performing one or more activities in the companion electronic device.
2. The method of claim 1, wherein selectively providing the activity-related information for use in performing the one or more activities comprises:
replacing some or all of the contents of a clipboard in the companion electronic device with the source clipboard information.
3. The method of claim 1, wherein selectively providing the activity-related information for use in performing one or more activities comprises:
storing the source clipboard information in a transfer information buffer in the companion electronic device, the transfer information buffer being different from a clipboard in the companion electronic device; and
providing the source clipboard information from the transfer information buffer for use in activities in the companion electronic device.
4. The method of claim 1, wherein the source clipboard information includes contents of a revocation buffer in the source electronic device, the revocation buffer holding 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.
5. The method of claim 1, wherein the announcement does not include the activity-related information, and wherein the identifier is a pointer to the activity-related information on the source electronic device.
6. The method of claim 1, wherein receiving the activity-related information from the source electronic device comprises:
requesting extended activity data from the source electronic device, the extended activity data comprising information that can be used to configure an application in the companion electronic device to continue activity from the source electronic device; and
the activity-related information is received along with extended activity data from the source electronic device for an activity performed in a first application.
7. The method of claim 1, wherein selectively providing the activity-related information comprises:
presenting an activity-related information availability indicator on a display of the companion electronic device;
upon receiving acceptance of the activity-related information availability indicator, providing the activity-related information for use when performing one or more activities in the companion electronic device; and
upon receiving rejection of the activity-related information availability indicator, not providing the activity-related information for use when performing one or more activities in the companion electronic device.
8. A companion electronic device, comprising:
a processing subsystem; and
a network connection subsystem;
the companion electronic device:
receiving an announcement from a source electronic device, the announcement including an indication that activity-related information is available from the source electronic device, the indication including an identifier, the activity-related information associated with an activity performed in the source electronic device, the activity-related information 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 an indication in the announcement, sending a request for the activity-related information to the source electronic device, the request including the identifier;
receiving the activity-related information corresponding to the identifier from the source electronic device in a transmission separate from the announcement; and
selectively providing the activity-related information for use in performing one or more activities in the companion electronic device.
9. The companion electronic device of claim 8, further comprising:
a clipboard;
wherein when selectively providing the activity-related information for use in performing the one or more activities, the companion electronic device:
replacing some or all of the clipboard's content in the companion electronic device with the source clipboard information.
10. The companion electronic device of claim 8, further comprising:
a transfer information buffer, the transfer information buffer distinct from a clipboard in the companion electronic device;
wherein when selectively providing the activity-related information for use in performing one or more activities, the companion electronic device:
storing the source clipboard information in the transfer information buffer; and
providing the source clipboard information from the transfer information buffer for use in activities in the companion electronic device.
11. The companion electronic device of claim 8, wherein the source clipboard information includes contents of a revocation buffer in the source electronic device that maintains a record of changes made to one or more applications of the source electronic device that allow the changes to be reversed in the companion electronic device.
12. The companion electronic device of claim 8, wherein the announcement does not include the activity-related information, and wherein the identifier is a pointer to the activity-related information on the source electronic device.
13. The companion electronic device of claim 8, wherein when receiving the activity-related information from the source electronic device, the companion electronic device:
requesting extended activity data from the source electronic device, the extended activity data including information that can be used to configure an application in the companion electronic device to continue activity from the source electronic device; and
the activity-related information is received along with extended activity data from the source electronic device for an activity performed in a first application.
14. The companion electronic device of claim 8, further comprising:
a display subsystem comprising a display;
wherein when selectively providing the activity-related information, the companion electronic device:
presenting an activity-related information availability indicator on the display;
upon receiving acceptance of the activity-related information availability indicator, providing the activity-related information for use when performing one or more activities in the companion electronic device; and
upon receiving rejection of the activity-related information availability indicator, not providing the activity-related information for use when performing one or more activities in the companion electronic device.
15. A computer-readable storage medium storing instructions that, when executed by a processing subsystem in a companion electronic device, cause the companion electronic device to perform a method comprising:
receiving an announcement from a source electronic device, the announcement including an indication that activity-related information is available from the source electronic device, the indication including an identifier, the activity-related information associated with an activity performed in the source electronic device, the activity-related information 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 an indication in the announcement, sending a request for the activity-related information to the source electronic device, the request including the identifier;
receiving the activity-related information corresponding to the identifier from the source electronic device in a transmission separate from the announcement; and
selectively providing the activity-related information for use in performing one or more activities in the companion electronic device.
16. The computer-readable storage medium of claim 15, wherein selectively providing the activity-related information for use in performing the one or more activities comprises:
replacing some or all of the contents of a clipboard in the companion electronic device with the source clipboard information.
17. The computer-readable storage medium of claim 15, wherein selectively providing the activity-related information for use in performing one or more activities comprises:
storing the source clipboard information in a transfer information buffer in the companion electronic device, the transfer information buffer being different from a clipboard in the companion electronic device; and
providing the source clipboard information from the transfer information buffer for use in activities in the companion electronic device.
18. The computer-readable storage medium of claim 15, wherein the announcement does not include the activity-related information, and wherein the identifier is a pointer to the activity-related information on the source electronic device.
19. The computer-readable storage medium of claim 15, wherein receiving the activity-related information from the source electronic device comprises:
requesting extended activity data from the source electronic device, the extended activity data comprising information that can be used to configure an application in the companion electronic device to continue activity from the source electronic device; and
the activity-related information is received along with extended activity data from the source electronic device for an activity performed in a first application.
20. The computer-readable storage medium of claim 15, wherein selectively providing the activity-related information comprises:
presenting an activity-related information availability indicator on a display of the companion electronic device;
upon receiving acceptance of the activity-related information availability indicator, providing the activity-related information for use when performing one or more activities in the companion electronic device; and
upon receiving rejection of the activity-related information availability indicator, not providing the activity-related information for use when performing one or more activities in the companion electronic device.
21. An apparatus comprising means for performing the method of any one of claims 1-7.
CN201680050026.4A 2015-08-31 2016-06-30 Forwarding activity-related information from a source electronic device to a companion electronic device Active CN107949830B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210397164.7A CN114706698A (en) 2015-08-31 2016-06-30 Forwarding activity-related information from a source electronic device to a companion electronic device

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/841,410 2015-08-31
US14/841,410 US10187770B2 (en) 2014-05-30 2015-08-31 Forwarding activity-related information from source electronic devices to companion electronic devices
PCT/US2016/040583 WO2017039821A1 (en) 2015-08-31 2016-06-30 Forwarding activity-related information from source electronic devices to companion electronic devices

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202210397164.7A Division CN114706698A (en) 2015-08-31 2016-06-30 Forwarding activity-related information from a source electronic device to a companion electronic device

Publications (2)

Publication Number Publication Date
CN107949830A CN107949830A (en) 2018-04-20
CN107949830B true CN107949830B (en) 2022-05-06

Family

ID=56551556

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201680050026.4A Active CN107949830B (en) 2015-08-31 2016-06-30 Forwarding activity-related information from a source electronic device to a companion electronic device
CN202210397164.7A Pending CN114706698A (en) 2015-08-31 2016-06-30 Forwarding activity-related information from a source electronic device to a companion electronic device

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202210397164.7A Pending CN114706698A (en) 2015-08-31 2016-06-30 Forwarding activity-related information from a source electronic device to a companion electronic device

Country Status (4)

Country Link
KR (2) KR102044108B1 (en)
CN (2) CN107949830B (en)
TW (1) TWI627541B (en)
WO (1) WO2017039821A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10237711B2 (en) 2014-05-30 2019-03-19 Apple Inc. Dynamic types for activity continuation between electronic devices
US10193987B2 (en) 2014-05-30 2019-01-29 Apple Inc. Activity continuation between electronic devices
US10187770B2 (en) 2014-05-30 2019-01-22 Apple Inc. Forwarding activity-related information from source electronic devices to companion electronic devices

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521018A (en) * 2010-10-14 2012-06-27 微软公司 Cloud-based virtual clipboard
CN102834820A (en) * 2010-03-30 2012-12-19 微软公司 Companion experience
CN103782588A (en) * 2011-06-28 2014-05-07 亚马逊技术公司 Transferring state information between electronic devices
US8964947B1 (en) * 2013-03-11 2015-02-24 Amazon Technologies, Inc. Approaches for sharing data between electronic devices
WO2015039300A1 (en) * 2013-09-18 2015-03-26 Nokia Corporation Bluetooth low energy packets

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8583090B2 (en) * 2006-12-29 2013-11-12 Nokia Corporation Transferring task completion to another device
US9110743B2 (en) * 2010-12-21 2015-08-18 Microsoft Technology Licensing, Llc Extensible system action for sharing while remaining in context
TW201314471A (en) * 2011-09-29 2013-04-01 Cheng-Wei Tsai Cloud clipboard system and method thereof
US9003299B2 (en) * 2012-06-08 2015-04-07 Apple Inc. Extensible application state preservation architecture
US9098177B2 (en) * 2012-12-13 2015-08-04 Google Technology Holdings LLC Apparatus and methods for facilitating context handoff between devices in a cloud based wireless personal area network
US20140188802A1 (en) * 2012-12-31 2014-07-03 Appsense Limited Pull and paste
US20150012861A1 (en) * 2013-07-02 2015-01-08 Dropbox, Inc. Syncing content clipboard

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102834820A (en) * 2010-03-30 2012-12-19 微软公司 Companion experience
CN102521018A (en) * 2010-10-14 2012-06-27 微软公司 Cloud-based virtual clipboard
CN103782588A (en) * 2011-06-28 2014-05-07 亚马逊技术公司 Transferring state information between electronic devices
US8964947B1 (en) * 2013-03-11 2015-02-24 Amazon Technologies, Inc. Approaches for sharing data between electronic devices
WO2015039300A1 (en) * 2013-09-18 2015-03-26 Nokia Corporation Bluetooth low energy packets

Also Published As

Publication number Publication date
KR20190126949A (en) 2019-11-12
TW201719443A (en) 2017-06-01
KR20180038522A (en) 2018-04-16
CN114706698A (en) 2022-07-05
CN107949830A (en) 2018-04-20
KR102044108B1 (en) 2019-11-12
KR102097931B1 (en) 2020-04-06
TWI627541B (en) 2018-06-21
WO2017039821A1 (en) 2017-03-09

Similar Documents

Publication Publication Date Title
US11356829B2 (en) Dynamic types for activity continuation between electronic devices
AU2020200339B2 (en) Activity continuation between electronic devices
US9948728B2 (en) Continuing an activity commenced on a source device with a companion device
US10667109B2 (en) Forwarding activity-related information from source electronic devices to companion electronic devices
US10659200B2 (en) Companion application for activity cooperation
CN107949830B (en) Forwarding activity-related information from a source electronic device to a companion electronic device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant