Movatterモバイル変換


[0]ホーム

URL:


US8812601B2 - Transferring application state across devices with checkpoints - Google Patents

Transferring application state across devices with checkpoints
Download PDF

Info

Publication number
US8812601B2
US8812601B2US13/247,725US201113247725AUS8812601B2US 8812601 B2US8812601 B2US 8812601B2US 201113247725 AUS201113247725 AUS 201113247725AUS 8812601 B2US8812601 B2US 8812601B2
Authority
US
United States
Prior art keywords
application
actively running
client device
applications
application state
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
US13/247,725
Other versions
US20120290663A1 (en
Inventor
Cheng-Hsueh Andrew Hsieh
Chinyue Chen
Yung-Chieh Lo
Jason Parks
Nicholas Julian Pelly
Jeffrey William Hamilton
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.)
Google LLC
Original Assignee
Google LLC
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
Application filed by Google LLCfiledCriticalGoogle LLC
Priority to US13/247,725priorityCriticalpatent/US8812601B2/en
Assigned to GOOGLE INC.reassignmentGOOGLE INC.ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS).Assignors: HAMILTON, JEFFREY WILLIAM, CHEN, CHINYUE, HSIEH, CHENG-HSUEH ANDREW, LO, YUNG-CHIEH, PARKS, JASON, PELLY, NICHOLAS JULIAN
Priority to PCT/US2012/036952prioritypatent/WO2012154746A1/en
Priority to EP12167369.3Aprioritypatent/EP2523110B1/en
Priority to DE202012004620Uprioritypatent/DE202012004620U1/en
Priority to GB1208207.9Aprioritypatent/GB2492867A/en
Priority to FR1254227Aprioritypatent/FR2975801B1/en
Priority to DE102012207698Aprioritypatent/DE102012207698A1/en
Priority to AU2012100569Aprioritypatent/AU2012100569A4/en
Priority to NL2008779Aprioritypatent/NL2008779C2/en
Publication of US20120290663A1publicationCriticalpatent/US20120290663A1/en
Publication of US8812601B2publicationCriticalpatent/US8812601B2/en
Application grantedgrantedCritical
Assigned to GOOGLE LLCreassignmentGOOGLE LLCCHANGE OF NAME (SEE DOCUMENT FOR DETAILS).Assignors: GOOGLE INC.
Activelegal-statusCriticalCurrent
Anticipated expirationlegal-statusCritical

Links

Images

Classifications

Definitions

Landscapes

Abstract

A first client device executes a plurality of actively running applications, each having one or more checkpoints, each checkpoint identifying an execution breakpoint at which a respective application can be suspended and subsequently resumed. The first client device detects a transfer triggering condition, stores an application state for each of the plurality of actively running applications, and transmits the stored application state for each of the plurality of actively running applications to a second client device or system. The stored application state for each respective application of the plurality of actively running applications corresponds to a checkpoint of the respective application. Optionally, the transfer triggering condition includes presence of the second client device or system within a predefined proximity of the first client device or system, wherein the predefined proximity is a predefined proximity for near field communication.

Description

RELATED APPLICATIONS
This application claims priority to U.S. provisional patent application No. 61/484,185, filed May 9, 2011, entitled “Transferring Application State Across Devices with Checkpoints,” which application is incorporated by reference herein in its entirety.
TECHNICAL FIELD
The disclosed embodiments relate generally to wireless communication and more particularly to transferring use of one or more applications between two devices through wireless communication connections.
BACKGROUND
A user with multiple devices, such as one or more smart phones, tablets, laptop computers or the like, may want to switch from using one device to another while continuing to work with or access the same application or content. For example, the user may want to transfer from one device to another in order to use the device best suited for a given task. For example, it is easy to read email from a smart phone but difficult to reply due to the size limitations on the phone keyboard. A user may start a draft of a message on a phone, but prefer to finish the draft using a tablet, which has a larger keyboard. In another example, a user starts playback of a video using a tablet or smart phone, but would prefer to continuing viewing the video on a device with a larger screen such as a television or laptop computer. In yet another example, a user may start a phone call using a landline telephone but want to continue the phone call using a mobile phone using a cellular connection, or vice versa.
SUMMARY
In some embodiments, a first client device or system performs a method that includes executing a plurality of actively running applications, each of the plurality of actively running applications having one or more checkpoints, each checkpoint identifying an execution breakpoint at which the respective application can be suspended and subsequently resumed. The method further includes detecting a transfer triggering condition, storing an application state for each of the plurality of actively running applications, and transmitting the stored application state for each of the plurality of actively running applications to a second client device or system. The stored application state for each respective application of the plurality of actively running applications corresponds to a checkpoint of the respective application.
Optionally, the transfer triggering condition includes presence of the second client device or system within a predefined proximity of the first client device or system, wherein the predefined proximity is a predefined proximity for near field communication.
Optionally, the method includes, upon detecting the triggering condition, waiting for a respective actively running application of the plurality of actively running applications to reach a checkpoint of the respective actively running application, and upon detecting the respective actively running application entering the checkpoint, suspending the respective actively running application.
Optionally, the method includes, upon detecting the triggering condition, waiting for the plurality of actively running applications to reach respective checkpoints, and upon detecting each respective application entering the corresponding checkpoint, suspending the plurality of actively running applications.
Optionally, the method includes, notifying each of the actively running applications that the application state has been transmitted to the second client device or system.
In some embodiments, a non-transitory computer readable storage medium stores one or more programs for execution by one or more processors of a client device or system, the one or more programs comprising instructions that, when executed by the one or more processors, cause the client device or system to perform the above described method.
BRIEF DESCRIPTION OF THE DRAWINGS
For a better understanding of the disclosed embodiments, reference should be made to the Description of Embodiments below, in conjunction with the following drawings in which like reference numerals refer to corresponding parts throughout the figures.
FIG. 1 is a block diagram of a system for enabling transferring application state across devices according to one embodiment.
FIG. 2 is a block diagram illustrating of a client device or system, in accordance with some embodiments.
FIGS. 3A-3C include a flow chart illustrating a method of operation of a client device or system, for transmitting the application state of a respective application to another client device or system, in accordance with some embodiments.
FIGS. 4A-4C include a flow chart illustrating a method of facilitating transitioning use of an application by a user from a first client device or system to a second device or system, in accordance with some embodiments.
FIGS. 5A-5C include a flow chart illustrating a method of transmitting the application states of a plurality of actively running applications from a first client device or system to a second client device or system, in accordance with some embodiments.
FIG. 6 includes a flow chart illustrating a method of transmitting the application state of an actively running application from a first client device or system to a second client device or system, in accordance with some embodiments.
DESCRIPTION OF EMBODIMENTS
It will be understood that, although the terms “first,” “second,” etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first application could be termed a second application, and, similarly, a second application could be termed a first application, without changing the meaning of the description, so long as all occurrences of the “first application” are renamed consistently and all occurrences of the second application are renamed consistently. The first application and the second application are both application, but they are not the same application.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the claims. As used in the description of the embodiments and the appended claims, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term “and/or” as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
As used herein, the term “if” may be construed to mean “when” or “upon” or “in response to determining” or “in accordance with a determination” or “in response to detecting,” that a stated condition precedent is true, depending on the context. Similarly, the phrase “if it is determined [that a stated condition precedent is true]” or “if [a stated condition precedent is true]” or “when [a stated condition precedent is true]” may be construed to mean “upon determining” or “in response to determining” or “in accordance with a determination” or “upon detecting” or “in response to detecting” that the stated condition precedent is true, depending on the context.
Reference will now be made in detail to various embodiments, examples of which are illustrated in the accompanying drawings. In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the described embodiments. However, some embodiments may be practiced without these specific details. In other instances, well-known methods, procedures, components, and circuits have not been described in detail so as not to unnecessarily obscure aspects of the embodiments.
FIG. 1 is a block diagram illustrating adistributed system100 having two or more client devices or systems102 (hereinafter called clients102). Thedistributed system100 typically further includes one ormore communication networks120 and a plurality of application servers or server systems such as one ormore messaging servers130 and one ormore multimedia servers140.
In some embodiments, each of the clients102-1 and102-2 has a near field communication (NFC)module104 for handling NFC communications, anetwork module106 for handling network communications, anapplication transfer module108 discussed in more detail below, and one ormore application programs110,112,114. NFC modules104-1 and104-2 enable NFC communication between NFC-enabled devices. In some embodiments, the applications on aclient102 include one ormore messaging applications110, one ormore multimedia applications112 and optionallyother applications114 as well. As described in more detail below, in some implementations, when a user brings twoclients102 into close proximity (e.g., within NFC communication distance of each other, which typically means within 10 cm of each other, but optionally means within 5 cm or 4 cm), the application state of one or more applications (e.g., the active or foreground application) on one of the clients (e.g., client102-1) is transferred to the other client (e.g., client102-2).
Messaging server130 includes one or moremessaging server applications131, amessaging database133 that storesmessaging account information135 for multiple users of a messaging service supported byserver130, and optionallyother databases137 as well. For example,messaging server130 may be a Gmail server, an email server other than a Gmail server, or an instant messaging server.Multimedia server140 includes one or moremultimedia server applications141, one ormore multimedia databases143, includingmultimedia account information145, and optionallyother databases147 as well. Examples ofmultimedia server140 include a YouTube server, online radio servers, and social gaming servers.
In some implements, a user reading an email message using a client-side messaging application110-1 (e.g., Gmail) on his mobile cell phone (client102-1) may instead want to reply to the message on a nearby desktop computer (client102-2) that has a larger keyboard and a bigger display screen. To do this, the user brings his mobile cell phone102-1 into close proximity with computer102-2. Bothclients102 haveNFC modules104. NFC module104-1 in client102-1 detects the presence of computer104-2, and a NFC communication connection is established between mobile phone102-1 and computer102-2. The current state of messaging application110-1, in this example comprising the user's account identifier (e.g., username@domainname.com) and message identifier is transmitted over the NFC connection to computer102-2. Optionally, messaging application110-1 in client102-1 also communicates withmessaging server130 overcommunications networks120 to ensure thatserver130 has the most recent status with respect to the message currently displayed by client102-1. Computer102-2 receives the current state of messaging application102-1 from the phone102-1, and in response, messaging application110-2 in computer102-2 downloads a copy of the email message frommessaging server130 viacommunication networks120. From the user's point of view, as soon as he sits down in front of the display of computer102-2, the same email message he was reading on phone102-1 is now displayed on the display screen of computer102-2 and he can start typing his reply using the keyboard of computer102-2.
FIG. 2 is a block diagram illustrating a client device or system (client)102 in accordance with some embodiments.Client102 typically includes one or more processors202 (also called processing units or CPU(s)),memory204, a near field communication (NFC) transceiver (transmitter and receiver)206, one or more network orother communication interfaces208, a user interface205 (typically including comprising a display device and a keyboard, mouse, touchpad, touchscreen or other input device), and one ormore communication buses209 for interconnecting these components. Thecommunication buses209 optionally include circuitry (sometimes called a chipset) that interconnects and controls communications between system components.Memory204 typically includes high-speed random access memory, such as DRAM, SRAM, DDR RAM or other random access solid state memory devices; and optionally includes non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices.Memory204 optionally includes one or more storage devices remotely located from the CPU(s)202.Memory204, or alternatively the non-volatile memory device(s) within memory203, comprises a non-transitory computer readable storage medium. In some embodiments,memory204 or alternatively the non-transitory computer readable storage medium stores the following programs and/or modules for execution by the one ormore processors202 and data structures, or a subset thereof:
    • anOperating System210 that includes procedures for handling various basic system services and for performing hardware dependent tasks;
    • a network communications module (or instructions)106 that is used for connectingclient102 to other computers (e.g.,messaging server130 or multimedia server140) via one or more network interfaces208 (wired or wireless) and one or more communication networks120 (FIG. 1), such as the Internet, other wide area networks, local area networks, metropolitan area networks, and so on;
    • a nearfield communications module104 for connectingclient102 to other clients, devices or systems viaNFC transceiver206, using near field communications;
    • anapplication registration module212, which maintainsapplication registration information214 for one or more applications that are registered for sharing their application state with other client devices or systems information; for example,application registration information214 may include information for amessaging application110 that is registered to share its application state with another device (e.g., client102-2) upon detection of a triggering condition;
    • anapplication transfer module108, for transferring the application state of one or more applications (e.g., applications registered withapplication registration module212 to share application state) to another device (e.g., client102-2) upon detection of a triggering condition; and
    • one ormore applications110,112,114, such as a messaging application1120, browser ormultimedia application112, and optionally one or moreother applications114.
