Sharing of status based on directional profiles

By generating orientation profiles from accelerometer motion, the solution addresses cumbersome manual interactions and time-consuming position determination in device sharing, enabling quick and low-latency state transitions.

JP7893962B2Active Publication Date: 2026-07-22GOOGLE LLC
View PDF 5 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
GOOGLE LLC
Filing Date
2023-07-13
Publication Date
2026-07-22

AI Technical Summary

Technical Problem

Existing methods for sharing information between electronic devices often require cumbersome manual interactions and are hindered by time-consuming position determination processes.

Method used

The solution involves generating orientation profiles based on accelerometer motion to quickly determine corresponding directional profiles between devices, allowing for seamless state sharing through inertial movement correlation.

Benefits of technology

This approach enables quick and low-latency state sharing between devices by correlating their orientation profiles, facilitating seamless transitions without losing user experience continuity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007893962000001
    Figure 0007893962000001
  • Figure 0007893962000002
    Figure 0007893962000002
  • Figure 0007893962000003
    Figure 0007893962000003
Patent Text Reader

Abstract

The method may include determining, by a correlation device, that a correlation event has occurred based on at least a first device and a second device having corresponding directional profiles, and in response to the occurrence of the correlation event, causing the first device to transfer a state of the first device by sending a state information message to the second device.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Cross - reference to Related Applications This application is a continuation of U.S. Application No. 17 / 813,824, filed on July 20, 2022, the disclosure of which is hereby incorporated by reference in its entirety.

Background Art

[0002] A user can access information via multiple electronic devices. In some cases, the user may want to switch electronic devices while continuing to access the same information.

Summary of the Invention

[0003] The embodiment relates to sharing information between devices based on the correlation of the inertial movements of devices. For example, a user may want to share content and / or application state between different electronic devices. Such sharing can be done manually, but this usually requires the use of multiple interfaces and can be cumbersome. The embodiment provides a technique that uses the corresponding inertial movements of multiple devices over time (e.g., within a time window) to trigger the transfer of application state / content. For example, a user may be carrying electronic devices while walking or riding in a vehicle. The embodiment generates an orientation profile of the electronic devices and triggers state sharing between devices when this profile is correlated. A technical problem with sharing state between electronic devices based on positional proximity is that the process of determining position with high specificity accuracy can be time-consuming. A technical solution to the technical problem of slow position determination is to share state between electronic devices based on the orientation profile of the electronic devices. The orientation profile can be based on accelerometer motion, which can be measured and quickly shared between electronic devices. The technical advantages of sharing state based on the directional profile of electronic devices are that the correspondence of directional profiles can be determined quickly, and state can be shared between electronic devices with low latency.

[0004] Details of one or more embodiments are described in the accompanying drawings and the following description. Other features will become apparent from the description and drawings, as well as from the claims. [Brief explanation of the drawing]

[0005] [Figure 1A] This shows a first user walking while holding a first electronic device, a second electronic device, and a third electronic device. [Figure 1B] This graph shows the inertial movement of the first electronic device carried by the first user in the embodiment shown in Figure 1A, as a function of time. [Figure 1C] This graph shows the inertial movement of the second electronic device carried by the first user in the embodiment shown in Figure 1A, as a function of time. [Figure 1D] This graph shows the inertial movement of the third electronic device carried by the first user in the embodiment shown in Figure 1A, as a function of time. [Figure 2A] This shows a first user walking with the first and third electronic devices, leaving the second electronic device in the vehicle. [Figure 2B] This graph shows the inertial movement of the first electronic device carried by the first user as a function of time in the embodiment shown in Figure 2A. [Figure 2C] This graph shows the inertial movement of the third electronic device carried by the first user as a function of time in the embodiment shown in Figure 2A. [Figure 2D] This graph shows the inertial movement of the second electronic device left in the vehicle by the first user as a function of time in the embodiment shown in Figure 2A. [Figure 3A] This shows a first user walking with a first electronic device and a third electronic device, and a second user walking with a fourth electronic device and a fifth electronic device. [Figure 3B] This graph shows the inertial movement of the third electronic device carried by the first user in the embodiment shown in Figure 3A, as a function of time. [Figure 3C] This graph shows the inertial movement of the fifth electronic device carried by the second user in the embodiment shown in Figure 3A, as a function of time. [Figure 4A] This illustrates an exemplary processing flow for sharing the state of electronic devices based on corresponding directional profiles. [Figure 4B] This shows electronic devices grouped into clusters based on their directional profiles. [Figure 5A] This is a timing diagram showing the process performed by an electronic device according to one embodiment, and the messages exchanged. [Figure 5B]This is a timing diagram showing the processes performed by electronic devices according to other embodiments, and the messages exchanged. [Figure 5C] This is a timing diagram showing the processes performed by electronic devices according to other embodiments, and the messages exchanged. [Figure 6] Block diagram of an electronic device according to one embodiment. [Figure 7] This flowchart shows a method according to one embodiment. [Figure 8] The flowchart shows a method using another embodiment. [Figure 9] The flowchart shows a method using another embodiment. [Figure 10] An example of a computer device and a mobile computer device that can be used to carry out the techniques described herein is shown. [Modes for carrying out the invention]

[0006] Similar reference symbols in various drawings refer to the same elements. Electronic devices can generate orientation profiles, and if these orientation profiles correspond, they indicate that a user(s) is carrying the electronic device or moving with it in other ways, allowing for the synchronization and / or transfer of content between electronic devices by sharing state or state information. State information may include the state of a web browser or game. By sharing state information, a user(s) may be able to seamlessly transition from operating one electronic device to operating another. A device orientation profile may be a series of records over time, each containing values ​​that convey information about the device's position and / or orientation. A device orientation profile can be used to track the movement of a device over time.

[0007] Figure 1A shows a first user 100 walking with a first electronic device 102, a second electronic device 104, and a third electronic device 106. User 100 can carry electronic devices 102, 104, and 106. One of the electronic devices 102, 104, and 106, such as electronic device 104, can transfer content and / or share state 108 within one or more of the other electronic devices 102, 104, and 106, such as electronic device 106. User 100 can carry one or more of the electronic devices 102, 104, and 106 in their hand. In non-limiting embodiments, user 100 may carry one or more of the electronic devices 102, 104, and 106 by attaching them to user 100's body, for example with a strap, inserting them into the ear, or carrying them in a bag, backpack, etc. In the example shown in Figure 1A, the first electronic device 102 may include a smartphone or earphones. In the embodiment shown in Figure 1A, the second electronic device 104 may include a smartwatch or smartphone. In the example shown in Figure 1A, the third electronic device 106 may include a tablet computing device. The first electronic device 102, the second electronic device 104, and the third electronic device 106 may be associated with user 100 and / or an account owned or managed by the user. If user 100 is carrying three electronic devices 102, 104, and 106, the inertial motion and / or acceleration of the three electronic devices 102, 104, and 106, as measured by the accelerometers and / or inertial measuring units (IMUs) contained in the electronic devices 102, 104, and 106 (each of which may contain one or more accelerometers), are similar, for example, corresponding. The inertial motion and / or acceleration data are readily available, enabling one or more of the electronic devices 102, 104, and 106 to quickly determine the proximity of the other electronic devices 102, 104, and 106.

[0008] Figure 1B is a graph 110 showing the inertial motion 112 of the first electronic device 102 carried by the first user 100 in the embodiment of Figure 1A as a function of time 114. In some embodiments, the inertial motion value 116 can be obtained from an inertial motion unit (IMU) within the first electronic device 102. The inertial motion value 116 can be the principal element of a three-axis reading, such as (x, y, z) acceleration. The accelerometer and / or IMU measurement represented by the inertial motion value 116 can be measured and / or stored at a sampling rate, for example, 100 Hz. Thus, the inertial motion value 116 represents the measurement taken over a certain duration. The first electronic device 102 can perform dimensionality reduction, such as principal component analysis (PCA) and / or singular value decomposition (SVD), on the three-dimensional measurement output by the accelerometer contained in the first electronic device 102. The inertial displacement value 116 can be the first principal component resulting from principal component analysis and / or the most important dimension resulting from dimensionality reduction. In some embodiments, the inertial displacement value 116 may be an embedding of a three-dimensional measurement output by an accelerometer in the first electronic device 102.

