# US 10,946,276 B2 · Application state backup and restoration across multiple devices

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,946,276 B2
- Document ID: US10946276B2
- Status: Granted
- Kind: B2
- Application number: 16/279,038
- Filed: 2019-02-19
- Published: 2019-06-13
- Granted: 2021-03-16
- Earliest claimed: 2012-10-02
- Assignees: Razer (Asia-Pacific) Pte. Ltd.
- Applicants: Razer (Asia-Pacific) Pte. Ltd.
- Inventors: Justin Quan; Michael A. Chan; Tom Moss; Michael K. Fleming
- Web page: https://patentgrep.com/patent/US10946276B2

## CPC

- A63F 13/40: Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
- A63F 13/23: for interfacing with the game device, e.g. specific interfaces between game controller and console
- A63F 13/45: Controlling the progress of the video game
- A63F 13/50: Controlling the output signals based on the game progress
- G06F 9/461: {Saving or restoring of program or task context}
- G06F 9/4856: {resumption being on a different machine, e.g. task migration, virtual machine migration (G06F9/5088 takes precedence)}
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- H04L 67/1095: Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
- H04W 4/60: Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
- A63F: CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

Some examples of application state synchronization may include receiving, at a server, application state data from an electronic device. For instance, the application state data may represent an application state of a computer application running at the electronic device when a backup event occurs. An analysis may be performed based on at least one of a user profile or a usage pattern. A set of electronic devices may be identified based on the analysis. Further, the application state data may be transmitted to the set of electronic devices.

## Claims

### Claim 1

A method of application state synchronization, the method comprising:
receiving, at a server, application state data from an electronic device, wherein the application state data represents an application state of a computer application running at the electronic device when a backup event occurs;
performing an analysis based on at least one of a user profile or a usage pattern of a user;
identifying a set of electronic devices based on the analysis;
transmitting the application state data to the set of electronic devices; and
sending an instruction to each electronic device of the set of electronic devices, the instruction instructing each electronic device to run an instance of the computer application on each electronic device, respectively, by resuming the application state based on the application state at the backup event, the instruction causing a respective electronic device of the set to start to run the instance of the computer application based on the user starting to use the respective electronic device.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
identifying a plurality of electronic devices capable of synchronizing application state with the server, wherein the electronic device is one of the plurality of electronic devices.

### Claim 3 (depends on 2)

The method of claim 2, wherein the analysis is performed further based on types of applications installed on the plurality of electronic devices, wherein each of the set of identified electronic devices has the computer application installed or has applications similar to the computer application installed.

### Claim 4 (depends on 1)

The method of claim 1, wherein the application state data is received from the electronic device in such a manner that the electronic device processes the application state data at a background of an operating system of the electronic device without user intervention.

### Claim 5 (depends on 1)

The method of claim 1, wherein the application state data represents a difference between the application state of the computer application when the backup event occurs and an application state of the computer application previously stored in the server.

### Claim 6 (depends on 5)

The method of claim 5, further comprising:
incorporating the difference into the application state of the computer application previously stored in the server.

### Claim 7 (depends on 1)

The method of claim 1, wherein the analysis is performed based on the user profile, wherein the set of identified electronic devices are used by a same user according to the user profile.

### Claim 8 (depends on 1)

The method of claim 1, wherein the analysis is performed based on the usage pattern, wherein the set of identified electronic devices are frequently used by the user during a specific time period.

### Claim 9 (depends on 1)

The method of claim 1, wherein the analysis is performed further based on location proximity, wherein the set of identified electronic devices are physically close to the electronic device.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
determining a priority list including a reference to the application state data, wherein the priority list regulates an order of transmitting the application state data for the computer application and data for other applications based on an analysis of the user profile and a hardware profile of at least the electronic device.

### Claim 11

An apparatus for application state synchronization, the apparatus comprising:
a memory; and
at least one processor coupled to the memory and configured to:
receive application state data from an electronic device, wherein the application state data represents an application state of a computer application running at the electronic device when a backup event occurs;
perform an analysis based on at least one of a user profile or a usage pattern of a user;
identify a set of electronic devices based on the analysis;
transmit the application state data to the set of electronic devices; and
send an instruction to each electronic device of the set of electronic devices, the instruction instructing each electronic device to run an instance of the computer application on each electronic device, respectively, by resuming the application state based on the application state at the backup event, the instruction causing a respective electronic device of the set to start to run the instance of the computer application based on the user starting to use the respective electronic device.

### Claim 12 (depends on 11)

The apparatus of claim 11, wherein the at least one processor is further configured to:
identify a plurality of electronic devices capable of synchronizing application state with the apparatus, wherein the electronic device is one of the plurality of electronic devices.

### Claim 13 (depends on 12)

The apparatus of claim 12, wherein the analysis is performed further based on types of applications installed on the plurality of electronic devices, wherein each of the set of identified electronic devices has the computer application installed or has applications similar to the computer application installed.

### Claim 14 (depends on 11)

The apparatus of claim 11, wherein the application state data represents a difference between the application state of the computer application when the backup event occurs and an application state of the computer application previously stored in the apparatus, wherein the at least one processor is further configured to incorporate the difference into the application state of the computer application previously stored in the apparatus.

### Claim 15 (depends on 11)

The apparatus of claim 11, wherein the analysis is performed based on the user profile, wherein the set of identified electronic devices are used by a same user according to the user profile.

### Claim 16 (depends on 11)

The apparatus of claim 11, wherein the analysis is performed based on the usage pattern, wherein the set of identified electronic devices are frequently used by the user during a specific time period.

### Claim 17 (depends on 11)

The apparatus of claim 11, wherein the analysis is performed further based on location proximity, wherein the set of identified electronic devices are physically close to the electronic device.

### Claim 18 (depends on 11)

The apparatus of claim 11, wherein the at least one processor is further configured to:
determine a priority list including a reference to the application state data, wherein the priority list regulates an order of transmitting the application state data for the computer application and data for other applications based on an analysis of the user profile and a hardware profile of at least the electronic device.

### Claim 19

A non-transitory computer-readable medium storing instructions executable by one or more processors to configure the one or more processors to perform operations comprising:
receiving, by the one or more processors, application state data from an electronic device, wherein the application state data represents an application state of a computer application running at the electronic device when a backup event occurs;
performing an analysis based on at least one of a user profile or a usage pattern of a user;
identifying a set of electronic devices based on the analysis;
transmitting the application state data to the set of electronic devices; and
sending an instruction to each electronic device of the set of electronic devices, the instruction instructing each electronic device to run an instance of the computer application on each electronic device, respectively, by resuming the application state based on the application state at the backup event, the instruction causing a respective electronic device of the set to start to run the instance of the computer application based on the user starting to use the respective electronic device.