In some implementations, nearfield communications module104 includes anNFC detection module220 and anNFC communication module222.NFC detection module220 detects the presence of another NFC-enabled device or system within a predefined proximity and notifiesclient102 upon detecting the presence of another NFC-enabled device or system within the predefined proximity. The predefined proximity is typically the proximity required to successfully establish an NFC communication channel (also called an NFC connection) between two devices, or to successfully conduct NFC communications. While environmental conditions can affect the ability to form an NFC connection, the predefined proximity is typically no greater than 10 cm, and in some implementations requires the two devices to be within 5 cm or 4 cm of each other.NFC communication module222 handles communications betweenclient102 and other device viaNFC transceiver206, such as the transmission or receipt of application state, or application state information, for one or more applications.
In some implementations,application registration information214 includes, for each registered application one or more of: an application program identifier, a mime type, and information (e.g., a procedure name, reference to an API, or the like) that enables application transfer application to obtain the application state of the registered application. Optionally,application registration information214 is maintained byclient102 as a searchable database, table or list.
In some implementations, a respective application program stores its own application state information during execution, and thus the application state is updated from time to time. Depending on the type of the applications running, the information type and the size of the application state (e.g., the amount of memory required to store the application state) may be different from one application to another, and may be stored either locally (i.e., on client102) or remotely, such as on a remotely located server.
In some embodiments,messaging application110 locally stores messagingapplication state information224, as well as a user identifier oraccount name226. The user identifier oraccount name226 indicates the user or account for which messages or other information is being displayed bymessaging application110. Depending on the current application context ofmessaging application110, messagingapplication state information224 includes at least one of: the identifier of a message and the format of the message currently viewed or worked on by the user, information identifying a list of messages currently displayed byclient102, information identifying a list of conversations (sometimes called message threads) currently displayed byclient102, information identifying a contact for which contract information is currently displayed by client, etc. Messaging application state information248 may be saved either locally atclient102, or remotely on a messaging server.
In some embodiments, browser ormultimedia application112 locally stores browserapplication state information228. In some implementations, browserapplication state information228 is or includes the URL of a document currently being viewed, and is saved locally atclient102. Optionally, browserapplication state information228 is or includes additional information, such as one or more of: document position, playback position, user entered content or modifications to the displayed document, etc.
Optionally,other applications114, if provided, storeapplication state information230 of various types, depending on the type of application.
Each of the above-identified modules, applications or programs corresponds to a set of instructions, executable by the one or more processors ofclient102, for performing a function described above. The above identified modules, applications or programs (i.e., sets of instructions) need not be implemented as separate software programs, procedures or modules, and thus various subsets of these modules may be combined or otherwise re-arranged in various embodiments. In some embodiments, memory203 optionally stores a subset of the modules and data structures identified above. Furthermore, memory203 may stores additional modules and data structures not described above.
FIGS. 3A-3C include a flow chart illustrating amethod300 of operation of a client device or system (hereinafter called a client, for ease for reference) according to some embodiments.Method300 is performed by a first client, such as client102-1 described above with reference toFIGS. 1 and 2. Registration information (e.g.,214,FIG. 2) for a respective application (e.g.,messaging application110, browser/multimedia application112) indicating that the respective application is registered for sharing application state (e.g.,messaging application state224 or browser application state228) with other devices is retained in memory (302). The application state of the respective application is stored either in memory ofclient102 or in memory of a server at a remote location from the client (304). During execution of the respective application, the application state is dynamically updated and stored in memory, as needed.
A transfer triggering condition for transferring application state of the respective application to another device client (e.g., from first client102-1 to second client102-2,FIG. 1) is detected (306). The triggering condition is presence of another device (e.g., second client102-2) within a predefined proximity of first client102-1 (308). This is sometimes herein called a “zero-click” triggering condition, for “zero-click” sharing. As noted above, the predefined proximity is typically the proximity required to successfully establish an NFC communication channel (also called an NFC connection) between two devices, or to successfully conduct NFC communications. In various implementations, the predefined proximity is no greater than 10 centimeters, 5 centimeters, or 4 centimeters. In some implementations, in addition to detecting the NFC field of another device, a “bump” must be detected (e.g., using one or more accelerometers in client102-1), including that the two client devices have physically touched. In some implementations, the user need not take any action other than bringing the two devices within the predefined proximity, and hence this is sometimes called “zero-click” sharing.
In some implementations, the triggering condition further includes successfully establishing a near field communication connection between first client102-1 and second client102-2 (310). Optionally, first client102-1 may need to transmit user authentication information to successfully establish the near field communication connection with second client102-2.
Upon detecting the triggering condition, client102-1 determines, in accordance with the stored registration information (214,FIG. 2), that a respective application (e.g., the application running in the foreground of client102-1) is registered for application state sharing (312), and transmits the application state of the respective application to second client102-2 (314). For ease of explainingmethod300, it shall be assumed that the only application for which an application state is to be transmitted to another device is the foreground application, if any, where the foreground application is the application running in a topmost or foreground application window of first client102-1. However, in some implementations, described in more detail below with reference toFIGS. 5A-5C, application state for more than one application is transmitted by first client102-1 to second client102-2.
Optionally, the respective application (at client102-1) is notified that the application state has been transmitted to client102-2 upon completion of the transmission (316). In some embodiments, client102-1 may optionally change the application state of the respective application in response to the notification (e.g., at the end of the transmission of the application state) (318). For example, in the case where the respective application is a browser application, the browser application may terminate after receiving notification that the application state has been transmitted. In another example, where the respective application is an email application, after receiving notification of that the application state has been transmitted to another client, the draft message or the message being reviewed is closed, because it is assumed that the user will resume use of the email application at client102-2. In yet another example, where the respective application is a multimedia player, playback of a video/audio by first client102-1 is stopped after the multimedia player state is sent and notification thereof is provided to the multimedia player.
In some implementations, the respective application is a foreground application, executing in a foreground application window of client102-1 (322,FIG. 3B;332,FIG. 3C). Typically in client devices such as mobile phones or tablet computers, there is only one foreground application. In some implementations, the application state of the respective application includes at least one of the group consisting of: one or more unsent message drafts, state information for an ongoing telephone call, a playback position for video content, a playback position for audio content, a message account identifier, a message identifier for an unsent message draft, a message identifier for a currently viewed message, a mime type associated with the respective application (324). A playback position is typically a timestamp and/or frame number. The message identifier can be the message identifier for an unsent message draft, or for a message currently being viewed in the foreground at client102-1. In some implementations, a copy of the application state from the respective application is requested (334) (e.g.,application transfer module108 requests the application state from a respective application, and then transfers that application state to second client102-2).
Optionally, when the application state of the respective application is stored remotely (e.g., for an online application), a copy of the application state from the respective application is requested from a respective server and downloaded to first client102-1, which then transfers it to second client102-1. Alternatively, when the application state of the respective application is stored remotely (e.g., for an online application), a copy of the application state from the respective application is requested by second client102-2 from a respective server and is downloaded directly second client102-2.
In some embodiments, at least a portion of the application state is transmitted to second client102-2 using near field communication (336). Furthermore, in some implementations, at least another portion of the application state is transmitted using wireless communication other than near field communication, such as Bluetooth communication or WiFi communication (338). In an exemplary implementation, in which transmitting the application state would exceed a threshold amount of time (e.g., 0.5 seconds), a portion of the application state is transferred by NFC and a remaining portion is transferred using another wireless communication channel. In yet other implementations, the application state is entirely transmitted using a near field communication connection between the first client device or system and the second device or system (340).
Method300 is typically governed by instructions that are stored in a non-transitory computer readable storage medium in a respective client102-1 and that are executed by one or more processors of a respective client device orsystem102. Each of the operations shown inFIGS. 3A-3C typically corresponds to computer readable instructions which are stored in a computer memory or non-transitory computer readable storage medium in a respective client102-1 and which are executed by one or more processors of the respective client102-1. The non-transitory computer readable storage medium includes one or more memory devices of client102-1, as described above with respect toFIG. 2. The computer readable instructions stored on the non-transitory computer readable storage medium of client102-1 are typically source code, assembly language code or object code.
Additionally, it should be noted that details of other processes described herein with respect tomethods400,500 and600 (e.g.,FIGS. 4A-4C,5A-5C and6, respectively) are also applicable in an analogous manner tomethod300 described above with respect toFIGS. 3A-3C. For example, triggering conditions, and state information transferred may have one or more of the characteristics of the various the methods described herein with reference tomethods400,500 and600. For brevity, these details are not repeated here.
Attention is now directed to amethod400 of transitioning use of an application by a user from one client device (e.g., first client102-1) to another (e.g., second client102-2), as illustrated by the flow chart inFIGS. 4A-4C. At first client102-1 which is under control of a respective user, registration information of applications registered to share application information with other devices or systems is optionally retained in memory of client first102-1 (402). Seeapplication registration information214,FIG. 2. A first application is actively running on first client102-1 (404). As described above, the application state of the actively running application is typically stored by first client102-1.
While the first application is running, client102-1 performs a handoff operation (406). In some embodiments, the handoff operation is performed by or under the control of application transfer module108 (FIG. 2). The handoff operation begins when client102-1 detects that it is positioned within a predefined proximity of a second device (414). Alternately stated, the handoff operation begins when client102-1 detects proximity of the second client. In some implementations, such proximity is detected by NFC detection module220 (FIG. 2). As described above, proximity of the second client is typically detected when the second client is within 10 cm, 5 cm or 4 cm of first client102-1 (416).
In some implementations, as part of the handoff operation (406), client102-1 requests from the actively running application (first application) a copy of its current application state (418). Alternatively,application transfer module108 directly accesses state information for the actively running application. Client102-1 transmits application information (e.g., the aforementioned state information) associated with the first application to client102-2 (420).
At second client102-2, registration information of applications registered to share application information with other devices or systems is optionally retained (412). Second client102-2 also detects proximity of the first client1021, when the two devices are within a predefined proximity (422). As part of the handoff operation described above, second client102-2 receives the application information from client102-1 (424). In response to receiving application information from first client102-1, second client102-2 executes a second application corresponding to the first application with an initial user interface state corresponding to the first client device user interface state (426). In some embodiments, second client102-2 is under control of the same user who controls first client102-1. Unless otherwise stated, however, thehandoff operation406 is performed whether the first and second clients are under control of the same user or not.
In some embodiments, the handoff operation occurs when the second device or system is physically touched by the first device or system. For example, an accelerometer can be used in one or both devices to detect the touch/bump, which is used to ensure that the handoff is in response to an intentional act, and thus avoid accidental handoffs.
Referring now toFIG. 4B, as noted above, second client102-2 receives application state information from first client102-1 (424). Examples of the application state information received include the mime type of the first application and/or content of the first application. In some embodiments, client102-2 stores the received application state information and passes the received state information to the second application (430). In some embodiments where a second application corresponding to the mime type does not exist on client102-2, the user having control of second client102-2 is prompted to download the second application corresponding to the first application (432). Furthermore, second client102-2 downloads the respective second application (e.g., from a host server via communications networks120) in response to user instruction (434). Second client102-2 executes a second application corresponding to the first application with an initial user interface state corresponding to the first client device user interface state (426). For example, the second application is an application that can process content of the same type (e.g., MIME type) as the first application.
In some embodiments, if the second application corresponding to the first application is not already executing as a foreground application in second client102-2, in response to receiving application information from first client102-1, second client102-2 executes the second application corresponding to the first application as the foreground application (440). In some embodiments where the second application is not actively running when the handoff operation is performed, second client102-2 automatically starts executing the second application within a predefined time period (442). For example, the predefined time period is 0.5 seconds such that the starting of the second application is not noticeable to the user.
In some implementations, the first application and second application are instances of two distinct applications of a same application type (450). In other implementations, the first application and second application are two instances of a same application (452). In yet other implementations, the first application and second application are applications that both handle the same content type(s) (e.g., MIME type or types), but are optionally different types of applications (e.g., a reader/player vs. an editor).
In one example, the first application and second application are both email applications (454) (e.g., two distinct email applications, or two instances of the same email application). Note, when both applications of email applications, it is typically required that bothclients102 are under control of the same user or entity to protect the confidential information that may be contained in the email account of the user or entity.
In another example, the first application and second application are both multimedia players (456). In yet another example, the first application and second application are communication applications for audio or audio/visual communication (458).
In some embodiments for cases where the first application and second application are both email applications, the first client device user interface state comprises display of a particular message or conversation thread, and the initial user interface state corresponding to the first client device user interface state comprises display of said particular message or conversation thread. In another example, the first client device user interface state comprises display of an unsent draft message, and the initial user interface state corresponding to the first client device user interface state comprises display of said unsent draft message. In yet another example, the first client device user interface state comprises display of a first list of conversations corresponding to a user-specified search query, and the initial user interface state corresponding to the first client device user interface state comprises display of a second list of conversations corresponding to the user-specified search query. In some implementations, the first and second lists are either the same, or one is shorter than the other when one of the client devices has a smaller display than the other client device.
In some embodiments for cases where the first application and second application are both multimedia applications, the first client device user interface state comprises playback of a first multimedia item at a first playback position and the initial user interface state corresponding to the first client device user interface state comprises playback of the first multimedia item at a second playback position corresponding to the first playback position. In some embodiments, the second playback position has a predefined offset with respect to the first playback position. For example, the initial user interface state at the second client device may be earlier in the playback than the first client device user interface state by a predefined offset (e.g., 0.5 to 3.0 seconds earlier), in order to ensure that the handoff does not cause the user to miss any content.
In some embodiments, for cases where the first application and second application are both communication applications for audio or audio/visual communication, the initial user interface state of the second client corresponds to a communication connection by the second client to a same destination as a communication connection by the first client when the handoff operation is performed.
In some embodiments, the application content that is transmitted as part of the application state is selected from the group consisting of a URL, contact information for a respective address book entry, information identifying a displayed map, information identifying a displayed map and set of directions for traveling between two locations. For example, second client102-2, in response to receiving the application state from the first client102-1, uses the mime type included in the received application state to determine whether the second client has a second application corresponding to the first application. If it is determined that it does not have the second application with a matching mime type, second client102-2 displays a prompt to download a respective second application corresponding to the mime type, downloads the respective second application in response to user instruction, and executes the second application.
Referring toFIG. 4C, first client102-1 not only can hand off application information (sometimes herein called state information) for a respective application to another client (e.g., client102-2), as represented by operation406), but it can also receive application information from another client during a handoff operation (470). For example, after a time after the above describedhandoff operation406, the user may want to transfer the state of the same application or another application back to first client102-1. Typically, first application102-1 will have no actively running application, or no application running in the foreground, when it receives a handoff operation. However, in other implementations, various other mechanisms may be used to determine whether first client102-1 should accept application information from another client.
The second handoff operation, like the one described above, is typically performed in response to detecting a triggering operation. Triggering conditions are described above, and therefore that description is not repeated here. In this second handoff operation, first client102-1 receives from another client device of system application information (e.g., state information) for a third application (472). For example, the received application information includes a mime type and application content and/or state information. Such information is described above, and thus is not repeated here. Typically, the received application information is stored by first client102-1 and passed to a respective application (e.g., a fourth application) corresponding to the third application (474). In some implementations, the respective application to be used is determined in accordance with the mime type specified in the received application information. The respective application (e.g., fourth application) corresponding to the third application is executed by the first client device, with an initial user interface corresponding to the user interface at the other client device or system from which the application information was received (476).
Method400 is typically be governed by instructions that are stored in a non-transitory computer readable storage medium in a respective client102-1 and that are executed by one or more processors of a respective client device orsystem102. Each of the operations shown inFIGS. 4A-4C typically corresponds to computer readable instructions which are stored in a computer memory or non-transitory computer readable storage medium in a respective client102-1 and which are executed by one or more processors of the respective client102-1. The non-transitory computer readable storage medium includes one or more memory devices of client102-1, as described above with respect toFIG. 2. The computer readable instructions stored on the non-transitory computer readable storage medium of client102-1 are typically source code, assembly language code or object code.
Additionally, it should be noted that details of other processes described herein with respect tomethods300,500 and600 (e.g.,FIGS. 3A-3C,5A-5C and6, respectively) are also applicable in an analogous manner tomethod400 described above with respect toFIGS. 4A-4C. For example, triggering conditions, and state information transferred may have one or more of the characteristics of the various the methods described herein with reference tomethods300,500 and600. For brevity, these details are not repeated here.
FIGS. 5A-5C include a flow chart illustrating amethod500 of operation of a client device or system (hereinafter called a client for ease for reference) according to some embodiments.Method500 is performed by a client device or system, such as first client102-1 described above with reference toFIGS. 1 and 2. First client102-1 executes a plurality of actively running applications with one or multiple checkpoints, each checkpoint identifying an execution breakpoint at which the respective application can be suspended and subsequently resumed (502). The application state of the respective application for each respective application of the plurality of actively running applications corresponding to a checkpoint of the respective application is dynamically stored either in memory of the client or in memory of a server at a remote location from the client (504). A transfer triggering condition for transferring application state of the actively running applications to another device client (e.g., from first client102-1 to second client102-2,FIG. 1) is detected (506). Optionally,client102—optionally waits for the plurality of actively running applications to enter their respective checkpoints and suspends execution of the plurality of actively running applications (508,511). Alternatively, in some implementations, upon detecting the triggering condition, first client102-1 suspends a respective actively running application of the plurality of actively running applications when the respective actively running application reaches a checkpoint of the respective actively running application (509).
The stored application state of the plurality of actively running applications is transmitted to client102-2 (512). In some embodiments, each of the actively running applications is notified that the application state has been transmitted to the second client device (514).
Referring toFIG. 5B, in some embodiments, detecting the transfer triggering condition (506) includes detecting presence of another client device or system (e.g., second client102-2) within a predefined proximity of first client102-1 (308). Furthermore, as described above, in some embodiments, the predefined proximity is the proximity required to successfully establish an NFC channel (also called an NFC connection) between two devices, or to successfully conduct NFC communications (507). In some implementations, detecting the transfer triggering condition includes establishing an NFC channel (310). In some embodiments, the transfer triggering condition includes an instruction by a user (e.g., pressing a button or object on a touch sensitive display) of the first client device or system (526). However, in many implementations, no user action other than bringing the two devices close to each other is required.
Referring toFIG. 5C, in some embodiments first client102-1 starts transmitting the stored application state of the plurality of actively running applications only after detecting the suspension of the plurality of active applications (528). Alternatively, in some embodiments, first client102-1 transmits the stored application state of an application to the second device or system after detecting the suspension of the respective active application without waiting for the suspension of the other still actively running applications (530). In some embodiments (not shown inFIGS. 5A-5C), first client102-1 transmits the stored application state of the plurality of actively running applications after a predefined number of applications have been suspended.
In some embodiments, to minimize the delay of transferring the application state from first client102-1 to second client102-2, the transfer triggering condition comprises detecting the NFC field of the second device without forming a NFC connection. In some embodiments, first client102-1 establishes a NFC connection with second client102-2 either after having suspended the plurality of actively running applications, or while in the process of suspending execution of the plurality of actively running applications.
In some implementations, first client102-1 transmits user authentication information as part of the application state transmitted to second client102-2 (532).
As described above, in some embodiments, at least a portion of the application state is transmitted to second client102-2 using near field communication (336). Furthermore, in some implementations, at least another portion of the application state is transmitted using wireless communication other than near field communication, such as Bluetooth communication or WiFi communication (338). In yet other implementations, the application state is entirely transmitted using a near field communication connection between the first client device or system and the second device or system (340).
Method500 is typically be governed by instructions that are stored in a non-transitory computer readable storage medium in a respective client102-1 and that are executed by one or more processors of a respective client device orsystem102. Each of the operations shown inFIGS. 5A-5C typically corresponds to computer readable instructions which are stored in a computer memory or non-transitory computer readable storage medium in a respective client102-1 and which are executed by one or more processors of the respective client102-1. The non-transitory computer readable storage medium includes one or more memory devices of client102-1, as described above with respect toFIG. 2. The computer readable instructions stored on the non-transitory computer readable storage medium of client102-1 are typically source code, assembly language code or object code.
Additionally, it should be noted that details of other processes described herein with respect tomethods300,400 and600 (e.g.,FIGS. 3A-3C,4A-4C and6, respectively) are also applicable in an analogous manner tomethod500 described above with respect toFIGS. 5A-5C. For example, triggering conditions, and state information transferred may have one or more of the characteristics of the various the methods described herein with reference tomethods300,400 and600. For brevity, these details are not repeated here.
FIG. 6 includes a flow chart illustrating amethod600 of operation of a client device or system according to some embodiments.Method600 is performed by a client device or system, such as client device or system102-1 described above with reference toFIGS. 1 and 2. Client102-1 executes an actively running application having one or more checkpoints, each checkpoint identifying an execution breakpoint at which the actively running application can be suspended and subsequently resumed (602). The application state of the respective actively running application corresponding to a checkpoint of the respective application is dynamically stored either in memory of the client or in memory of a server at a remote location from the client (604). A transfer triggering condition for transferring application state of the respective application to another device client (e.g., from client102-1 to client102-2,FIG. 1) is detected (606). In some embodiments, the transfer triggering condition includes presence of the second client device or system within a predefined proximity of the first client device or system (306, see also above description with reference toFIG. 5B). Furthermore, in some embodiments, the predefined proximity is a predefined proximity for near field communication (308,FIG. 5B, described above with reference toFIG. 5B). In some embodiments, the transfer triggering condition includes an instruction by a user (e.g., pressing a button or object on a touch sensitive display) of the first client device or system (526, described above with reference toFIG. 5B).
Method600 is typically be governed by instructions that are stored in a non-transitory computer readable storage medium in a respective client102-1 and that are executed by one or more processors of a respective client device orsystem102. Each of the operations shown inFIG. 6 typically corresponds to computer readable instructions which are stored in a computer memory or non-transitory computer readable storage medium in a respective client102-1 and which are executed by one or more processors of the respective client102-1. The non-transitory computer readable storage medium includes one or more memory devices of client102-1, as described above with respect toFIG. 2. The computer readable instructions stored on the non-transitory computer readable storage medium of client102-1 are typically source code, assembly language code or object code.
Additionally, it should be noted that details of other processes described herein with respect tomethods300,400 and500 (e.g.,FIGS. 3A-3C,4A-4C and5A-5C, respectively) are also applicable in an analogous manner tomethod600 described above with respect toFIG. 6. For example, triggering conditions, and state information transferred may have one or more of the characteristics of the various the methods described herein with reference tomethods300,400 and500. For brevity, these details are not repeated here.
The foregoing description, for purpose of explanation, has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated.