[0009] Figure 1C is a graph 120 showing the inertial motion 122 of the second electronic device 104 being carried by the first user 100 in the embodiment of Figure 1A as a function of time 124 (e.g., duration). The inertial motion value 126 is generated in a similar manner to the inertial motion value 116, and a correlation process can be performed on it. For example, the inertial motion value 126 can be the principal component of the 3-axis accelerometer reading. The second electronic device 104 can undergo dimensionality reduction, such as principal component analysis (PCA), on the 3D measurements output by the accelerometer contained in the second electronic device 104, for example, similar to the first electronic device 102. The inertial motion value 126 can be the principal component resulting from the principal component analysis.

[0010] Figure 1D is a graph 130 showing the inertial motion 132 of the third electronic device 106 carried by the first user 100 in the embodiment of Figure 1A as a function of time 134. Since the inertial motion value 136 is generated in the same manner as the inertial motion values ​​116 and 126, a correlation process can be performed. For example, the inertial motion value 136 can be a principal component of a 3-axis accelerometer reading. The third electronic device 106 can perform dimensionality reduction, such as principal component analysis (PCA), on the 3D measurements output by the accelerometer contained in the third electronic device 106. The inertial motion value 136 can be a principal component resulting from the principal component analysis.

[0011] The inertial motion shown as a function of time in Figures 1B, 1C, and 1D can be considered as directional profiles. The directional profiles can be based on motion direction and / or inertial motion data measured by electronic devices 102, 104, and 106. Each directional profile can indicate the motion direction of each electronic device 102, 104, and 106. The inertial motion values ​​116, 126, and 136 shown in Figures 1B, 1C, and 1D (as well as the values ​​216, 226, 236, 316, and 326 shown in Figures 2B, 2C, 2D, 3B, and 3C) can be considered as abstractions of accelerometer data measured by each electronic device 102, 104, 106, 302, and 306. Dimensionality reduction such as PCA is performed on accelerometer and / or IMU values ​​measured by electronic devices 102, 104, 106, 302, 306, and if the horizontal movement and / or acceleration in one direction are generally constant because the user is moving at a constant velocity, then the values ​​116, 126, 136, 216, 226, 236, 316, 326 can represent vertical movement and / or acceleration. In some embodiments, the inertial movement values ​​116, 126, 136 shown in Figures 1B, 1C, and 1D (and the values ​​216, 226, 236, 316, 326 shown in Figures 2B, 2C, 2D, 3B, and 3C) can represent embedded or multiple vectors for each sample from the IMU, for example, with multiple data points for each sample (measurement) represented by duration.

[0012] The similar (or correlated) directional profiles of the electronic devices 102, 104, 106 can indicate that they are being carried by a user. In some embodiments, an electronic device, such as one of the electronic devices 102, 104, 106, or a remote electronic device, can perform a clustering function to determine which of the electronic devices 102, 104, 106 has a corresponding directional profile. In some embodiments, the electronic devices 102, 104, 106 that are within the same and / or primary cluster can be considered to have corresponding directional profiles. In some embodiments, the electronic devices 102, 104, 106 that are within the same cluster and have non-zero or significant movement and / or acceleration (indicating that they are not stationary) can be considered to have corresponding directional profiles. In the embodiments of FIGS. 1A, 1B, 1C, and 1D, all three of the electronic devices 102, 104, 106 can be considered to have corresponding, matching, or correlated directional profiles. Other electronic devices not shown may have directional profiles that are not within the same cluster as the directional profiles of the electronic devices 102, 104, 106 and may be considered to not have corresponding directional profiles with any of the electronic devices 102, 104, 106.

[0013] In some embodiments, the directional profiles of the electronic devices 102, 104, 106 can be considered to be corresponding or matching (correlating) when their inertial movements as a function of time meet a similarity threshold. The similarity threshold, as a non-limiting example, may require that the sum of the differences between the inertial movement values (or principal components) at each time point is below a difference threshold, that the sum of the squares of the differences between the inertial movement values (or principal components) at each time point is below a squared difference threshold, or that the sum of the differences or the sum of the squared differences is below a predetermined percentage of the average value of the inertial movement values. In some embodiments, one or more of the electronic devices 102, 104, 106 can shift the time values to find a maximum fit or maximum match in order to account for differences in the time measurement values between the electronic devices 102, 104, 106.

[0014] FIG. 2A shows a state where the first user 100 is walking with the first electronic device 102 and the third electronic device 106, and has left the second electronic device 104 in the vehicle 200.

[0015] FIG. 2B is a graph 210 showing the inertial movement 212 of the first electronic device 102 carried by the first user 100 in the embodiment of FIG. 2A as a function of time 214. The first electronic device 102 can determine the inertial movement 212 in the same manner as described above with respect to FIGS. 1B, 1C, and 1D.

[0016] FIG. 2C is a graph 220 showing the inertial movement 222 of the third electronic device 106 carried by the first user 100 in the embodiment of FIG. 2A as a function of time 224. The third electronic device 102 can determine the inertial movement 222 in the same manner as the method described above with respect to FIGS. 1B, 1C, and 1D.

[0017] Figure 2D is a graph 230 showing the inertial movement 232 of the second electronic device 104 left in the vehicle 200 by the first user 100 in the embodiment of Figure 2A, as a function of time 234. The inertial movement 232 of the second electronic device 104 can be determined in the same manner as described above with respect to Figures 1B, 1C, and 1D. The inertial movement 232 of the second electronic device 104 left in the vehicle 200 is smaller and / or less variable than the inertial movement 212 of the first electronic device 102 or the inertial movement 222 of the third electronic device 106 being carried by the first user 100 while walking. This is because the vehicle 200 is either stationary or the movement pattern of the moving vehicle 200 suppresses the inertial movement.

[0018] As described above, electronic devices 102, 104, and 106 can determine their respective directional profiles based on their respective inertial movements 212, 222, and 232. In the embodiments of Figures 2A, 2B, 2C, and 2D, the first electronic device 102 and the third electronic device 106 carried by the first user 100 have corresponding directional profiles. In the embodiments of Figures 2A, 2B, 2C, and 2D, the directional profile of the second electronic device 104 does not match and / or correspond to the directional profile of either the first electronic device 102 or the third electronic device 106.

[0019] Figure 3A shows a first user 100 walking while carrying the first electronic device 102 and the third electronic device 106, and a second user 300 walking while carrying the fourth electronic device 302 and the fifth electronic device 306. The first user 100 and the second user 300 are walking together at a similar speed using the same means of transportation (walking). This example can also be applied when multiple users are using other common means of transportation, such as riding in a vehicle. The first and third electronic devices 102 and 106 may be associated with the first user 100 and / or an account owned and / or managed by the first user 100. The fourth and fifth electronic devices 302 and 306 may be associated with the second user 300 and / or an account owned and / or managed by the second user 300. A first user 100 and a second user 300 may be included in a group, and / or a first electronic device 102, a third electronic device 106, a fourth electronic device 302, and a fifth electronic device 306 may be included in a group. A group may include, as an unspecified example, groups within social networks, productivity applications, or gaming applications. Users 100 and 300 may choose to join a group and share the status of each electronic device 101, 106, 302, and 306 with other members of the group. A group that may include users 100 and 300 may be created by either user 100 or 300, or by other members of the group, and a member may choose to share the status of each electronic device 102, 106, 302, and 306 with other members of that group.