Claims (23)

What is claimed is:
1. A method, performed by a first client device or system having one or more processors and memory storing one or more programs for execution by the one or more processors, the method comprising:
executing a plurality of actively running applications, each of the plurality of actively running applications having one or more checkpoints, each checkpoint identifying an execution breakpoint at which the respective application can be suspended and subsequently resumed;
detecting a transfer triggering condition;
in response to detecting the transfer triggering condition:
storing an application state for each respective application of the plurality of actively running applications after the respective application reaches its respective checkpoint, the stored application state for each respective application of the plurality of actively running applications corresponding to the checkpoint of the respective application, and
suspending the plurality of actively running applications in response to the plurality of actively running applications reaching their respective checkpoints;
transmitting the stored application state for each of the plurality of actively running applications to a second client device or system; and
while the transfer triggering condition is still detected:
receiving a modified application state for each of the plurality of actively running applications from the second client device or system, wherein at least one of the modified application states is different than its respective stored application state, and
launching the plurality of actively executing applications using their respective modified application states.
2. The method ofclaim 1, wherein the transfer triggering condition comprises presence of the second client device or system within a predefined proximity of the first client device or system, wherein the predefined proximity is a predefined proximity for near field communication.
3. The method ofclaim 1, wherein the transmitting is performed after suspending the plurality of actively running applications.
4. The method ofclaim 1, wherein the transmitting includes transmitting authentication information of a user of the first client device or system to the second client device or system when one or more of the plurality of actively running applications is a type of application associated with confidential information.
5. The method ofclaim 1, wherein transmitting the stored application state for each of the plurality of actively running applications includes transmitting the stored application state using at least one of near field communication and other wireless communication.
6. The method ofclaim 1, wherein detecting the transfer triggering condition further comprises establishing the near field communication connection between the first client device or system and the second client device or system.
7. The method ofclaim 1, wherein the application state of each of the actively running applications includes at least one of the group consisting of: one or more unsent message drafts, state information for an ongoing telephone call, a playback position for video content, a playback position for audio content, a message account identifier, a message identifier for an unsent message draft, a message identifier for a currently viewed message, a mime type associated with the respective application.
8. A method, performed by a first client device or system having one or more processors and memory storing one or more programs for execution by the one or more processors, the method comprising:
executing an actively running application having one or more checkpoints, each checkpoint identifying an execution breakpoint at which the actively running application can be suspended and subsequently resumed;
detecting a transfer triggering condition, the transfer triggering condition comprising presence of a second client device or system within a predefined proximity of the first client device or system;
in response to detecting the transfer triggering condition:
storing an application state for the actively running application after the actively running application reaches its respective checkpoint, the stored application state corresponding to the checkpoint of the actively running application, and
suspending the actively running application in response to the actively running application reaching its respective checkpoint;
transmitting the stored application state for the actively running application to the second client device or system; and
while the transfer triggering condition is still detected:
receiving a modified application state for the actively running application from the second client device or system, wherein the modified application state is different than the stored application state, and
launching the actively running application using the modified application stated.
9. The method ofclaim 8, wherein the respective application is a foreground application, executing in a foreground application window of the first client device.
10. A non-transitory computer readable storage medium storing one or more programs for execution by one or more processors of a first client device or system, the one or more programs comprising instructions to:
execute a plurality of actively running applications, each of the plurality of actively running applications having one or more checkpoints, each checkpoint identifying an execution breakpoint at which the respective application can be suspended and subsequently resumed;
detect a transfer triggering condition;
in response to detecting the transfer triggering condition:
store an application state for each respective application of the plurality of actively running applications after the respective application reaches its respective checkpoint, the stored application state for each respective application of the plurality of actively running applications corresponding to the checkpoint of the respective application, and
suspend the plurality of actively running applications in response to the plurality of actively running applications reaching their respective checkpoints;
transmit the stored application state for each of the plurality of actively running applications to a second client device or system; and
while the transfer triggering condition is still detected:
receive a modified application state for each of the plurality of actively running applications from the second client device or system, wherein at least one of the modified application states is different than its respective stored application state, and
launch the plurality of actively executing applications using their respective modified application states.
11. The non-transitory computer readable storage medium ofclaim 10, wherein the transfer triggering condition comprises presence of the second client device or system within a predefined proximity of the first client device or system, wherein the predefined proximity is a predefined proximity for near field communication.
12. A first client device or system, comprising:
one or more communication interfaces, including a near field communication transceiver;
one or more processors; and
memory storing one or more programs for execution by the one or more processors, the one or more programs comprising instructions to:
execute a plurality of actively running applications, each of the plurality of actively running applications having one or more checkpoints, each checkpoint identifying an execution breakpoint at which the respective application can be suspended and subsequently resumed;
detect a transfer triggering condition;
in response to detecting the transfer triggering condition:
store an application state for each respective application of the plurality of actively running applications after the respective application reaches its respective checkpoint, the stored application state for each respective application of the plurality of actively running applications corresponding to the checkpoint of the respective application, and
suspend the plurality of actively running applications in response to the plurality of actively running applications reaching their respective checkpoints;
transmit the stored application state for each of the plurality of actively running applications to a second client device or system; and
while the transfer triggering condition is still detected:
receive a modified application state for each of the plurality of actively running applications from the second client device or system, wherein at least one of the modified application states is different than its respective stored application state, and
launch the plurality of actively executing applications using their respective modified application states.
13. The first client device or system ofclaim 12, wherein the transfer triggering condition comprises presence of the second client device or system within a predefined proximity of the first client device or system, wherein the predefined proximity is a predefined proximity for near field communication.
14. The method ofclaim 1, wherein the stored application state for each of the plurality of actively running applications is transmitted to the second client device or system in response to the suspending of the plurality of actively running applications.
15. The method ofclaim 1, wherein the plurality of actively running applications are terminated in response to receiving a notification indicating completion of the transmitting of the stored application state for each of the plurality of actively running applications to the second client device or system.
16. The method ofclaim 1, wherein the stored application state for a respective application corresponds to a predetermined offset from its respective checkpoints, wherein the stored application state for the respective applications is transmitted to the second client device or system such that a user interface state of the second client device or system corresponds to the predetermined offset.
17. The method ofclaim 1, further comprising determining the plurality of actively running applications using a database identifying a plurality of registered applications, wherein each of the plurality of registered applications is registered for sharing its application state with the second client device or system, and wherein each of the plurality of actively running applications is from the plurality of registered applications.
18. The method ofclaim 8, wherein the stored application state for the actively running application is transmitted to the second client device or system in response to the suspending of the actively running application.
19. The method ofclaim 8, wherein the actively running application is terminated in response to receiving a notification indicating completion of the transmitting of the stored application state for the actively running application to the second client device or system.
20. The method ofclaim 8, wherein the stored application state for the actively running application corresponds to a predetermined offset from its respective checkpoint, wherein the stored application state is transmitted to the second client device or system such that a user interface state of the second client device or system corresponds to the predetermined offset.
21. The method ofclaim 8, further comprising determining the actively running application using a database identifying one or more registered applications, wherein each of the one or more registered applications is registered for sharing its application state with the second client device or system, and wherein the actively running application is from the one or more registered applications.
22. The non-transitory computer readable storage medium ofclaim 10, wherein the plurality of actively running applications are terminated in response to receiving a notification indicating completion of the transmitting of the stored application state for each of the plurality of actively running applications to the second client device or system.
23. The first client device or system ofclaim 12, wherein the plurality of actively running applications are terminated in response to receiving a notification indicating completion of the transmitting of the stored application state for each of the plurality of actively running applications to the second client device or system.
US13/247,7252011-05-092011-09-28Transferring application state across devices with checkpointsActiveUS8812601B2 (en)

Priority Applications (9)

Application NumberPriority DateFiling DateTitle
US13/247,725US8812601B2 (en)2011-05-092011-09-28Transferring application state across devices with checkpoints
PCT/US2012/036952WO2012154746A1 (en)2011-05-092012-05-08Transferring application state across devices by using checkpoints at which applications can be suspended and resumed
DE102012207698ADE102012207698A1 (en)2011-05-092012-05-09 Transfer application status across devices with checkpoints
DE202012004620UDE202012004620U1 (en)2011-05-092012-05-09 Client device for transferring the application state across different devices with checkpoints
GB1208207.9AGB2492867A (en)2011-05-092012-05-09Transferring application state of a plurality of running applications each including checkpoints between client devices
FR1254227AFR2975801B1 (en)2011-05-092012-05-09 STATE TRANSFER BETWEEN DEVICES WITH CONTROL POINTS
EP12167369.3AEP2523110B1 (en)2011-05-092012-05-09Transferring application state across devices by using checkpoints at which applications can be suspended and resumed
AU2012100569AAU2012100569A4 (en)2011-05-092012-05-09Transferring application state across devices with checkpoints
NL2008779ANL2008779C2 (en)2011-05-092012-05-09Transferring application state across devices with checkpoints.

Applications Claiming Priority (2)

Application NumberPriority DateFiling DateTitle
US201161484185P2011-05-092011-05-09
US13/247,725US8812601B2 (en)2011-05-092011-09-28Transferring application state across devices with checkpoints

Publications (2)

Publication NumberPublication Date
US20120290663A1 US20120290663A1 (en)2012-11-15
US8812601B2true US8812601B2 (en)2014-08-19

Family

ID=46177498

Family Applications (1)

Application NumberTitlePriority DateFiling Date
US13/247,725ActiveUS8812601B2 (en)2011-05-092011-09-28Transferring application state across devices with checkpoints

Country Status (8)

CountryLink
US (1)US8812601B2 (en)
EP (1)EP2523110B1 (en)
AU (1)AU2012100569A4 (en)
DE (2)DE202012004620U1 (en)
FR (1)FR2975801B1 (en)
GB (1)GB2492867A (en)
NL (1)NL2008779C2 (en)
WO (1)WO2012154746A1 (en)