[0020] Figure 3B is a graph 310 showing the inertial movement 312 of the third electronic device 106 carried by the first user 100 in the embodiment of Figure 3A as a function of time 314. The inertial movement 312 of the third electronic device 102 can be determined in the same manner as described above with respect to Figures 1B, 1C, and 1D.

[0021] Figure 3C is a graph 320 showing the inertial movement 322 of the fifth electronic device 306 carried by the second user 300 in the embodiment of Figure 3A as a function of time 324. The inertial movement 322 of the fifth electronic device 306 can be determined in the same manner as described above with respect to Figures 1B, 1C, and 1D.

[0022] Electronic devices 102, 106, 302, and 306 can determine their respective directional profiles based on their respective inertial movements 312 and 322, as described above. In the embodiments of Figures 3A, 3B, and 3C, the third electronic device 106 and the fifth electronic device 306, carried by the first user 100 and the second user 300, respectively, each have corresponding directional profiles. In some embodiments, electronic devices 106 and 306 can be considered to have corresponding directional profiles on at least partly based on the fact that the motion tracked by the accelerometers and / or IMUs contained in each of the electronic devices 106 and 306 indicates that they are being carried by similar or the same means of transport, for example, both electronic devices 106 and 306 are being carried by vehicles (bicycles, cars, trucks, ATVs, snowmobiles, etc.) or both electronic devices 106 and 306 are being carried by pedestrians.

[0023] Figure 4A shows an exemplary processing flow for sharing the state of electronic devices based on corresponding directional profiles. Multiple electronic devices, each possibly containing inertial measurement units (IMUs) 402, 404, 406 and / or accelerometers, can measure the acceleration of each electronic device. Each electronic device can perform motion feature embeddings 412, 414, 416 on the acceleration measurements performed by its respective IMUs 402, 404, 406. The motion feature embeddings 412, 414, 416 can generate directional profiles for each electronic device, such as by dimensionality reduction, which involves performing principal component analysis (PCA) on the three-dimensional measurements output by the IMUs 402, 404, 406 contained in each electronic device.

[0024] One or more electronic devices can receive directional profiles from other electronic devices and perform clustering (420) on the directional profiles. In some embodiments, electronic devices can perform K-means clustering on the directional profiles. Clustering (420) can determine which electronic devices have similar and / or corresponding directional profiles. An example of a set of data points 430 is shown in Figure 4A, which has four distinct clusters.

[0025] In some embodiments, clustering (420) may include performing the elbow method of clustering to determine the number of clusters. The elbow method may include plotting the variation as a function of the number of clusters (K) and selecting the elbow (or knee) of the curve as the number of clusters.

[0026] After performing clustering (420), the clustered electronic devices can select a primary cluster (440). The primary cluster may be the cluster with the most electronic devices.

[0027] Electronic devices within a primary cluster can be considered to have corresponding directional profiles. One or more electronic devices having corresponding directional profiles can activate sharing functions (450), such as browser sharing.

[0028] Figure 4B shows electronic devices grouped into clusters based on their directional profiles. The electronic devices are represented by nodes 462, 464, 466, 472, and 474. The electronic devices may generate directional profiles based on dimensionality reduction, such as principal component analysis (PCA), using three-dimensional measurements output by accelerometers and / or IMUs. Nodes 462, 464, 466, 472, and 474 can represent these directional profiles.

[0029] In the example shown in Figure 4B, nodes 462, 464, and 466, representing three electronic devices, are grouped into a primary cluster. The primary cluster is the cluster with the largest number of nodes, which in this example is three. One or more of the electronic devices can determine that the three electronic devices represented by nodes 464, 464, and 466 have corresponding directional profiles, based on the fact that nodes 462, 464, and 466 are grouped into a primary cluster.

[0030] In the example shown in Figure 4B, nodes 472 and 474, representing two electronic devices, are not grouped into a primary cluster. One or more of the electronic devices can determine, based on the fact that nodes 462, 464, and 466 are not grouped into a primary cluster, that the three electronic devices represented by nodes 464, 464, and 466 do not have a corresponding directional profile with any of the other electronic devices.

[0031] Based on the fact that the three electronic devices represented by nodes 464, 464, and 466 have corresponding directional profiles, the electronic devices represented by nodes 464, 464, and 466 can share state. One of the electronic devices represented by nodes 464, 464, and 466 can, for example, send state information to one or more of the other two devices, and one or more of the other two electronic devices, after receiving the state information, can update the state of the device, such as the state of the device's browser, based on the received state information. Updating the state can enable the electronic devices to synchronize content, such as browser content. Synchronizing content allows users to switch between devices without losing the continuity of their experience across multiple instances of an application.

[0032] Figure 5A is a timing diagram showing the processes performed and messages exchanged by electronic devices 502, 504, 506, and 508 according to one embodiment. In this embodiment, the correlation device 508 may be located separately from the other electronic devices 502, 504, and 506 and can determine whether a correlation of directional profiles exists between the other electronic devices 502, 504, and 506. The transmitting device 502, receiving device 504, and third device 506 may include any combination of the features and / or functions of the above-mentioned electronic devices 102, 104, 106, 302, and 306. The transmitting device 502 may be selected because it has been accessed more recently by the user than the receiving device 504, thereby the transmitting device 502 has state information to transfer to the receiving device 504.

[0033] Electronic devices 502, 504, and 506 can generate their respective directional profiles (510, 512, and 514). For example, electronic devices 502, 504, and 506 can generate their respective directional profiles (510, 512, and 514) by measuring their respective accelerations and determining the principal components of their respective accelerometer readings, as described above. Electronic devices 502, 504, and 506 can transmit their respective directional profiles 516, 518, and 520 to the correlation device 508. Electronic devices 502, 504, and 506 can transmit their respective directional profiles 516, 518, and 520 to the correlation device 508 via, for example, the Internet, a wireless LAN (Wi-Fi®) IEEE 802.11 interface, and / or a Bluetooth® interface, as an example of a non-limiting model.

[0034] After receiving directional profiles 516, 518, and 520 from electronic devices 502, 504, and 506, correlation device 508 can determine whether a correlation event has occurred (522). A correlation event may indicate that two electronic devices 502, 504, and 506 are moving together, such as being carried by the same user, moving together along a similar path (e.g., walking), or being carried by users riding together in a vehicle. Correlation device 508 can determine whether a correlation event has occurred between two or more electronic devices 502, 504, and 506 if it indicates that the operating similarity condition is met, based on the IMU data and / or accelerometer data received from two or more electronic devices 502, 504, and 506. The similarity criteria may include that the inertial movement of electronic devices 502, 504, and 506 where the correlated event occurred satisfies a similarity threshold, and / or that electronic devices 502, 504, and 506 where the correlated event occurred are included in the same cluster based on IMU data and / or accelerometer data received from two or more electronic devices 502, 504, and 506.

[0035] In some embodiments, the correlation device 508 can determine whether a correlation event has occurred based on performing a clustering function and / or cluster analysis on, for example, directional profiles 516, 518, 520 (which may represent the motion tracked by the accelerometers of the electronic devices 502, 504, 506) (522). The correlation device 508 can determine that two or more of the electronic devices 502, 504, 506, such as the transmitting device 502 and the receiving device 504, belong to the same cluster and / or primary cluster. In this example, the transmitting device 502 and the receiving device 504 belong to the same cluster and / or primary cluster and have corresponding directional profiles, and a third device 506 does not belong to the same cluster and / or primary cluster and has a directional profile corresponding to either the transmitting device 502 or the receiving device 504. One third device 506 that does not belong to the same cluster and / or primary cluster and has a directional profile corresponding to either the transmitting device 502 or the receiving device 504 is shown in Figures 5A, 5B, and 5C. On the other hand, any number of devices that are not in the same cluster and / or primary cluster and do not have a corresponding directional profile to either the transmitting device 502 or the receiving device 504 may be associated with the same user and / or may be in the same group as the transmitting device 502 and the receiving device 504.