Cited By (67)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20130332560A1 (en)*2012-02-052013-12-12Apple Inc.Cloud tabs
US20140244739A1 (en)*2013-02-222014-08-28Research In Motion LimitedDevice, System and Method for Generating Application Data
US20140289333A1 (en)*2013-03-212014-09-25Nextbit Systems Inc.Mechanism for sharing states of applications and devices across different user profiles
US20140373096A1 (en)*2013-06-122014-12-18Microsoft CorporationRoaming Internet-Accessible Application State Across Trusted and Untrusted Platforms
US8951127B2 (en)2012-10-022015-02-10Nextbit Systems Inc.Game state synchronization and restoration across multiple devices
US8977723B2 (en)2012-10-022015-03-10Nextbit Systems Inc.Cloud based application fragmentation
US20150088957A1 (en)*2013-09-252015-03-26Sony CorporationSystem and methods for managing applications in multiple devices
US9106721B2 (en)2012-10-022015-08-11Nextbit SystemsApplication state synchronization across multiple devices
US9112885B2 (en)2012-10-022015-08-18Nextbit Systems Inc.Interactive multi-tasker
US20150280933A1 (en)*2014-03-272015-10-01Samsung Electronics Co., Ltd.Electronic device and connection method thereof
US9210203B2 (en)2012-10-022015-12-08Nextbit Systems Inc.Resource based mobile device application streaming
US20150365817A1 (en)*2012-10-022015-12-17Nextbit Systems, Inc.Transferring information to a mobile device
US9268655B2 (en)2012-10-022016-02-23Nextbit Systems Inc.Interface for resolving synchronization conflicts of application states
USD768162S1 (en)2013-09-302016-10-04Nextbit Systems Inc.Display screen or portion thereof with graphical user interface
US9600552B2 (en)2012-10-022017-03-21Nextbit Systems Inc.Proximity based application state synchronization
US9621650B2 (en)*2014-09-302017-04-11Google IncMobile application state identifier framework
US9654556B2 (en)2012-10-022017-05-16Razer (Asia-Pacific) Pte. Ltd.Managing applications on an electronic device
US9658836B2 (en)2015-07-022017-05-23Microsoft Technology Licensing, LlcAutomated generation of transformation chain compatible class
US9712472B2 (en)2015-07-022017-07-18Microsoft Technology Licensing, LlcApplication spawning responsive to communication
US9717985B2 (en)2012-10-022017-08-01Razer (Asia-Pacific) Pte. Ltd.Fragment-based mobile device application streaming utilizing crowd-sourcing
US9733993B2 (en)2015-07-022017-08-15Microsoft Technology Licensing, LlcApplication sharing using endpoint interface entities
US9733915B2 (en)2015-07-022017-08-15Microsoft Technology Licensing, LlcBuilding of compound application chain applications
US9747000B2 (en)2012-10-022017-08-29Razer (Asia-Pacific) Pte. Ltd.Launching applications on an electronic device
US9785484B2 (en)2015-07-022017-10-10Microsoft Technology Licensing, LlcDistributed application interfacing across different hardware
US9860145B2 (en)2015-07-022018-01-02Microsoft Technology Licensing, LlcRecording of inter-application data flow
US9948729B1 (en)2016-10-152018-04-17International Business Machines CorporationBrowsing session transfer using QR codes
US10031724B2 (en)2015-07-082018-07-24Microsoft Technology Licensing, LlcApplication operation responsive to object spatial status
US10123189B2 (en)2013-03-212018-11-06Razer (Asia-Pacific) Pte. Ltd.Electronic device system restoration by tapping mechanism
US10142835B2 (en)2011-09-292018-11-27Apple Inc.Authentication with secondary approver
US10178234B2 (en)2014-05-302019-01-08Apple, Inc.User interface for phone call routing among devices
US10198252B2 (en)2015-07-022019-02-05Microsoft Technology Licensing, LlcTransformation chain application splitting
US10198405B2 (en)2015-07-082019-02-05Microsoft Technology Licensing, LlcRule-based layout of changing information
US10261985B2 (en)2015-07-022019-04-16Microsoft Technology Licensing, LlcOutput rendering in dynamic redefining application
US10277582B2 (en)2015-08-272019-04-30Microsoft Technology Licensing, LlcApplication service architecture
US20190149972A1 (en)*2011-05-092019-05-16Google LlcTransferring Application State Across Devices
US10326719B2 (en)*2012-03-062019-06-18Liveperson, Inc.Occasionally-connected computing interface
US10334054B2 (en)2016-05-192019-06-25Apple Inc.User interface for a device requesting remote authorization
US10397373B2 (en)2015-05-202019-08-27Qualcomm IncorporatedRenewing registrations for client applications installed on different proximate client devices
US10425471B2 (en)2012-10-022019-09-24Razer (Asia-Pacific) Pte. Ltd.Multi-tasker
US10484384B2 (en)2011-09-292019-11-19Apple Inc.Indirect authentication
US10574644B2 (en)2017-05-032020-02-25International Business Machines CorporationStateful session manager
US10666633B2 (en)2012-04-182020-05-26Liveperson, Inc.Authentication of service requests using a communications initiation feature
US10754685B2 (en)*2017-03-032020-08-25Microsoft Technology Licensing LlcCross-device task registration and resumption
US10869253B2 (en)2015-06-022020-12-15Liveperson, Inc.Dynamic communication routing based on consistency weighting and routing rules
US10867307B2 (en)2008-10-292020-12-15Liveperson, Inc.System and method for applying tracing tools for network locations
US10877720B2 (en)2015-06-072020-12-29Apple Inc.Browser with docked tabs
US10891299B2 (en)2008-08-042021-01-12Liveperson, Inc.System and methods for searching and communication
US10992795B2 (en)2017-05-162021-04-27Apple Inc.Methods and interfaces for home media control
US10996917B2 (en)2019-05-312021-05-04Apple Inc.User interfaces for audio media control
US11037150B2 (en)2016-06-122021-06-15Apple Inc.User interfaces for transactions
US11050687B2 (en)2010-12-142021-06-29Liveperson, Inc.Authentication of service requests initiated from a social networking site
US11126704B2 (en)2014-08-152021-09-21Apple Inc.Authenticated device used to unlock another device
US11269498B2 (en)2012-04-262022-03-08Liveperson, Inc.Dynamic user interface customization
US11283916B2 (en)2017-05-162022-03-22Apple Inc.Methods and interfaces for configuring a device in accordance with an audio tone signal
US11394670B2 (en)2005-09-142022-07-19Liveperson, Inc.System and method for performing follow up based on user interactions
US11392291B2 (en)2020-09-252022-07-19Apple Inc.Methods and interfaces for media control with dynamic feedback
US11431836B2 (en)2017-05-022022-08-30Apple Inc.Methods and interfaces for initiating media playback
US11526253B2 (en)2005-09-142022-12-13Liveperson, Inc.System and method for design and dynamic generation of a web page
US11539831B2 (en)2013-03-152022-12-27Apple Inc.Providing remote interactions with host device using a wireless device
US11620103B2 (en)2019-05-312023-04-04Apple Inc.User interfaces for audio media control
US11683408B2 (en)2017-05-162023-06-20Apple Inc.Methods and interfaces for home media control
US11687981B2 (en)2012-05-152023-06-27Liveperson, Inc.Methods and systems for presenting specialized content using campaign metrics
US11763200B2 (en)2008-07-252023-09-19Liveperson, Inc.Method and system for creating a predictive model for targeting web-page to a surfer
US11847378B2 (en)2021-06-062023-12-19Apple Inc.User interfaces for audio routing
US11907013B2 (en)2014-05-302024-02-20Apple Inc.Continuity of applications across devices
US12079829B2 (en)2014-03-312024-09-03Liveperson, Inc.Online behavioral predictor
US12423052B2 (en)2021-06-062025-09-23Apple Inc.User interfaces for audio routing

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US8224894B1 (en)*2011-05-092012-07-17Google Inc.Zero-click sharing of application context across devices
US8812601B2 (en)*2011-05-092014-08-19Google Inc.Transferring application state across devices with checkpoints
US10075533B2 (en)*2011-09-152018-09-11Paypal, Inc.Method and apparatus for transferring the state of content using short codes
US8706037B1 (en)*2012-01-132014-04-22Google Inc.Alternative transport mechanism selection
US9507630B2 (en)*2012-02-092016-11-29Cisco Technology, Inc.Application context transfer for distributed computing resources
TW201344455A (en)*2012-04-202013-11-01Hon Hai Prec Ind Co LtdRemote control method and system and mobile device using the method
US8995339B2 (en)*2012-06-082015-03-31At&T Intellectual Property I, L.P.Network control of applications using application states
US9184800B2 (en)2012-07-162015-11-10Google Inc.Automated sharing of application data over a near field communication link
US8990343B2 (en)2012-07-302015-03-24Google Inc.Transferring a state of an application from a first computing device to a second computing device
US9378456B2 (en)2012-11-192016-06-28Microsoft Technology Licensing, LlcTask completion
FR3001814A1 (en)*2013-02-072014-08-08Daniel Levalois ELECTRONIC DEVICE AND METHOD FOR OPERATING DEVICES INCLUDING A PROGRAM WHICH CAN BE PARTIALLY DISABLED
US10122827B2 (en)*2013-02-252018-11-06Microsoft Technology Licensing, LlcInteraction between devices displaying application status information
US9526120B2 (en)2013-03-152016-12-20Google Inc.Techniques for context-based application invocation for short-range wireless communication interactions
FR3004047A1 (en)*2013-03-292014-10-03France Telecom TECHNIQUE OF COOPERATION BETWEEN A PLURALITY OF CLIENT ENTITIES
WO2015047523A2 (en)*2013-09-272015-04-02Siemens Healthcare Diagnostics Inc.Systems and methods for session state transfer to a mobile device
US11240349B2 (en)*2014-12-312022-02-01Ebay Inc.Multimodal content recognition and contextual advertising and content delivery
US10397284B2 (en)*2015-07-292019-08-27Google LlcSystems and methods for automatic reconnect of calls
US10749964B2 (en)2015-12-172020-08-18Twilio Inc.System and method for contextual communication
US10803042B2 (en)*2017-10-062020-10-13Chicago Mercantile Exchange Inc.Database indexing in performance measurement systems