[0036] The presence of two or more electronic devices 502, 504 within the same cluster and / or primary cluster indicates that the electronic devices 502, 504 within the same cluster and / or primary cluster have corresponding directional profiles. Based on the presence of two or more electronic devices 502, 504 within the same cluster and / or primary cluster, the correlation device 508 can determine that the electronic devices 502, 504 within the same cluster and / or primary cluster have corresponding directional profiles. Based on the determination that the electronic devices 502, 504 have corresponding directional profiles, the correlation device 508 can determine that a correlation event has occurred between the electronic devices 502, 504 having corresponding directional profiles.

[0037] In some embodiments, the directional profiles of electronic devices 502, 504, and 506 can be considered corresponding and / or coincidental (correlated) if their inertial movement as a function of time satisfies a similarity threshold. The similarity threshold may, in non-restrictive examples, be based on the fact that the sum of cumulative differences between the inertial movement values ​​(or principal components) at each time point is less than or equal to a difference threshold, the sum of squares of the differences between the inertial movement values ​​(or principal components) at each time point is less than or equal to a squared difference threshold, or the sum of differences or the sum of squared differences is less than or equal to a predetermined percentage of the mean inertial movement value. In some embodiments, one or more of the electronic devices 502, 504, and 506 can have their time values ​​shifted to account for differences in time measurements between the electronic devices 502, 504, and 506 to find the best fit or best coincidence.

[0038] In response to the determination (522) that a correlation event has occurred, the correlation device 508 may send correlation notifications 524, 526 to electronic devices 502, 504 having the corresponding directional profiles. One of the electronic devices 502, 504 that receives a correlation notification 524, 526 may be considered to be the transmitting device 502, based on the fact that the application running on the transmitting device 502 has recently received input and / or operations from a user, such as one of users 100, 300, and / or the possibility that the transmitting device 502 will send state information to the other electronic device 504. The other of the electronic devices 502, 504 that receives a correlation notification 524, 526 may be considered to be the receiving device 504, based on the fact that the application running on the receiving device 504 has received input and / or operations from a user earlier and / or the possibility that the receiving device 504 will receive state information from the transmitting device 502. The correlation notification can identify the electronic devices 502, 504 having the corresponding directional profiles.

[0039] In an example where the transmitting device 502 is the transmitting device 502 (and not the receiving device), in response to receiving a correlation notification 524 indicating the occurrence of a correlation event, the transmitting device 502 can determine its state (528). The transmitting device 502 can determine, for example, the state of an application running on the transmitting device 502. The transmitting device 502 can determine the state of a browser on the transmitting device 502, for example, the web page open in the browser and / or the associated universal resource locator (URL) and / or the user's position on the page. The transmitting device 502 can determine, for example, the state of a game running on the transmitting device 502. The transmitting device 502 can transmit the determined state information to the receiving device 504.

[0040] In response to receiving state information 530, the receiving device 504 may update its state (532). Based on the state information 530 received from the transmitting device 502, the receiving device 504 may update its state (532) to match the state of the transmitting device 502 when the transmitting device 502 determined its state (528). As a non-limiting example, the receiving device 504 may update its state (532) by updating the state of a browser or game running on the receiving device 504. For example, updating state (532) may include opening an application corresponding to an application identifier (e.g., operating system intent, deep link) and navigating to an interface within an interface corresponding to a content identifier in the state information.

[0041] Figure 5B is a timing diagram showing the processes performed by electronic devices 502, 504, and 506 and the messages exchanged in another embodiment. In this embodiment, the transmitting device 502 can determine whether a correlation of directional profiles exists between electronic devices 502, 504, and 506.

[0042] Electronic devices 502, 504, and 506 can generate their respective directional profiles (540, 542, and 544). Electronic devices 502, 504, and 506 can generate their respective directional profiles 540, 542, and 544 in the same manner as (510), (512), and (514) described above. Electronic devices 504 and 506, other than the transmitting device 502, can transmit their respective directional profiles 546 and 548 to the transmitting device 502.

[0043] In response to the reception of directional profiles 546, 548 and based on the directional profile generated by the transmitting device 502, the transmitting device 502 can determine whether a correlation event has occurred (550). The transmitting device 502 can determine whether a correlation event has occurred in the same manner as in (522) above (550). In this embodiment, the transmitting device 502 determines that the transmitting device 502 and the receiving device 504 are correlated and / or correspond and / or have corresponding directional profiles.

[0044] Based on the determination that a correlation event has occurred and that the transmitting device 502 has a corresponding directional profile with the receiving device 504, the transmitting device 502 can determine its state (552). The transmitting device 502 can determine its state (552) in the same manner as in (528) above. The transmitting device 502 can transmit the determined state information 554 to the receiving device 504. The receiving device 504 can respond to the reception of the state information 554 by receiving the state information 554 and updating its state (556). The receiving device 504 can update its state (556) in the same manner as in (532) above.

[0045] Figure 5C is a timing diagram showing the processes performed by electronic devices 502, 504, and 506 and the messages exchanged according to another embodiment. In this embodiment, the receiving device 504 can determine whether a correlation of directional profiles exists between electronic devices 502, 504, and 506.

[0046] Electronic devices 502, 504, and 506 can generate their respective directional profiles (560), (562), and (564). Electronic devices 502, 504, and 506 can generate their respective directional profiles (560), (562), and (564) in the same manner as (510), (512), and (514) and / or (540), (542), and (544) above. Devices 502 and 506 can transmit their respective directional profiles 566 and 568 to a receiving device 504, which can receive the directional profiles.

[0047] In response to receiving directional profiles 566 and 568, the receiving device 504 can determine the correlated event (570). The receiving device 504 can determine the correlated event (570) in the same manner as described in (522) and (550) above.

[0048] In this embodiment, electronic devices 502 and 506 can transmit their respective directional profiles 566 and 568 to electronic device 504, which will be the receiving device 504. The receiving device 504 can receive the directional profiles 566 and 568. In response to receiving the directional profiles 566 and 568, the receiving device 504 can determine a correlation event (570). The receiving device 504 can determine the correlation event (570) in the same manner as described in (522) and / or (550). The receiving device 504 can determine that the correlation event (570) indicates that the receiving device 504 and the transmitting device 502 have corresponding directional profiles. The receiving device 504 and / or the transmitting device 502 can determine that the state of the receiving device 504 should be updated to the state of the transmitting device 502, for example, based on the fact that an application running on the transmitting device 502 has been operated on by users 100 and 300 more recently than the receiving device 504.

[0049] Based on the determination of the correlation event 570 (for example, based on the occurrence of the correlation event, the transmitting device 502 and the receiving device 504 have corresponding directional profiles), if it is determined that the state of the receiving device 504 should be updated to the state of the transmitting device 502, the receiving device 504 can send a state information request 572 to the transmitting device 502, and the transmitting device 502 can receive the state information request 572.

[0050] The transmitting device can respond to the status information request 572 by determining the status (574) of the transmitting device 502. The transmitting device 502 can determine its status in the same manner as in (528) and (552). Based on the determined status, the transmitting device 502 can send a status information message 576 to the receiving device 504, and the receiving device 504 can receive the status information message 576 from the transmitting device 502. The status information message 576 may include the determined status of the transmitting device 502. In response to receiving the status information 576, the receiving device 504 can update the status (578) of the receiving device. The receiving device 504 can update the status (578) of the receiving device in the same manner as in (532) and (556).

[0051] Figure 6 is a block diagram showing an electronic device 600 according to one embodiment. Electronic device 600 may be an example of any of the electronic devices 102, 104, 106, 302, 306, 502, 504, 506, and 508 described above. Electronic device 600 may include any combination of features and / or functions of any of the electronic devices 102, 104, 106, 302, 306, 502, 504, 506, and 508 described above.

[0052] The electronic device 600 may include a user associate 602. The user associate 602 can associate the electronic device 600 with a user and / or account, determine whether the electronic device is associated with a particular user and / or account, and / or determine whether the electronic device 600 is associated with the same user and / or account as other electronic devices.

[0053] The electronic device 600 may include a group associate 604. The group associate 604 can associate the electronic device 600 and / or users and / or accounts associated with the electronic device 600 with a group. The group associate 604 can determine whether the electronic device 600 and / or users and / or accounts associated with the electronic device 600 are in the same group as and / or associated with the same group as other electronic devices and / or users or accounts associated with other electronic devices in the group.

[0054] The electronic device 600 may include an accelerometer 606 and / or an inertial measuring unit (IMU). The accelerometer 606 and / or IMU can measure and report the acceleration, specific force, angular velocity, and / or orientation of the electronic device 600.

[0055] The electronic device 600 may include a location determination device 608. The location determination device 608 can determine the geographical location of the electronic device 600. For example, in non-limiting examples, the location determination device 608 can determine the geographical location of the electronic device 600 based on Global Positioning System (GPS) signals received from satellites, signals received from wireless LAN 802.11 hotspots with known locations, or signals received from cellular base stations with known locations.

[0056] The electronic device 600 may include a directional profile generator 610. The directional profile generator 610 can generate a directional profile of the electronic device 600. The directional profile generator 610 can generate a directional profile based on acceleration data, specific force data, angular velocity data, and / or orientation data measured by the accelerometer 606 and / or IMU.

[0057] The orientation profile generator 610 can generate orientation profiles by performing dimensionality reduction, such as principal component analysis (PCA), on any combination of acceleration data, specific force data, angular velocity data, and / or orientation data. In some embodiments, the orientation profile generator 610 can generate orientation profiles by performing dimensionality reduction on three-dimensional measurements output by the accelerometer 606 and / or IMU.

[0058] In some embodiments, the directional profile generator 610 can buffer and / or store acceleration and / or motion data for a predetermined period measured by the accelerometer 606, such as acceleration and / or motion data for 2 seconds. In some embodiments, the directional profile generator 610 can convert inertial motion data, such as principal components and time values ​​of the accelerometer data, into vectors. In some embodiments, the directional profile generator 610 can perform a Fourier transform on the directional data to eliminate temporal variations between electronic devices. In some embodiments, the directional profile generator 610 can store amplitude-phase tuples of the highest amplitude frequencies. By concatenating across all channels of the 3-axis accelerometer, a 6-dimensional code vector can be generated.

[0059] The electronic device 600 may include a correlation tester 612. The correlation tester 612 can determine whether a correlation event has occurred and / or can detect the occurrence of a correlation event. In some embodiments, the correlation tester 612 can determine whether a correlation event has occurred between two or more devices associated with the same user and / or account. In some embodiments, the correlation tester 612 can determine whether a correlation event has occurred between two or more devices associated with users and / or accounts that belong to the same group. A correlation event may indicate that two or more devices have corresponding directional profiles. Corresponding directional profiles may indicate that the movements tracked by the accelerometers and / or IMUs of two or more electronic devices are in the same direction and in the same proximal position. For example, in non-limiting examples, this includes cases where a single user is carrying two or more electronic devices, where multiple users are walking together and each is carrying an electronic device, or where multiple users are riding in the same vehicle and each is carrying an electronic device. In some embodiments, determining a correlation event may include identifying specific movement patterns in each of the device directional profiles that are suspected to be correlated. For example, if two or more devices are located close to each other and / or have corresponding orientations, a trigger event may only be determined if the operating pattern of each device exhibits a specific pattern, such as oscillation. The direction of oscillation can provide an indicator of the direction of state transfer between devices.

[0060] In some embodiments, the correlation analyzer 612 can perform clustering analysis and / or clustering functions on the directional profiles and / or motion tracked by accelerometers of multiple electronic devices. In some embodiments, multiple electronic devices may be associated with the same user and / or account. In some embodiments, multiple electronic devices may be associated with users and / or accounts that belong to the same group.

[0061] In some embodiments, the clustering function may include clustering using the k-means method. In some embodiments, the correlation tester 612 can determine the value of k, or the number of clusters, by the elbow method. The correlation tester 612 can determine that electronic devices in the same cluster and / or in a primary cluster have corresponding directional profiles. A primary cluster may be the cluster containing the most and / or highest-value electronic devices. Electronic devices contained within a primary cluster can be considered to have corresponding directional profiles with respect to each other. Electronic devices contained within a primary cluster can be considered to have no corresponding directional profiles with respect to each other or any other electronic device.

[0062] In some embodiments, a direction profile generator 610 can generate a direction profile, and / or a correlation determiner 612 can determine whether a correlation event has occurred in response to an interaction with a first electronic device and / or a second electronic device. Interaction with the first electronic device may include the user reducing power consumption by using and / or turning off the power of a component of the first electronic device, such as a display included in the first electronic device. Interaction with the second electronic device may include the user initiating interaction with the second electronic device after interacting with the first electronic device, such as turning on a display included in the second electronic device, activating a power button on the second electronic device, or otherwise powering on the second electronic device, turning on a display included in the second electronic device, or putting the display included in the second electronic device into a higher power state. Battery power can be saved by generating a direction profile and / or determining whether a correlation event has occurred in response to the user initiating interaction with the second electronic device, and performing these tasks only when it becomes necessary to synchronize content. In some embodiments, the second electronic device may send a message to one or more other electronic devices indicating that the second electronic device is interacting with the user, thereby prompting one or more other electronic devices to generate their respective directional profiles and / or determine whether a correlation event has occurred.

[0063] In some embodiments, the correlation criterion 612 can determine that a correlation event has occurred based on IMU data and / or accelerometer data indicating that two or more electronic devices moved in the same direction but not in opposite directions (if they moved in opposite directions, it may indicate that the electronic devices collided or "bumped" with each other, which would not be considered a correlation event). In some embodiments, IMU data and / or accelerometer data indicating an elastic collision between electronic devices may indicate that no correlation event has occurred. In some embodiments, the correlation criterion 612 can determine that a correlation event has occurred if, based on the IMU data and / or accelerometer data, two or more electronic devices have met the behavioral similarity condition for at least a threshold duration. The threshold duration is, in non-limiting examples, for example, 2 seconds or more, 5 seconds or more, 10 seconds or more, 1 minute or more, 5 minutes or more, or 10 minutes or more.

[0064] One or more of the electronic devices 102, 104, 106, 302, 306, 502, 504, 506, and 508 may be selected as the electronic device that determines whether a correlation event occurs and / or performs the functions of the correlation determiner 612. In some embodiments, an electronic device may be selected as a correlation device based on user input and / or user settings. In some embodiments, an electronic device may be selected as a correlation device based on administrator settings, such as settings contained in a server, such as the remote correlation device 508.

[0065] The electronic device 600 may include a state determiner 614. The state determiner 614 can determine the state of the electronic device 600, state information, and / or the state of an application running on the electronic device 600. State information is data that enables the receiving device to navigate to specific content, for example, via deep links, operating system intents, resource locators, etc. Therefore, state information may include application state, which includes information related to the application stored in the electronic device's memory; resource state, which includes resources such as files, images, and / or database records stored in relation to the application; session state, and / or session state, which maintains the status of communication between the electronic device 600 and the server. In embodiments where the application is a browser, the state information determined by the state determiner 614 may include a web page or universal resource locator (URL) and browser intents or deep links. In some embodiments where the application is a browser, state information may include a web page or URL and the user's position on the web page. In an example where the application is a game, state information may include game state, such as the position of an object, the values ​​of an object's attributes, and / or the player's ID.