Citations (75)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US5301309A (en)*1989-04-281994-04-05Kabushiki Kaisha ToshibaDistributed processing system with checkpoint restart facilities wherein checkpoint data is updated only if all processors were able to collect new checkpoint data
US5819021A (en)*1995-12-111998-10-06Ab Initio Software CorporationOverpartitioning system and method for increasing checkpoints in component-based parallel applications
US20020033981A1 (en)2000-09-202002-03-21Keller Robert C.Optical wireless multiport hub
US6462767B1 (en)1995-11-152002-10-08Fujitsu LimitedVirtual proximity service control system
US6634025B1 (en)*1996-05-062003-10-14Koninklijke Philips Electronics N. V.System for exchanging software processes during execution using threads
US20030220937A1 (en)2002-05-272003-11-27Jun MaeokaPortable computer with a schedule management function
US20040055004A1 (en)2002-04-302004-03-18Xian-He SunMethod for efficient process state transfer between two computers using data transfer mechanisms embedded to the migration-enabled process
US20050058112A1 (en)2003-09-152005-03-17Sony CorporationMethod of and apparatus for adaptively managing connectivity for mobile devices through available interfaces
WO2005076542A1 (en)2004-02-052005-08-18Nokia CorporationAd-hoc connection between electronic devices
US20050235029A1 (en)2004-04-162005-10-20Holger HussmannElectric device, computer program, system and method of setting up user applications
WO2005109829A1 (en)2004-05-062005-11-17Koninklijke Philips Electronics N.V.Method device and program for seamlessly transferring the execution of a software application from a first to a second device
US20060094356A1 (en)*2004-10-292006-05-04Frank DawidowskyMethod for operating a near field communication system
US7089007B2 (en)1999-09-022006-08-08Fujitsu LimitedMethod and apparatus for performing handoff by varying threshold level
US20060179079A1 (en)2005-02-092006-08-10Mikko KolehmainenSystem, method and apparatus for data transfer between computing hosts
WO2006111782A1 (en)2005-04-192006-10-26Nokia Corporation,Method, device and system for controlling application launching in a mobile terminal device
US20060294435A1 (en)*2005-06-272006-12-28Sun Microsystems, Inc.Method for automatic checkpoint of system and application software
US20070014314A1 (en)2005-07-132007-01-18Bellsouth Intellectual Property CorporationPeer-to-peer synchronization of data between devices
EP1760584A1 (en)2005-08-232007-03-07Research In Motion LimitedMethod and system for transferring an application state from a first electronic device to a second electronic device
US20070115827A1 (en)2003-12-192007-05-24Sony Deutschland GmbhWireless communication network architecture
US20070136392A1 (en)2005-12-122007-06-14Electronics & Telecommunications Research InstituteApparatus and method for managing application context
US20070160047A1 (en)2006-01-112007-07-12Jahng-Sun ParkWireless broadband Internet system and its method of terminal hand-off
WO2007107982A1 (en)2006-03-172007-09-27Sandisk Il LtdSession handover between terminals
US20070263828A1 (en)*2006-04-122007-11-15Lee David CTransferring a communications exchange
US20070282990A1 (en)2006-05-312007-12-06Vijay Pochampalli KumarContext-aware migration of communication session
US20070297356A1 (en)2006-06-212007-12-27Ahmadreza RofougaranMethod and System For a Transceiver For Bluetooth and Near Field Communication (NFC)
US20080081558A1 (en)2006-09-292008-04-03Sony Ericsson Mobile Communications AbHandover for Audio and Video Playback Devices
US20080278567A1 (en)2007-05-112008-11-13Sony CorporationCommunication system, video signal transmission method, transmitter, transmitting method, receiver, and receiving method
US20080294937A1 (en)*2007-05-252008-11-27Fujitsu LimitedDistributed processing method
US20080310611A1 (en)2004-07-302008-12-18Tetsuro MoriwakiControl System of Communication Network
US20090003281A1 (en)*2007-06-302009-01-01Microsoft CorporationLocation context service handoff
US7516891B2 (en)2002-02-202009-04-14David ChaumBallot integrity systems
US20090111378A1 (en)2007-10-312009-04-30Motorola, Inc.Devices and methods for content sharing
US7529653B2 (en)*2001-11-092009-05-05Sun Microsystems, Inc.Message packet logging in a distributed simulation system
US20090116445A1 (en)2007-11-062009-05-07Airvana, Inc.Active handoffs in a network
US20090118018A1 (en)*2002-12-102009-05-07Onlive, Inc.System for reporting recorded video preceding system failures
US20090132362A1 (en)2007-11-212009-05-21Mobile Candy Dish, Inc.Method and system for delivering information to a mobile communication device based on consumer transactions
US20090157799A1 (en)2007-12-132009-06-18Vrijlal SukumaranMethod for sharing service identity among multiple client devices in a real-time communications network
US20090204966A1 (en)2008-02-122009-08-13Johnson Conrad JUtility for tasks to follow a user from device to device
US20090248875A1 (en)2008-03-282009-10-01Seiko Epson CorporationSocket Management Device and Socket Management Method
US20090244015A1 (en)*2008-03-312009-10-01Sengupta Uttam KDevice, system, and method of wireless transfer of files
US20100082445A1 (en)2008-09-302010-04-01Apple Inc.Smart menu options
US20100082567A1 (en)*2008-06-082010-04-01Apple Inc.System and method for placeshifting media playback
US20100082136A1 (en)*2008-06-082010-04-01Apple Inc.System and method for placeshifting media playback
US20100094948A1 (en)2008-10-102010-04-15International Business Machines CorporationWorkload migration using on demand remote paging
US20100167809A1 (en)*2002-12-102010-07-01Perlman Steve GSystem and Method for Accelerated Machine Switching
US20100178868A1 (en)*2007-09-272010-07-15Inside ContactlessMethod and Device for Managing Application Data in an NFC System
US7775432B2 (en)2003-10-162010-08-17Nokia CorporationTerminal, method and computer program product for interacting with a signaling tag
WO2010110788A1 (en)2009-03-252010-09-30Hewlett-Packard Development Company, L.P.Capturing an application state
US7821399B2 (en)2005-06-302010-10-26Nokia CorporationRFID optimized capability negotiations
US20100328225A1 (en)*2009-06-252010-12-30Black Jonathan SMulti-touch surface interaction
US20100332635A1 (en)2009-06-262010-12-30Vmware, Inc.,Migrating functionality in virtualized mobile devices
US20110065384A1 (en)2009-09-142011-03-17Nokia CorporationMethod and apparatus for switching devices using near field communication
US20110072501A1 (en)*2009-09-182011-03-24Kabushiki Kaisha ToshibaElectronic apparatus and communication control method
US20110078245A1 (en)*2008-05-302011-03-31Gemalto SaMethod and a system for transferring application data from a source electronic device to a destination electronic device
US20110074703A1 (en)*2009-09-302011-03-31Black Jonathan SMulti-touch surface interaction
US7957518B2 (en)2006-01-272011-06-07Mitel Networks CorporationCommunication handoff between telephone devices
US7957733B2 (en)*2004-07-162011-06-07Sellerbid, Inc.Method and apparatus for multimedia communications with different user terminals
US7962142B2 (en)2003-01-312011-06-14Qualcomm IncorporatedMethods and apparatus for the utilization of core based nodes for state transfer
US20110148752A1 (en)*2009-05-222011-06-23Rachid AlamehMobile Device with User Interaction Capability and Method of Operating Same
US20110183614A1 (en)2010-01-252011-07-28Kabushiki Kaisha ToshibaCommunication terminal
US7995533B1 (en)2000-07-142011-08-09Spyder Navigations L.L.C.System and method for efficient state transfer in mobile networks
US20110205944A1 (en)*2008-03-102011-08-25Sony CorporationCommunication device and communication method
US20110223937A1 (en)*2009-05-292011-09-15Nokia CorporationMethod and apparatus for local distribution of targeted commercial messaging over an ad-hoc mesh network
US8056113B2 (en)*2009-02-052011-11-08Sony CorporationMobile consumer electronic applications on internet video platform
WO2011139963A2 (en)2010-05-042011-11-10Robert Bosch GmbhApplication state and activity transfer between devices
US8060560B2 (en)*2009-08-272011-11-15Net Power And Light, Inc.System and method for pervasive computing
US8060389B2 (en)2000-06-072011-11-15Apple Inc.System and method for anonymous location based services
US20120079126A1 (en)*2010-09-242012-03-29Amazon Technologies, Inc.Cloud-based device interaction
US8171137B1 (en)*2011-05-092012-05-01Google Inc.Transferring application state across devices
US20120142433A1 (en)*2002-12-102012-06-07Onlive, Inc.System for streaming databases serving real-time applications used through streaming interactive
US20120143944A1 (en)*2010-10-012012-06-07Imerj, LlcIntegrated handset browser settings
US20120144233A1 (en)*2010-12-012012-06-07International Business Machines CorporationObviation of Recovery of Data Store Consistency for Application I/O Errors
US20120149476A1 (en)*2002-12-102012-06-14Onlive, Inc.Method for user session transitioning among streaming interactive video servers
US8224894B1 (en)2011-05-092012-07-17Google Inc.Zero-click sharing of application context across devices
US20120290663A1 (en)*2011-05-092012-11-15Cheng-Hsueh Andrew HsiehTransferring Application State Across Devices with Checkpoints

Patent Citations (82)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US5301309A (en)*1989-04-281994-04-05Kabushiki Kaisha ToshibaDistributed processing system with checkpoint restart facilities wherein checkpoint data is updated only if all processors were able to collect new checkpoint data
US6462767B1 (en)1995-11-152002-10-08Fujitsu LimitedVirtual proximity service control system
US5819021A (en)*1995-12-111998-10-06Ab Initio Software CorporationOverpartitioning system and method for increasing checkpoints in component-based parallel applications
US6634025B1 (en)*1996-05-062003-10-14Koninklijke Philips Electronics N. V.System for exchanging software processes during execution using threads
US7089007B2 (en)1999-09-022006-08-08Fujitsu LimitedMethod and apparatus for performing handoff by varying threshold level
US8060389B2 (en)2000-06-072011-11-15Apple Inc.System and method for anonymous location based services
US7995533B1 (en)2000-07-142011-08-09Spyder Navigations L.L.C.System and method for efficient state transfer in mobile networks
US20020033981A1 (en)2000-09-202002-03-21Keller Robert C.Optical wireless multiport hub
US7529653B2 (en)*2001-11-092009-05-05Sun Microsystems, Inc.Message packet logging in a distributed simulation system
US7516891B2 (en)2002-02-202009-04-14David ChaumBallot integrity systems
US20040055004A1 (en)2002-04-302004-03-18Xian-He SunMethod for efficient process state transfer between two computers using data transfer mechanisms embedded to the migration-enabled process
US20030220937A1 (en)2002-05-272003-11-27Jun MaeokaPortable computer with a schedule management function
US20120142433A1 (en)*2002-12-102012-06-07Onlive, Inc.System for streaming databases serving real-time applications used through streaming interactive
US20100167809A1 (en)*2002-12-102010-07-01Perlman Steve GSystem and Method for Accelerated Machine Switching
US20090118018A1 (en)*2002-12-102009-05-07Onlive, Inc.System for reporting recorded video preceding system failures
US20120149476A1 (en)*2002-12-102012-06-14Onlive, Inc.Method for user session transitioning among streaming interactive video servers
US7962142B2 (en)2003-01-312011-06-14Qualcomm IncorporatedMethods and apparatus for the utilization of core based nodes for state transfer
US20050058112A1 (en)2003-09-152005-03-17Sony CorporationMethod of and apparatus for adaptively managing connectivity for mobile devices through available interfaces
US7775432B2 (en)2003-10-162010-08-17Nokia CorporationTerminal, method and computer program product for interacting with a signaling tag
US8308065B2 (en)2003-10-162012-11-13Nokia CorporationTerminal, method and computer program product for interacting with a signaling tag
US8366000B2 (en)2003-10-162013-02-05Nokia CorporationTerminal, method and computer program product for interacting with a signaling tag
US20070115827A1 (en)2003-12-192007-05-24Sony Deutschland GmbhWireless communication network architecture
WO2005076542A1 (en)2004-02-052005-08-18Nokia CorporationAd-hoc connection between electronic devices
US20050235029A1 (en)2004-04-162005-10-20Holger HussmannElectric device, computer program, system and method of setting up user applications
WO2005109829A1 (en)2004-05-062005-11-17Koninklijke Philips Electronics N.V.Method device and program for seamlessly transferring the execution of a software application from a first to a second device
US7957733B2 (en)*2004-07-162011-06-07Sellerbid, Inc.Method and apparatus for multimedia communications with different user terminals
US20080310611A1 (en)2004-07-302008-12-18Tetsuro MoriwakiControl System of Communication Network
US20060094356A1 (en)*2004-10-292006-05-04Frank DawidowskyMethod for operating a near field communication system
US20060179079A1 (en)2005-02-092006-08-10Mikko KolehmainenSystem, method and apparatus for data transfer between computing hosts
WO2006111782A1 (en)2005-04-192006-10-26Nokia Corporation,Method, device and system for controlling application launching in a mobile terminal device
US20060294435A1 (en)*2005-06-272006-12-28Sun Microsystems, Inc.Method for automatic checkpoint of system and application software
US7821399B2 (en)2005-06-302010-10-26Nokia CorporationRFID optimized capability negotiations
US20070014314A1 (en)2005-07-132007-01-18Bellsouth Intellectual Property CorporationPeer-to-peer synchronization of data between devices
EP1760584A1 (en)2005-08-232007-03-07Research In Motion LimitedMethod and system for transferring an application state from a first electronic device to a second electronic device
US20070136392A1 (en)2005-12-122007-06-14Electronics & Telecommunications Research InstituteApparatus and method for managing application context
US20070160047A1 (en)2006-01-112007-07-12Jahng-Sun ParkWireless broadband Internet system and its method of terminal hand-off
US7957518B2 (en)2006-01-272011-06-07Mitel Networks CorporationCommunication handoff between telephone devices
WO2007107982A1 (en)2006-03-172007-09-27Sandisk Il LtdSession handover between terminals
US20070263828A1 (en)*2006-04-122007-11-15Lee David CTransferring a communications exchange
US20070282990A1 (en)2006-05-312007-12-06Vijay Pochampalli KumarContext-aware migration of communication session
US20070297356A1 (en)2006-06-212007-12-27Ahmadreza RofougaranMethod and System For a Transceiver For Bluetooth and Near Field Communication (NFC)
US20080081558A1 (en)2006-09-292008-04-03Sony Ericsson Mobile Communications AbHandover for Audio and Video Playback Devices
US20080278567A1 (en)2007-05-112008-11-13Sony CorporationCommunication system, video signal transmission method, transmitter, transmitting method, receiver, and receiving method
US20080294937A1 (en)*2007-05-252008-11-27Fujitsu LimitedDistributed processing method
US8214686B2 (en)*2007-05-252012-07-03Fujitsu LimitedDistributed processing method
US20090003281A1 (en)*2007-06-302009-01-01Microsoft CorporationLocation context service handoff
US20100178868A1 (en)*2007-09-272010-07-15Inside ContactlessMethod and Device for Managing Application Data in an NFC System
US7970350B2 (en)2007-10-312011-06-28Motorola Mobility, Inc.Devices and methods for content sharing
US20090111378A1 (en)2007-10-312009-04-30Motorola, Inc.Devices and methods for content sharing
US20090116445A1 (en)2007-11-062009-05-07Airvana, Inc.Active handoffs in a network
US20090132362A1 (en)2007-11-212009-05-21Mobile Candy Dish, Inc.Method and system for delivering information to a mobile communication device based on consumer transactions
US20090157799A1 (en)2007-12-132009-06-18Vrijlal SukumaranMethod for sharing service identity among multiple client devices in a real-time communications network
US20090204966A1 (en)2008-02-122009-08-13Johnson Conrad JUtility for tasks to follow a user from device to device
US20110205944A1 (en)*2008-03-102011-08-25Sony CorporationCommunication device and communication method
US20090248875A1 (en)2008-03-282009-10-01Seiko Epson CorporationSocket Management Device and Socket Management Method
US20090244015A1 (en)*2008-03-312009-10-01Sengupta Uttam KDevice, system, and method of wireless transfer of files
US20110078245A1 (en)*2008-05-302011-03-31Gemalto SaMethod and a system for transferring application data from a source electronic device to a destination electronic device
US20100082136A1 (en)*2008-06-082010-04-01Apple Inc.System and method for placeshifting media playback
US20100082567A1 (en)*2008-06-082010-04-01Apple Inc.System and method for placeshifting media playback
US20100082445A1 (en)2008-09-302010-04-01Apple Inc.Smart menu options
US20100094948A1 (en)2008-10-102010-04-15International Business Machines CorporationWorkload migration using on demand remote paging
US8056113B2 (en)*2009-02-052011-11-08Sony CorporationMobile consumer electronic applications on internet video platform
WO2010110788A1 (en)2009-03-252010-09-30Hewlett-Packard Development Company, L.P.Capturing an application state
US20110148752A1 (en)*2009-05-222011-06-23Rachid AlamehMobile Device with User Interaction Capability and Method of Operating Same
US20110223937A1 (en)*2009-05-292011-09-15Nokia CorporationMethod and apparatus for local distribution of targeted commercial messaging over an ad-hoc mesh network
US20100328225A1 (en)*2009-06-252010-12-30Black Jonathan SMulti-touch surface interaction
US20100332635A1 (en)2009-06-262010-12-30Vmware, Inc.,Migrating functionality in virtualized mobile devices
US8060560B2 (en)*2009-08-272011-11-15Net Power And Light, Inc.System and method for pervasive computing
US20110065384A1 (en)2009-09-142011-03-17Nokia CorporationMethod and apparatus for switching devices using near field communication
US20110072501A1 (en)*2009-09-182011-03-24Kabushiki Kaisha ToshibaElectronic apparatus and communication control method
US20110074703A1 (en)*2009-09-302011-03-31Black Jonathan SMulti-touch surface interaction
US20110183614A1 (en)2010-01-252011-07-28Kabushiki Kaisha ToshibaCommunication terminal
WO2011139963A2 (en)2010-05-042011-11-10Robert Bosch GmbhApplication state and activity transfer between devices
US20120079126A1 (en)*2010-09-242012-03-29Amazon Technologies, Inc.Cloud-based device interaction
US20120143944A1 (en)*2010-10-012012-06-07Imerj, LlcIntegrated handset browser settings
US20120144233A1 (en)*2010-12-012012-06-07International Business Machines CorporationObviation of Recovery of Data Store Consistency for Application I/O Errors
US8224894B1 (en)2011-05-092012-07-17Google Inc.Zero-click sharing of application context across devices
US20120290663A1 (en)*2011-05-092012-11-15Cheng-Hsueh Andrew HsiehTransferring Application State Across Devices with Checkpoints
US20120290657A1 (en)*2011-05-092012-11-15Jason ParksTransferring Application State Across Devices
US20120290669A1 (en)*2011-05-092012-11-15Jason ParksZero-Click Sharing of Application Context Across Devices
US8171137B1 (en)*2011-05-092012-05-01Google Inc.Transferring application state across devices
US8478816B2 (en)*2011-05-092013-07-02Google Inc.Transferring application state across devices

Non-Patent Citations (15)

* Cited by examiner, † Cited by third party
Title
EP Extended Search Report dated Aug. 22, 2012 for EP Application No. 12167370.1 (8 pages).
Extended EP Search Report dated Jul. 27, 2012 for European Application No. 12167367.7 (8 pages).
Extended EP Search Report dated Jul. 27, 2012 for European Application No. 12167369.3 (9 pages).
Nickelsen, A. et al., "Service migration protocol for NFC links," Proceedings of the 16th EUNICE/IFIP WG 6.6 Conference on Networked Services, Jun. 28-30, 2010, pp. 41-50.
NL Search Report dated Dec. 19, 2012 for Application No. 2008777 (11 pages).
NL Search Report dated Dec. 21, 2012 for Application No. 2008779 (10 pages).
NL Search Report dated Nov. 28, 2012 for Application No. 2008778 (8 pages).
NonFinal Office Action dated Sep. 17, 2012 for U.S. Appl. No. 13/461,647 (7 pages).
PCT International Search Report and Written Opinion dated Aug. 22, 2012 for PCT International Application No. PCT/US2012/036961 (12 pages).
PCT International Search Report and Written Opinion dated Jul. 30, 2012 for PCT International Application No. PCT/US2012/036952 (12 pages).
PCT International Search Report and Written Opinion dated Jul. 30, 2012 for PCT International Application No. PCT/US2012/036957 (12 pages).
PCT International Search Report and Written Opinion dated Oct. 10, 2013 for PCT International Application No. PCT/US2013/050483 (10 pages).
UK Search Report dated Aug. 13, 2012 for GB Application No. 1208205.3 (6 pages).
UK Search Report dated Aug. 13, 2012 for GB Application No. 1208206.1 (5 pages).
UK Search Report dated Aug. 13, 2012 for GB Application No. 1208207.9 (3 pages).