[0066] The electronic device 600 may include a state information message processor 616. When the electronic device 600 is a transmitting device 502, the state information processor 616 can generate a state information message and transmit it to the receiving device 504. The state information message may include state information determined by the state determination device 614. When the electronic device 600 is a receiving device 504, the state information processor 616 can receive and process the state information message transmitted by the transmitting device 502.

[0067] The electronic device 600 may include one or more applications 618. The applications 618 can run on the electronic device 600. Applications 618 may include, in non-limiting examples, a web browser, a game, or a productive application.

[0068] The electronic device 600 may include a state updater 620. The state updater 620 can update the state of the application 618 in response to receiving a state information message. The state updater 620 can update the state of a browser running on the electronic device 600, for example, by requesting a specific web page and / or instructing the browser to scroll to a specific position on the web page. The state updater 620 can update the state of a game running on the electronic device, for example, by launching a game and / or changing the position and / or values ​​of objects contained in the game.

[0069] The electronic device 600 may include at least one processor 622. The at least one processor 622 can execute instructions, such as instructions stored in at least one memory device 624, to cause the electronic device 600 to perform any combination of the methods, functions, and / or techniques described herein.

[0070] The electronic device 600 may include at least one memory device 624. The at least one memory device 624 may include a non-temporary computer-readable storage medium. The at least one memory device 624 can store data and instructions, which, when executed by at least one processor such as processor 622, are configured to cause the electronic device 600 to perform any combination of the methods, functions, and / or techniques described herein. Thus, in any of the embodiments described herein (even if not explicitly mentioned in relation to a particular embodiment), the electronic device 102 associated with or contained in software (e.g., processing modules, stored instructions) and / or hardware (e.g., processors, memory devices, etc.) may be configured to perform any combination of the methods, functions, and / or techniques described herein, either alone or in combination with any of the electronic devices 102, 104, 106, 302, 306, 502, 504, 506, or 508.

[0071] The electronic device 600 may include at least one input / output node 626. The at least one input / output node 626 may receive and / or transmit data, such as to and from the electronic device 600, and / or receive input from and / or to a user and provide output. The input and output functions may be combined into a single node or separated into separate input and output nodes. The input / output node 626 may include any wired or wireless interface (such as Bluetooth, Institute of Electrical and Electronics Engineers 802.11, or a cellular communication interface) for communication with other electronic devices. The input / output node 626 can communicate with other electronic devices 102, 104, 106, 302, 306, 502, 504, 506, 508, such as by transmitting messages 516, 518, 520, 524, 526, 530, 546, 548, 554, 566, 568 (which may include directional profiles 516, 518, 520, 546, 548, 566, 568, correlation notices 524, 526, status information 554, 576, and / or status information requests 572) via the Internet Protocol through cellular base stations and relay servers, via the 802.11 communication protocol, and / or via peer-to-peer protocols such as Bluetooth.

[0072] In some implementations, correlated events can be used in other workflows. For example, the detection of correlated events can be used in a process to suggest content, application launches, or other actions to a user with their permission. More specifically, suppose a user has a habit of jogging between 6 and 7 a.m. and listening to playlists using earphones and a phone. An embodiment could use the corresponding directional profiles of the phone and earphones to increase the confidence in predicting that the user will open the playlist application if the time falls within (or is close to) the learned 6-7 a.m. timeframe. Thus, in some embodiments, correlated events can be used to trigger events in addition to or outside of state transfers.

[0073] Figure 7 is a flowchart of Method 700 according to one embodiment. The method may include determining that a correlation event has occurred based on at least a first device and a second device having corresponding directional profiles (702) using a correlation device. In response to the occurrence of a correlation event, Method 700 may include causing the first device to transfer the state of the first device by sending a state information message to the second device (704).

[0074] In some embodiments, determining that a correlated event has occurred (702) may include performing a clustering function on the motion tracked by the accelerometers of the first and second devices, and determining that the output of the clustering function indicates that the first and second devices belong to the same cluster. Devices within the same cluster have corresponding directional profiles.

[0075] In some embodiments, the corresponding directional profile may indicate that the motion tracked by the accelerometer of the first device and the motion tracked by the accelerometer of the second device satisfy the motion similarity condition for at least a threshold duration.

[0076] In some embodiments, the first device may be associated with the first user, the second device may be associated with the second user, and the first and second users may belong to the same group.

[0077] In some embodiments, state information messages may include the state of games related to the same group.

[0078] In some embodiments, the corresponding directional profiles may indicate that the motion tracked by the accelerometer of the first device and the motion tracked by the accelerometer of the second device represent the same means of movement.

[0079] In some embodiments, the first device and the second device may be associated with the same user.

[0080] In some embodiments, the correlation device may be located at a distance from the first and second devices.

[0081] In some embodiments, the correlation device may be the first device. In some embodiments, a first device may send status information messages based on which device has been accessed by the user more recently than a second device.

[0082] Figure 8 is a flowchart illustrating method 800 according to another embodiment. Method 800 can be performed by a transmitting device, such as a transmitting device 502. Method 800 may include detecting correlation events based on the directional profile of the transmitting device corresponding to the directional profile of the receiving device (802). In response to the detection of correlation events, Method 800 may include sending a status information message from the transmitting device to the receiving device, the status information message including status information about at least one application running on the transmitting device (804).

[0083] In some embodiments, the detection of correlated events may include performing a clustering function on the motion tracked by the accelerometers of the transmitting and receiving devices, and determining that the output of the clustering function indicates that the transmitting and receiving devices belong to the same cluster. Devices within the same cluster have corresponding directional profiles.

[0084] In some embodiments, the transmitting device and the receiving device may be associated with the same user.

[0085] In some embodiments, the transmitting device may be associated with a first user, the receiving device may be associated with a second user, and the first and second users may belong to the same group.

[0086] In some embodiments, method 800 may further include the transmitting device sending a status information message from the transmitting device to the receiving device after detecting a correlation event and in response to receiving a command to power off a component of the transmitting device.

[0087] Figure 9 is a flowchart of Method 900 according to another embodiment. Method 900 may be performed by a receiving device, such as a receiving device 504. Method 900 may include receiving a status information message from a transmitting device, the status information message being sent in response to the detection of a correlation event, the correlation event being based on the receiving device and the transmitting device having corresponding directional profiles (902). Method 900 may include updating the state of at least one application running on the receiving device based on the status information message (904).

[0088] In some embodiments, the transmitting device and the receiving device may be associated with the same user.

[0089] In some embodiments, the transmitting device may be associated with a first user, the receiving device may be associated with a second user, and the first and second users may belong to the same group.

[0090] In some embodiments, a receiving device can detect a correlated event, and the method may further include sending a status information request to a transmitting device in response to the detection of a correlated event, and receiving a status information message in response to the status information request.

[0091] In some embodiments, the receiving device detects a correlated event, the method may further include sending a status information request to the transmitting device in response to turning on a component of the receiving device, and receiving a status information message in response to the status information request.

[0092] Figure 10 shows embodiments of a general-purpose computer device 1000 and a general-purpose mobile computer device 1050 that can be used in the technology described herein. Computing device 1000 is intended to represent various forms of digital computers, such as laptops, desktops, tablets, workstations, personal digital assistants, televisions, servers, blade servers, mainframes, and other suitable computing devices. Computing device 1050 is intended to represent various forms of mobile devices, such as personal digital assistants, mobile phones, smartphones, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are for illustrative purposes only and are not intended to limit the embodiments described and / or claimed herein.