Cited By (119)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US11526253B2 (en)2005-09-142022-12-13Liveperson, Inc.System and method for design and dynamic generation of a web page
US11394670B2 (en)2005-09-142022-07-19Liveperson, Inc.System and method for performing follow up based on user interactions
US11743214B2 (en)2005-09-142023-08-29Liveperson, Inc.System and method for performing follow up based on user interactions
US11763200B2 (en)2008-07-252023-09-19Liveperson, Inc.Method and system for creating a predictive model for targeting web-page to a surfer
US11386106B2 (en)2008-08-042022-07-12Liveperson, Inc.System and methods for searching and communication
US10891299B2 (en)2008-08-042021-01-12Liveperson, Inc.System and methods for searching and communication
US11562380B2 (en)2008-10-292023-01-24Liveperson, Inc.System and method for applying tracing tools for network locations
US10867307B2 (en)2008-10-292020-12-15Liveperson, Inc.System and method for applying tracing tools for network locations
US11050687B2 (en)2010-12-142021-06-29Liveperson, Inc.Authentication of service requests initiated from a social networking site
US11777877B2 (en)2010-12-142023-10-03Liveperson, Inc.Authentication of service requests initiated from a social networking site
US20190149972A1 (en)*2011-05-092019-05-16Google LlcTransferring Application State Across Devices
US10911921B2 (en)*2011-05-092021-02-02Google LlcTransferring application state across devices
US10419933B2 (en)2011-09-292019-09-17Apple Inc.Authentication with secondary approver
US10516997B2 (en)2011-09-292019-12-24Apple Inc.Authentication with secondary approver
US10484384B2 (en)2011-09-292019-11-19Apple Inc.Indirect authentication
US11200309B2 (en)2011-09-292021-12-14Apple Inc.Authentication with secondary approver
US10142835B2 (en)2011-09-292018-11-27Apple Inc.Authentication with secondary approver
US11755712B2 (en)2011-09-292023-09-12Apple Inc.Authentication with secondary approver
US20130332560A1 (en)*2012-02-052013-12-12Apple Inc.Cloud tabs
US9680927B2 (en)*2012-02-052017-06-13Apple Inc.Cloud tabs
US10326719B2 (en)*2012-03-062019-06-18Liveperson, Inc.Occasionally-connected computing interface
US11134038B2 (en)*2012-03-062021-09-28Liveperson, Inc.Occasionally-connected computing interface
US11711329B2 (en)2012-03-062023-07-25Liveperson, Inc.Occasionally-connected computing interface
US11689519B2 (en)2012-04-182023-06-27Liveperson, Inc.Authentication of service requests using a communications initiation feature
US10666633B2 (en)2012-04-182020-05-26Liveperson, Inc.Authentication of service requests using a communications initiation feature
US11323428B2 (en)2012-04-182022-05-03Liveperson, Inc.Authentication of service requests using a communications initiation feature
US11269498B2 (en)2012-04-262022-03-08Liveperson, Inc.Dynamic user interface customization
US11868591B2 (en)2012-04-262024-01-09Liveperson, Inc.Dynamic user interface customization
US11687981B2 (en)2012-05-152023-06-27Liveperson, Inc.Methods and systems for presenting specialized content using campaign metrics
US10684744B2 (en)2012-10-022020-06-16Razer (Asia-Pacific) Pte. Ltd.Launching applications on an electronic device
US10540368B2 (en)2012-10-022020-01-21Razer (Asia-Pacific) Pte. Ltd.System and method for resolving synchronization conflicts
US10814229B2 (en)2012-10-022020-10-27Razer (Asia-Pacific) Pte. Ltd.Fragment-based mobile device application streaming utilizing crowd-sourcing
US10791458B2 (en)*2012-10-022020-09-29Razer (Asia-Pacific) Pte. Ltd.Transferring information to a mobile device
US10946276B2 (en)*2012-10-022021-03-16Razer (Asia-Pacific) Pte. Ltd.Application state backup and restoration across multiple devices
US9998911B2 (en)*2012-10-022018-06-12Razer (Asia-Pacific) Pte. Ltd.Transferring information to a mobile device
US9654556B2 (en)2012-10-022017-05-16Razer (Asia-Pacific) Pte. Ltd.Managing applications on an electronic device
US9776078B2 (en)2012-10-022017-10-03Razer (Asia-Pacific) Pte. Ltd.Application state backup and restoration across multiple devices
US9747000B2 (en)2012-10-022017-08-29Razer (Asia-Pacific) Pte. Ltd.Launching applications on an electronic device
US8951127B2 (en)2012-10-022015-02-10Nextbit Systems Inc.Game state synchronization and restoration across multiple devices
US8977723B2 (en)2012-10-022015-03-10Nextbit Systems Inc.Cloud based application fragmentation
US9380093B2 (en)2012-10-022016-06-28Nextbit Systems, Inc.Mobile device application streaming
US10252159B2 (en)2012-10-022019-04-09Razer (Asia-Pacific) Pte. Ltd.Application state backup and restoration across multiple devices
US9374407B2 (en)2012-10-022016-06-21Nextbit Systems, Inc.Mobile device application streaming
US9106721B2 (en)2012-10-022015-08-11Nextbit SystemsApplication state synchronization across multiple devices
US9600552B2 (en)2012-10-022017-03-21Nextbit Systems Inc.Proximity based application state synchronization
US10313871B2 (en)2012-10-022019-06-04Razer (Asia-Pacific) Pte. Ltd.Transferring information to a mobile device
US9268655B2 (en)2012-10-022016-02-23Nextbit Systems Inc.Interface for resolving synchronization conflicts of application states
US9112885B2 (en)2012-10-022015-08-18Nextbit Systems Inc.Interactive multi-tasker
US20190253872A1 (en)*2012-10-022019-08-15Razer (Asia-Pacific) Pte. Ltd.Transferring information to a mobile device
US9210203B2 (en)2012-10-022015-12-08Nextbit Systems Inc.Resource based mobile device application streaming
US20150365817A1 (en)*2012-10-022015-12-17Nextbit Systems, Inc.Transferring information to a mobile device
US10425471B2 (en)2012-10-022019-09-24Razer (Asia-Pacific) Pte. Ltd.Multi-tasker
US9717985B2 (en)2012-10-022017-08-01Razer (Asia-Pacific) Pte. Ltd.Fragment-based mobile device application streaming utilizing crowd-sourcing
US20140244739A1 (en)*2013-02-222014-08-28Research In Motion LimitedDevice, System and Method for Generating Application Data
US9516072B2 (en)*2013-02-222016-12-06Blackberry LimitedDevice, system and method for generating application data
US11539831B2 (en)2013-03-152022-12-27Apple Inc.Providing remote interactions with host device using a wireless device
US9095779B2 (en)2013-03-212015-08-04Nextbit SystemsGaming application state transfer amongst user profiles
US10123189B2 (en)2013-03-212018-11-06Razer (Asia-Pacific) Pte. Ltd.Electronic device system restoration by tapping mechanism
US8954611B2 (en)*2013-03-212015-02-10Nextbit Systems Inc.Mechanism for sharing states of applications and devices across different user profiles
US11044592B2 (en)2013-03-212021-06-22Razer (Asia-Pacific) Pte. Ltd.Electronic device system restoration by tapping mechanism
US20140289333A1 (en)*2013-03-212014-09-25Nextbit Systems Inc.Mechanism for sharing states of applications and devices across different user profiles
US9742750B2 (en)*2013-06-122017-08-22Microsoft Technology Licensing, LlcRoaming internet-accessible application state across trusted and untrusted platforms
US20140373096A1 (en)*2013-06-122014-12-18Microsoft CorporationRoaming Internet-Accessible Application State Across Trusted and Untrusted Platforms
US20150088957A1 (en)*2013-09-252015-03-26Sony CorporationSystem and methods for managing applications in multiple devices
USD768162S1 (en)2013-09-302016-10-04Nextbit Systems Inc.Display screen or portion thereof with graphical user interface
US20150280933A1 (en)*2014-03-272015-10-01Samsung Electronics Co., Ltd.Electronic device and connection method thereof
US12079829B2 (en)2014-03-312024-09-03Liveperson, Inc.Online behavioral predictor
US11907013B2 (en)2014-05-302024-02-20Apple Inc.Continuity of applications across devices
US10178234B2 (en)2014-05-302019-01-08Apple, Inc.User interface for phone call routing among devices
US10616416B2 (en)2014-05-302020-04-07Apple Inc.User interface for phone call routing among devices
US11126704B2 (en)2014-08-152021-09-21Apple Inc.Authenticated device used to unlock another device
US10834556B2 (en)*2014-09-302020-11-10Google LlcMobile application state identifier framework
US9621650B2 (en)*2014-09-302017-04-11Google IncMobile application state identifier framework
US10397373B2 (en)2015-05-202019-08-27Qualcomm IncorporatedRenewing registrations for client applications installed on different proximate client devices
US11638195B2 (en)2015-06-022023-04-25Liveperson, Inc.Dynamic communication routing based on consistency weighting and routing rules
US10869253B2 (en)2015-06-022020-12-15Liveperson, Inc.Dynamic communication routing based on consistency weighting and routing rules
US11385860B2 (en)2015-06-072022-07-12Apple Inc.Browser with docked tabs
US10877720B2 (en)2015-06-072020-12-29Apple Inc.Browser with docked tabs
US10198252B2 (en)2015-07-022019-02-05Microsoft Technology Licensing, LlcTransformation chain application splitting
US9658836B2 (en)2015-07-022017-05-23Microsoft Technology Licensing, LlcAutomated generation of transformation chain compatible class
US9733915B2 (en)2015-07-022017-08-15Microsoft Technology Licensing, LlcBuilding of compound application chain applications
US10261985B2 (en)2015-07-022019-04-16Microsoft Technology Licensing, LlcOutput rendering in dynamic redefining application
US9712472B2 (en)2015-07-022017-07-18Microsoft Technology Licensing, LlcApplication spawning responsive to communication
US9860145B2 (en)2015-07-022018-01-02Microsoft Technology Licensing, LlcRecording of inter-application data flow
US9733993B2 (en)2015-07-022017-08-15Microsoft Technology Licensing, LlcApplication sharing using endpoint interface entities
US9785484B2 (en)2015-07-022017-10-10Microsoft Technology Licensing, LlcDistributed application interfacing across different hardware
US10198405B2 (en)2015-07-082019-02-05Microsoft Technology Licensing, LlcRule-based layout of changing information
US10031724B2 (en)2015-07-082018-07-24Microsoft Technology Licensing, LlcApplication operation responsive to object spatial status
US10277582B2 (en)2015-08-272019-04-30Microsoft Technology Licensing, LlcApplication service architecture
US11206309B2 (en)2016-05-192021-12-21Apple Inc.User interface for remote authorization
US10334054B2 (en)2016-05-192019-06-25Apple Inc.User interface for a device requesting remote authorization
US10749967B2 (en)2016-05-192020-08-18Apple Inc.User interface for remote authorization
US11900372B2 (en)2016-06-122024-02-13Apple Inc.User interfaces for transactions
US11037150B2 (en)2016-06-122021-06-15Apple Inc.User interfaces for transactions
US9948729B1 (en)2016-10-152018-04-17International Business Machines CorporationBrowsing session transfer using QR codes
US11449358B2 (en)*2017-03-032022-09-20Microsoft Technology Licensing, LlcCross-device task registration and resumption
US10754685B2 (en)*2017-03-032020-08-25Microsoft Technology Licensing LlcCross-device task registration and resumption
US11431836B2 (en)2017-05-022022-08-30Apple Inc.Methods and interfaces for initiating media playback
US10574644B2 (en)2017-05-032020-02-25International Business Machines CorporationStateful session manager
US11283916B2 (en)2017-05-162022-03-22Apple Inc.Methods and interfaces for configuring a device in accordance with an audio tone signal
US10992795B2 (en)2017-05-162021-04-27Apple Inc.Methods and interfaces for home media control
US12244755B2 (en)2017-05-162025-03-04Apple Inc.Methods and interfaces for configuring a device in accordance with an audio tone signal
US11750734B2 (en)2017-05-162023-09-05Apple Inc.Methods for initiating output of at least a component of a signal representative of media currently being played back by another device
US11412081B2 (en)2017-05-162022-08-09Apple Inc.Methods and interfaces for configuring an electronic device to initiate playback of media
US12107985B2 (en)2017-05-162024-10-01Apple Inc.Methods and interfaces for home media control
US11201961B2 (en)2017-05-162021-12-14Apple Inc.Methods and interfaces for adjusting the volume of media
US11095766B2 (en)2017-05-162021-08-17Apple Inc.Methods and interfaces for adjusting an audible signal based on a spatial position of a voice command source
US11683408B2 (en)2017-05-162023-06-20Apple Inc.Methods and interfaces for home media control
US11755273B2 (en)2019-05-312023-09-12Apple Inc.User interfaces for audio media control
US11853646B2 (en)2019-05-312023-12-26Apple Inc.User interfaces for audio media control
US11010121B2 (en)2019-05-312021-05-18Apple Inc.User interfaces for audio media control
US10996917B2 (en)2019-05-312021-05-04Apple Inc.User interfaces for audio media control
US12223228B2 (en)2019-05-312025-02-11Apple Inc.User interfaces for audio media control
US11620103B2 (en)2019-05-312023-04-04Apple Inc.User interfaces for audio media control
US11782598B2 (en)2020-09-252023-10-10Apple Inc.Methods and interfaces for media control with dynamic feedback
US11392291B2 (en)2020-09-252022-07-19Apple Inc.Methods and interfaces for media control with dynamic feedback
US12112037B2 (en)2020-09-252024-10-08Apple Inc.Methods and interfaces for media control with dynamic feedback
US11847378B2 (en)2021-06-062023-12-19Apple Inc.User interfaces for audio routing
US12423052B2 (en)2021-06-062025-09-23Apple Inc.User interfaces for audio routing

Also Published As

Publication numberPublication date
GB201208207D0 (en)2012-06-20
US20120290663A1 (en)2012-11-15
DE102012207698A1 (en)2012-11-22
FR2975801A1 (en)2012-11-30
FR2975801B1 (en)2018-03-09
GB2492867A (en)2013-01-16
DE202012004620U1 (en)2012-10-17
NL2008779C2 (en)2013-03-18
WO2012154746A1 (en)2012-11-15
EP2523110B1 (en)2019-08-21
AU2012100569A4 (en)2012-06-07
EP2523110A1 (en)2012-11-14
NL2008779A (en)2012-11-13

Similar Documents

PublicationPublication DateTitle
US10911921B2 (en)Transferring application state across devices
US8812601B2 (en)Transferring application state across devices with checkpoints
US8386563B2 (en)Zero-click sharing of application context across devices

Legal Events

DateCodeTitleDescription
ASAssignment

Owner name:GOOGLE INC., CALIFORNIA

Free format text:ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HSIEH, CHENG-HSUEH ANDREW;CHEN, CHINYUE;LO, YUNG-CHIEH;AND OTHERS;SIGNING DATES FROM 20110816 TO 20110927;REEL/FRAME:027217/0807

STCFInformation on status: patent grant

Free format text:PATENTED CASE

ASAssignment

Owner name:GOOGLE LLC, CALIFORNIA

Free format text:CHANGE OF NAME;ASSIGNOR:GOOGLE INC.;REEL/FRAME:044277/0001

Effective date:20170929

MAFPMaintenance fee payment

Free format text:PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551)

Year of fee payment:4

MAFPMaintenance fee payment

Free format text:PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment:8


[8]ページ先頭

©2009-2025 Movatter.jp