[0093] The computing device 1000 includes a processor 1002, memory 1004, storage device 1006, a high-speed interface 1008 connected to memory 1004 and a high-speed expansion port 1010, and a low-speed bus 1014 and a low-speed interface 1012 connected to storage device 1006. The processor 1002 may be a semiconductor-based processor. The memory 1004 may be semiconductor-based memory. Each of the components 1002, 1004, 1006, 1008, 1010, and 1012 is interconnected using various buses and may be mounted on a common motherboard or implemented in other ways as needed. The processor 1002 can process instructions for execution within the computing device 1000, including instructions stored in memory 1004 or storage device 1006, which also include instructions for displaying graphical information of a GUI on an external input / output device such as a display 1016 connected to the high-speed interface 1008. In other embodiments, multiple processors and / or buses may be used as needed, along with multiple memory and memory types. Multiple computing devices 1000 may also be connected, with each device performing some of the required operations (e.g., as a server bank, a group of blade servers, or a multiprocessor system).

[0094] Memory 1004 stores information within the computing device 1000. In one embodiment, memory 1004 is a volatile memory unit. In other embodiments, memory 1004 is a non-volatile memory unit. Memory 1004 may also be other forms of computer-readable media, such as magnetic disks or optical disks.

[0095] The storage device 1006 can provide high-capacity storage to the computing device 1000. In one embodiment, the storage device 1006 may be a computer-readable medium, or may include such a medium, such as a floppy disk device, a hard disk device, an optical disk device, or a tape device, flash memory or other similar solid-state memory device, or an array of devices including a storage area network or other configuration. The computer program product may be tangibly embodied in the information carrier. The computer program product may also include instructions that, when executed, perform one or more of the methods described above. The information carrier is a computer-readable medium or machine-readable medium, such as memory 1004, the storage device 1006, or the memory of the processor 1002.

[0096] The high-speed controller 1008 manages bandwidth-intensive operations of the computing device 1000, while the low-speed controller 1012 manages bandwidth-intensive operations. Such function assignments are merely examples. In one embodiment, the high-speed controller 1008 is coupled to memory 1004, a display 1016 (e.g., via a graphics processor or accelerator), and a high-speed expansion port 1010 that can accept various expansion cards (not shown). In another embodiment, the low-speed controller 1012 is coupled to a storage device 1006 and a low-speed expansion port 1014. The low-speed expansion port may include various communication ports (such as USB, Bluetooth®, Ethernet®, Wireless Ethernet®, etc.) and may be connected via a network adapter to one or more input / output devices such as a keyboard, pointing device, scanner, or network devices such as a switch or router.

[0097] The computing device 1000 may be implemented in many different forms, as shown in the figure. For example, it may be implemented as a standard server 1020, or it may be implemented multiple times in a group of such servers. It may also be implemented as part of a rack server system 1024. Additionally, it may be implemented in a personal computer such as a laptop computer 1022. Alternatively, components of computing device 1000 may be combined with other components in a mobile device (not shown), such as device 1050. Each of such devices may contain one or more computing devices 1000, 1050, and the entire system may consist of multiple computing devices 1000, 1050 communicating with each other.

[0098] Computing device 1050 includes, among other components, input / output devices such as a processor 1052, memory 1064, and display 1054, a communication interface 1066, and a transceiver 1068. Device 1050 may also include storage devices such as a microdrive or other devices to provide additional storage. Components 1050, 1052, 1064, 1054, 1066, and 1068 are interconnected using various buses, and some of the components may be mounted on a common motherboard or implemented in other ways as needed.

[0099] The processor 1052 can execute instructions within the computing device 1050, including instructions stored in memory 1064. The processor may be implemented as a chipset of chips including multiple separate analog and digital processors. The processor may also provide coordination with other components of the device 1050, such as user interface control, applications run by the device 1050, and wireless communication by the device 1050.

[0100] The processor 1052 may communicate with the user via a control interface 1058 and a display interface 1056 coupled to the display 1054. The display 1054 may be, for example, a TFT LCD (thin-film transistor liquid crystal display) or an OLED (organic light-emitting diode) display, or other suitable display technology. The display interface 1056 may include appropriate circuitry for driving the display 1054 to present graphic information and other information to the user. The control interface 1058 may receive commands from the user and translate the commands for submission to the processor 1052. Additionally, an external interface 1062 may be provided to communicate with the processor 1052 in order to enable short-range communication between device 1050 and other devices. The external interface 1062 may, for example, provide wired communication in some implementations, or wireless communication in other implementations, and may use multiple interfaces.

[0101] Memory 1064 stores information within the computing device 1050. Memory 1064 can be implemented as one or more computer-readable media, volatile memory units, or non-volatile memory units. Alternatively, an expansion memory 1074 may be provided and connected to device 1050 via an expansion interface 1072, which may include, for example, a SIMM (Single In-Line Memory Module) card interface. Such an expansion memory 1074 may provide additional storage space to device 1050, or it may store applications or other information for device 1050. Specifically, the expansion memory 1074 may include instructions for executing or supplementing the aforementioned processes, and may also include secure information. Therefore, for example, the expansion memory 1074 may be provided as a security module for device 1050 and may be programmed with instructions that enable secure use of device 1050. Furthermore, a secure application may be provided via the SIMM card, along with additional information such as identification information placed on the SIMM card in a hack-proof manner.

[0102] The memory may include, for example, flash memory and / or NVRAM memory, as described below. In one embodiment, the computer program product is tangibly embodied in an information carrier. When executed, the computer program product includes instructions that perform one or more of the methods described above. The information carrier is a computer-readable or machine-readable medium, examples of which include memory 1064, extended memory 1074, or memory on processor 1052. This information carrier may be received, for example, via transceiver 1068 or external interface 1062.

[0103] Device 1050 may perform wireless communication via a communication interface 1066, which may include digital signal processing circuitry if necessary. The communication interface 1066 may provide communication in various modes or protocols, including, among others, GSM® voice calls, SMS, EMS or MMS messaging, CDMA, TDMA, PDC, WCDMA®, CDMA2000 or GPRS. Such communication may be performed, for example, via a radio frequency transceiver 1068. Additionally, short-range communication may be performed using Bluetooth®, WiFi®, or other such transceivers (not shown). Additionally, a GPS (Global Positioning System) receiver module 1070 may provide device 1050 with additional navigation and location-related radio data, which may be used as needed by applications running on device 1050.

[0104] Device 1050 may also perform voice communication using an audio codec 1060 that can receive voice information from the user and convert it into usable digital information. The audio codec 1060 may also similarly generate sounds that are audible to the user, such as through a speaker (e.g., in the handset of device 1050). Such sounds may include sounds from voice telephone calls, recorded sounds (e.g., voice messages, music files, etc.), and sounds generated by applications running on device 1050.

[0105] The computing device 1050 may be implemented in many different forms, as shown in the figure. For example, it may be implemented as a mobile phone 1080. Alternatively, it may be implemented as part of a smartphone 1082, a personal digital assistant, or other similar mobile device.

[0106] Various embodiments of the systems and technologies described herein can be implemented in digital electronic circuits, integrated circuits, specially designed ASICs (application-specific integrated circuits), computer hardware, firmware, software, and / or combinations thereof. These various embodiments may include implementations in one or more computer programs executable and / or interpretable on a programmable system comprising at least one programmable processor, at least one input device, and at least one output device, which may be specialized or general-purpose, coupled to receive data and instructions from and transmit data and instructions to a storage system.

[0107] These computer programs (also known as programs, software, software applications, or code) contain machine instructions for programmable processors and may be implemented in high-level procedural and / or object-oriented programming languages ​​and / or assembly / machine languages. As used herein, the terms “machine-readable medium” and “computer-readable medium” refer to any computer program product, apparatus and / or device (e.g., magnetic disks, optical disks, memory, programmable logic circuits (PLDs)) used to provide machine instructions and / or data to a programmable processor that contains a machine-readable medium that receives machine instructions as machine-readable signals. The term “machine-readable signals” refers to any signals used to provide machine instructions and / or data to a programmable processor.

[0108] To provide user interaction, the systems and technologies described herein may be implemented on a computer having a display device for displaying information to the user (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) and a keyboard and pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. Other types of devices may also be used to provide user interaction; for example, the feedback provided to the user may be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback), and input from the user may be received in any form, including acoustic, spoken language, or tactile input.

[0109] The systems and technologies described herein can be implemented in computing systems that include backend components (e.g., as data servers), middleware components (e.g., application servers), or frontend components (e.g., client computers having a graphical user interface or web browser through which a user can interact with the implementation of the systems and technologies described herein), or in computing devices that include any combination of such backend, middleware, or frontend components. The components of the system can be interconnected by digital data communications (e.g., communication networks) of any form or medium. Examples of communication networks include local area networks ("LANs"), wide area networks ("WANs"), and the Internet.

[0110] A computing system may include a client and a server. Clients and servers are generally geographically distant from each other and typically interact through a communication network. The client-server relationship arises from computer programs that run on each computer and have a client-server relationship with each other.

[0111] Several implementations have been described. Needless to say, it is understood that various modifications can be made without departing from the spirit and scope of the present invention.

[0112] Furthermore, the logic flow shown in the figure does not require a specific sequence, i.e., a sequential order, to achieve the desired result. Additionally, other steps may be added to the described flow, or steps may be removed from the described flow, and other components may be added to the described system, or other components may be removed from the described system. Therefore, other embodiments are within the scope of the following claims.

Claims

1. The correlation device determines that a correlation event has occurred based on the fact that at least the first device and the second device have corresponding directional profiles, The process includes, in response to the occurrence of the correlation event, causing the first device to transfer the state of the first device by sending a state information message to the second device, A method for the first device to send the status information message based on the fact that the first device has been accessed by a user more recently than the second device.

2. Determining that the aforementioned correlation event has occurred means The clustering function is performed on the motion tracked by the accelerometers of the first and second devices, The method according to claim 1, comprising determining that the output of the clustering function indicates that the first device and the second device belong to the same cluster, wherein the devices in the same cluster have corresponding directional profiles.

3. The method according to claim 1, wherein the corresponding directional profile indicates that the motion tracked by the accelerometer of the first device and the motion tracked by the accelerometer of the second device satisfy a motion similarity condition for at least a threshold duration.

4. The correlation device determines that a correlation event has occurred based on the fact that at least the first device and the second device have corresponding directional profiles, The process includes, in response to the occurrence of the correlation event, causing the first device to transfer the state of the first device by sending a state information message to the second device, The first device is associated with the first user, The second device is associated with the second user, A method in which the first user and the second user are included in the same group.

5. The method according to claim 4, wherein the status information message includes the status of games related to the same group.

6. The method according to claim 1, wherein the corresponding directional profile indicates that the motion tracked by the accelerometer of the first device and the motion tracked by the accelerometer of the second device represent the same means of movement.

7. The method according to claim 1, wherein the first device and the second device are associated with the same user.

8. The correlation device determines that a correlation event has occurred based on the fact that at least the first device and the second device have corresponding directional profiles, The process includes, in response to the occurrence of the correlation event, causing the first device to transfer the state of the first device by sending a state information message to the second device, The correlation device is located away from the first device and the second device, in this method.

9. The method according to claim 1, wherein the correlation device is the first device.

10. A program comprising instructions configured, when executed by at least one processor, to cause an electronic device to perform the method according to any one of claims 1 to 9.

11. It is an electronic device, At least one processor, An electronic device comprising a non-temporary computer-readable storage medium storing instructions, wherein when the instructions are executed by the at least one processor, the electronic device causes the electronic device to perform the method according to any one of claims 1 to 9.

12. A method performed by the transmitting device, Detecting correlated events based on the directional profile of the transmitting device corresponding to the directional profile of the receiving device, The process includes, in response to the detection of the correlation event, sending a status information message from the transmitting device to the receiving device, wherein the status information message includes status information relating to at least one application running on the transmitting device. A method in which the transmitting device transmits the status information message based on the fact that the transmitting device has been accessed by a user more recently than the receiving device.

13. Detecting the aforementioned correlated events means The clustering function is performed on the movement tracked by the accelerometers of the transmitting device and the receiving device, The method according to claim 12, comprising determining that the output of the clustering function indicates that the transmitting device and the receiving device belong to the same cluster, wherein the devices in the same cluster have corresponding directional profiles.

14. The method according to claim 12, wherein the transmitting device and the receiving device are associated with the same user.

15. A method performed by a transmitting device, Detecting correlated events based on the directional profile of the transmitting device corresponding to the directional profile of the receiving device, The process includes, in response to the detection of the correlation event, sending a status information message from the transmitting device to the receiving device, wherein the status information message includes status information relating to at least one application running on the transmitting device. The transmitting device is associated with the first user, The receiving device is associated with a second user. A method wherein the first user and the second user belong to the same group.

16. A method performed by a transmitting device, Detecting correlated events based on the directional profile of the transmitting device corresponding to the directional profile of the receiving device, The process includes, in response to the detection of the correlation event, sending a status information message from the transmitting device to the receiving device, wherein the status information message includes status information relating to at least one application running on the transmitting device. A method wherein the transmission of the status information message from the transmitting device to the receiving device is performed in response to the detection of the correlation event and the receipt of a command to turn off the power to a component of the transmitting device.

17. A program including instructions, wherein the instructions, when executed by at least one processor, cause a transmitting device to perform the method according to any one of claims 12 to 16.

18. At least one processor, A transmitting device comprising a non-temporary computer-readable storage medium storing instructions, wherein the instructions are configured to cause the transmitting device to perform the method according to any one of claims 12 to 16 when executed by the at least one processor.

19. A method performed by a receiving device, the method is The method further includes receiving a status information message from a transmitting device, the status information message being transmitted in response to the detection of a correlation event, the correlation event being based on the receiving device and the transmitting device having corresponding directional profiles, This includes updating the state of at least one application running on the receiving device based on the aforementioned state information message, A method in which the transmitting device transmits the status information message based on the fact that the transmitting device has been accessed by a user more recently than the receiving device.

20. The method according to claim 19, wherein the transmitting device and the receiving device are associated with the same user.

21. A method performed by a receiving device, wherein the method is: The method further includes receiving a status information message from a transmitting device, the status information message being transmitted in response to the detection of a correlation event, the correlation event being based on the receiving device and the transmitting device having corresponding directional profiles, This includes updating the state of at least one application running on the receiving device based on the aforementioned state information message, The transmitting device is associated with the first user, The receiving device is associated with a second user. A method in which the first user and the second user are included in the same group.

22. A method performed by a receiving device, wherein the method is: The method further includes receiving a status information message from a transmitting device, the status information message being transmitted in response to the detection of a correlation event, the correlation event being based on the receiving device and the transmitting device having corresponding directional profiles, This includes updating the state of at least one application running on the receiving device based on the aforementioned state information message, The receiving device detects the correlated event, and the method, In response to detecting the aforementioned correlation event, a state information request is sent to the transmitting device, A method further comprising receiving the status information message in response to the status information request.

23. A method performed by a receiving device, wherein the method is: The method further includes receiving a status information message from a transmitting device, the status information message being transmitted in response to the detection of a correlation event, the correlation event being based on the receiving device and the transmitting device having corresponding directional profiles, This includes updating the state of at least one application running on the receiving device based on the aforementioned state information message, The receiving device detects the correlated event, and the method, In response to turning on the power of the components of the receiving device, a status information request is sent to the transmitting device. A method further comprising receiving the status information message in response to the status information request.

24. A program including instructions, wherein when the instructions are executed by at least one processor, a receiving device causes a receiving device to perform the method according to any one of claims 19 to 23.

25. At least one processor, A receiving device comprising a non-temporary computer-readable storage medium storing instructions, wherein, when the instructions are executed by the at least one processor, the receiving device is configured to cause the receiving device to execute the method according to any one of claims 19 to 23.