Ranging between mobile devices

By introducing a ranging circuit into mobile devices and combining BLE protocols, accurate distance measurement and content sharing between mobile devices are realized, and the problem of low efficiency of ranging and content sharing between devices in the prior art is solved, and the speed and accuracy of users selecting the receiver device is improved.

CN119789039APending Publication Date: 2025-04-08APPLE INC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202411836336.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2018-09-28
Filing Date
2019-09-27
Publication Date
2025-04-08

AI Technical Summary

Technical Problem

The prior art is difficult to efficiently realize ranging and content sharing between mobile devices, especially in multi-device environments, making it difficult for users to quickly and accurately select the receiver device.

Method used

By introducing a range measurement circuit in a mobile device, using ultra-wideband (UWB) pulses for time-of-flight measurement, combining Bluetooth low power consumption (BLE) protocol for authentication and setting, the relative distance measurement between devices is realized, and the relative position of the receiving device is displayed through the user interface for selection.

Benefits of technology

It realizes accurate distance measurement and content sharing between mobile devices, improves the speed and accuracy of users' selection of receiver devices, and is suitable for applications such as communication assistance and timely notification in multi-device environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119789039A_ABST
    Figure CN119789039A_ABST
Patent Text Reader

Abstract

The invention relates to ranging between mobile devices. A mobile device may include ranging circuitry to determine a distance from another mobile device. The first wireless protocol may establish an initial communication session to perform authentication and / or exchange ranging settings. A second protocol may perform ranging and other wireless protocols may transmit content. In one example, the distance information may be used to display a relative position of the other device on a user interface of the transmitting device. The user interface may allow a user to quickly and accurately select the recipient device for sending the data item. As another example, the distance information obtained from ranging may be used to trigger output of notifications (e.g., reminders) from the first mobile device or to display a visual indicator on the receiving device. The proximity of the device (e.g., as determined by distance) may be used to suggest the recipient of the new communication.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application is a divisional application of the invention patent application with international application number PCT / US2019 / 053448, international application date September 27, 2019, date of entry into the Chinese national phase March 9, 2021, Chinese national application number 201980058972.7, and invention name “Ranging between mobile devices”.

[0003] This application claims the benefit of U.S. Provisional Application No. 62 / 738,915, entitled “Ranging Between Mobile Devices,” filed on September 28, 2018. The disclosure of this application is incorporated herein by reference in its entirety. Background Art

[0004] Mobile devices (e.g., smart phones) can store a variety of content and perform a variety of functions. Users usually carry their smart phones wherever they go and keep them readily available. However, in today's busy world, users have an increasing demand for such mobile devices to make their lives easier and more productive. Therefore, it is desirable to provide improved functionality (e.g., communication assistance and timely notifications) in mobile devices. Summary of the invention

[0005] According to various embodiments, the mobile device may include a ranging circuit that can determine the relative distance between the mobile devices. For example, an ultra-wideband (UWB) pulse transmitted between the mobile devices can be used to perform a time-of-flight measurement. Ranging can provide distance information that can be used to determine the relative position of another device, such as a distance value and / or angle (orientation) information between the two devices. The ranging function can be implemented in combination with another wireless protocol that can establish an initial communication session, such as to perform authentication and / or exchange ranging settings. Additional wireless protocols can also be used, such as for transferring content from one device to another.

[0006] The distance information obtained from ranging can be used in a variety of ways. For example, the distance information can be used to display the relative position of the receiving mobile device on the screen of the sending mobile device that will send the data item. Such a user interface can allow a user to quickly and accurately select a recipient device for sending a data item, such as a video, audio, or link, to an application, just as it can be used to switch applications at a specific location (e.g., a page) in an application. As another example, the distance information obtained from ranging can be used to trigger the output of a notification (e.g., KILPATRICK TOWNSEND & STOCKTONLLP reminder) from a first mobile device. As yet another example, if the distance information is sufficiently close for two authenticated devices, the distance information can be used to perform a sharing session between the two devices.

[0007] According to some embodiments, proximity information may be used, which may include presence or distance information of neighboring devices as determined using wireless communications. Contact information of neighboring devices belonging to known contacts of the user device may be retrieved, and the proximity of the neighboring devices may be used to suggest recipients for new communications (e.g., new emails or text messages).

[0008] These and other embodiments of the present disclosure are described in detail below.For example, other embodiments relate to systems, devices, and computer-readable media associated with the methods described herein.

[0009] The nature and advantages of the embodiments of the present disclosure may be better understood by referring to the following detailed description and accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] Figure 1 A sequence diagram for performing ranging measurements between two mobile devices according to an embodiment of the present disclosure is shown.

[0011] Figure 2 A sequence diagram of ranging operations involving a mobile device having three antennas according to an embodiment of the present disclosure is shown.

[0012] Figure 3 is a flow chart illustrating a method of performing ranging operations involving two wireless protocols by a first (sending) mobile device and a second (receiving) mobile device according to an embodiment of the present disclosure.

[0013] Figure 4 A sequence diagram showing communications involving BLE and UWB protocols between a transmitting device and a receiving device according to an embodiment of the present disclosure is shown.

[0014] Figure 5 is a block diagram of components of a mobile device operable to perform ranging according to an embodiment of the present disclosure.

[0015] Figure 6 An exemplary sharing scenario is shown in which a mobile device uses ranging to facilitate sharing of a data item with another device according to an embodiment of the present disclosure.

[0016] Figure 7 is a flow chart of a method 700 of sharing data between a sending mobile device and a receiving mobile device according to an embodiment of the present disclosure.

[0017] Figure 8 is a sequence diagram illustrating an exemplary communication sequence for sharing content using three wireless protocols according to an embodiment of the present disclosure.

[0018] Fig. 9 An exemplary notification of a first mobile device using ranging between the first mobile device and a second mobile device according to an embodiment of the present disclosure is shown.

[0019] Fig.10 is a flow chart of a method of providing notifications using ranging operations according to an embodiment of the present disclosure.

[0020] Fig.11A Screen shot showing a communications application providing a list of suggested recipients in response to user input of a character. Fig. 11B Screen shots showing a communications application providing a list of suggested recipients in response to a user starting a new message without user input of characters, according to an embodiment of the present disclosure.

[0021] Fig.12 is a sequence diagram of a process for using proximity to other devices to suggest recipients for communication according to an embodiment of the present disclosure.

[0022] Fig.13 It is shown that a first device according to an embodiment of the present disclosure performs ranging with other devices for suggesting a recipient to a communication application.

[0023] Fig.14 is a flowchart illustrating a method of providing a communication interface to a user according to an embodiment of the present disclosure.

[0024] Fig.15 Techniques for sharing content from one device with another device according to embodiments of the present disclosure are shown.

[0025] Fig.16 is a flow chart showing a method for communication between a first device and a second mobile device according to an embodiment of the present disclosure.

[0026] Fig.17 An exemplary architecture for using ranging information according to an embodiment of the present disclosure is shown.

[0027] Fig.18 is a block diagram of an exemplary device according to an embodiment of the present disclosure. DETAILED DESCRIPTION

[0028] A mobile device may use GPS or other location circuitry to determine the location of the mobile device. For example, a map application may show the approximate location of a mobile device on a map. However, such techniques for determining location are typically relative to some fixed external reference frame rather than a variable reference frame (e.g., another mobile device).

[0029] In some embodiments, a mobile device may include a ranging circuit that can determine the relative distance between the mobile device and another mobile device. For example, time-of-flight measurements can be performed using ultra-wideband (UWB) pulses transmitted between mobile devices. Ranging can provide distance information that can be used to determine the relative position of one mobile device to another mobile device. For example, the relative position can include a distance value, angle (orientation) information, or both between the two devices.

[0030] The ranging functionality may be implemented in combination with another wireless protocol that may establish an initial communication session, such as to perform authentication and / or exchange ranging settings. Additional wireless protocols may also be used, such as for transferring content from one device to another. For example, a video or audio file may be transferred from one device to another after ranging has been performed.

[0031] The distance information obtained from the ranging can be used in a variety of ways. For example, the distance information can be used to display the relative position of the receiving mobile device on the screen of the sending mobile device to which the data item will be sent. Such a user interface can allow a user to quickly and accurately select a recipient device for sending a data item, such as a video, audio, or link, to an application, which can be used to switch applications at a specific location (e.g., a page) in an application.

[0032] As another example, the distance information obtained from the ranging can be used to trigger the output of a notification (e.g., a reminder) from the first mobile device. For example, a first user of the first mobile device may wish to receive a reminder when the first user approaches a second user with a second mobile device. The ranging capability can be used to remind the first user at an appropriate time (e.g., when the two users are talking). Typically, someone may forget to bring up a problem (e.g., a problem with a loan or a work project) until the two users have walked away from each other. Such a reminder function using the distance information obtained from the ranging between the two mobile devices can solve this problem. As another example, a user may wish to issue a notification (e.g., a warning) when the distance between the two devices is greater than a threshold (e.g., when the other device belongs to a child of a parent (who is a user of the first device)).

[0033] As yet another example, the distance information may be used to perform a sharing session between two devices, e.g., if the distance information is sufficiently close for the two authenticated devices. For example, a user may place a first mobile device sufficiently close to a computer and potentially in a particular orientation (e.g., facing up to the left side of the computer) to indicate a desire to share content from the first mobile device with the computer. The content may be transferred, e.g., after authentication and user selection of an indicator (such as a visual indicator or an audio indicator) on / from the computer.

[0034] In some embodiments, proximity information may be used, which may include the presence or distance information of nearby devices as determined using wireless communications. The presence of a contact's device nearby may be used to provide the contact as a suggested recipient for a new communication (e.g., an email or text message).

[0035] I. Distance measurement

[0036] In some embodiments, a mobile device may include circuitry for performing ranging measurements. Such circuitry may include one or more dedicated antennas (e.g., 3) and circuitry for processing the measured signals. The ranging measurements may be performed using the flight time of a pulse between two mobile devices. In some implementations, the round trip time (RTT) is used to determine, for example, distance information for each antenna. In other implementations, a single trip time in one direction may be used. Ultra-wideband (UWB) radio technology may be used to form the pulses.

[0037] A. Sequence diagram

[0038] Figure 1A sequence diagram for performing ranging measurements between two mobile devices according to an embodiment of the present disclosure is shown. The two mobile devices may belong to two different users. The two users may know each other and therefore have each other's phone numbers or other identifiers. As described in more detail later, such identifiers may be used for authentication purposes, for example, so that ranging is not performed using unknown devices. Although Figure 1 A single measurement is shown, but the process may be repeated to perform multiple measurements over a time interval as part of a ranging session, where such measurements may be averaged or otherwise analyzed to provide, for example, a single range value for each antenna.

[0039] The mobile device 110 (e.g., a smart phone) may initiate a ranging measurement (operation) by transmitting a ranging request 101 to the mobile device 120. The ranging request 101 may include a first set of one or more pulses. The ranging measurement may be performed using a ranging wireless protocol (e.g., UWB). The ranging measurement may be triggered in various ways, for example, based on user input and / or authentication using another wireless protocol (e.g., Bluetooth Low Energy (BLE)).

[0040] At T1, the mobile device 110 sends a ranging request 101. At T2, the mobile device 120 receives the ranging request 101. T2 may be an average reception time when the plurality of pulses are in the first group. The mobile device 120 may anticipate the ranging request 101 within a time window based on previous communications (e.g., using another wireless protocol). The ranging wireless protocol and the another wireless protocol may be synchronized so that the mobile device 120 may turn on one or more ranging antennas and associated circuits within a specified time window, rather than having them turned on throughout the ranging session.

[0041] In response to receiving the ranging request 101, the mobile device 120 can transmit a ranging response 102. As shown, the ranging response 102 is transmitted at time T3 (e.g., the transmission time of one pulse or the average transmission time of a group of pulses). T2 and T3 can also be a group of times for corresponding pulses. The ranging response 102 can include the time T2 and T3 so that the mobile device 110 can calculate the distance information. Alternatively, the difference between the two times (e.g., T3-T2) can be sent.

[0042] At T4, mobile device 110 can receive ranging response 102. As with the other times, T4 can be a single time value or a set of time values.

[0043] At 103, the mobile device 110 calculates distance information 130, which may have various units, such as distance units (e.g., meters) or time (e.g., milliseconds). The time may be equivalent to the distance with a scale factor corresponding to the speed of light. In some embodiments, the distance may be calculated from the total round trip time, which may be equal to T2-T1+T4-T3. More complex calculations may also be used, for example, when the time corresponds to a time group of pulse groups and when frequency correction is implemented.

[0044] B. Triangulation

[0045] In some embodiments, the mobile device may have multiple antennas, for example, to perform triangulation. Individual measurements from different antennas may be used to determine a two-dimensional (2D) position, rather than a single distance value that may be generated by any position on a circle / sphere around the mobile device. A 2D position may be specified using various coordinates, such as Cartesian or polar coordinates, where polar coordinates may include both angular and radial values.

[0046] Figure 2 A sequence diagram of ranging operations involving a mobile device 210 having three antennas 211-213 according to an embodiment of the present disclosure is shown. The antennas 211-213 may be arranged to have different orientations, for example, to define a field of view for performing ranging measurements.

[0047] exist Figure 2 In this example, each of antennas 211-213 transmits a packet (comprising one or more pulses) that is received by mobile device 220. These packets may be part of ranging request 201. The packets may each be transmitted at time T1, but in other implementations they may be transmitted at different times.

[0048] In some embodiments, the mobile device 220 itself may have multiple antennas. In such implementations, the antenna of the mobile device 210 may send a packet to a specific antenna of the mobile device 220 (rather than broadcasting), and the specific antenna may respond to the specific packet. The mobile device 220 may listen at a designated antenna so that both devices know which antennas are involved, or the packet may indicate which antenna the message is for. For example, a first antenna may respond to the received packet; and once a response is received, another packet may be sent to a different antenna. This alternative process takes more time and power.

[0049] The three packets of ranging request 201 are received at times T2, T3, and T4, respectively. Thus, one or more antennas (e.g., UWB antennas) of mobile device 220 can listen and respond independently at substantially the same time. Mobile device 220 provides ranging response 202, which is sent at times T5, T6, and T7, respectively. Mobile device 210 receives ranging responses at times T8, T9, and T10, respectively.

[0050] At 203, processor 214 of mobile device 210 calculates distance information 230, for example, as described herein. Processor 214 may receive time from an antenna and more specifically from a circuit (e.g., a UWB circuit) that analyzes signals from antennas 211-213. As described later, processor 214 may be an always-on processor that uses less power than an application processor that may perform more general functions. Distance information 230 may be used to determine a 2D or 3D position of mobile device 220, where such a position may be used to configure a display screen of mobile device 210. For example, the position may be used to determine where to display an icon corresponding to mobile device 220, such as at which position in a list, at which position in a 2D grid, or at which cluster of a 1D, 2D, or 3D distance / position range to display an icon.

[0051] In some embodiments, to determine which ranging response is from which antenna, mobile device 220 may inform mobile device 210 of the order of response messages to be sent, for example, during a ranging setup handshake, which may occur using another wireless protocol. In other embodiments, the ranging response may include an identifier that indicates which antenna sent the message. These identifiers may be negotiated in the ranging setup handshake.

[0052] The messages in ranging request 201 and ranging response 202 may include very little data in the payload, for example, by including very few pulses. Using very few pulses may be advantageous. The environment of a mobile device (perhaps in a pocket) may make measurements difficult. As another example, the antenna of one device may face a different direction than the direction in which other devices are approaching. Therefore, it is desirable to use higher power for each pulse, but there are government restrictions (and battery issues) on how much power can be used within a specified time window (e.g., averaged over 1 millisecond). The length of the packet frames in these messages may be approximately 150 microseconds to 180 microseconds.

[0053] C.UWB

[0054] The wireless protocol used for ranging can have narrower pulses (e.g., narrower full width at half maximum (FWHM)) than the first wireless protocol (e.g., Bluetooth) used for initial authentication or communication of ranging setup. In some implementations, the ranging wireless protocol (e.g., UWB) can provide a distance accuracy of 5 cm or better. In various embodiments, the frequency range can be between 3.1 GHz and 10.6 GHz. Multiple channels can be used, for example, one channel at 6.5 GHz and another channel at 8 GHz. Therefore, in some cases, the ranging wireless protocol does not overlap with the frequency range of the first wireless protocol (e.g., 2.4 GHz to 2.485 GHz).

[0055] The ranging wireless protocol may be specified by IEEE 802.15.4, which is a type of UWB. Each pulse in a pulse-based UWB system may occupy the entire UWB bandwidth (e.g., 500 MHz), allowing the pulse to be localized in time (i.e., narrow width in time, e.g., 0.5 nanoseconds to a few nanoseconds). In terms of distance, for a 500 MHz wide pulse, the pulse may be less than 60 cm wide, and for a 1.3 GHz bandwidth pulse, the pulse may be less than 23 cm. Because the bandwidth is so wide and the width in real space is very narrow, very accurate time-of-flight measurements may be obtained.

[0056] Each of the ranging messages (also referred to as frames or packets) may include a pulse sequence that may represent modulated information. Each data symbol in a frame may be a sequence. A packet may have a preamble that includes, for example, header information of a physical layer and a MAC layer, and may include a destination address. In some implementations, a packet frame may include a synchronization portion and a start frame delimiter that may be timed to line up.

[0057] The packet may include information on how to configure security and include encryption, for example, an identifier of which antenna sent the packet. The encrypted information may be used for additional authentication. However, for ranging operations, it may not be necessary to determine the content of the data. In some embodiments, the timestamp of the pulse of a particular data slice can be used to track the difference between transmission and reception. The content (e.g., decrypted content) can be used to match pulses so that the correct time difference can be calculated. In some specific implementations, the encrypted information may include an indicator of which phase the authentication message corresponds to, for example, ranging request 201 may correspond to phase 1, and ranging response 202 may correspond to phase 2. Such use of indicators may be helpful when more than two devices perform ranging operations near each other.

[0058] Narrow pulses (e.g., widths of about 1 ns) can be used to accurately determine distances. High bandwidth (e.g., a 500 MHz spectrum) allows narrow pulses and accurate position determination. Cross-correlation of pulses can provide timing accuracy that is a fraction of the pulse width, for example, providing accuracy within hundreds or tens of picoseconds, which provides sub-meter ranging accuracy. The pulses can represent ranging waveforms that add 1 and subtract 1 in a certain pattern that is recognized by the receiver. Distance measurements can use round-trip time measurements, also known as time-of-flight measurements. As described above, a mobile device can send a set of timestamps, which can eliminate the need for clock synchronization between the two devices.

[0059] II. Setup and ranging using two protocols

[0060] As described above, two wireless protocols can be used. A first wireless protocol (e.g., BLE or other Bluetooth) can be used to implement the authentication and setup phase. A second (ranging) wireless protocol can be used to perform ranging measurements. Thus, a first wireless protocol link between a mobile device (e.g., a phone, tablet, or watch) and another mobile device can be used for authentication and then used to initiate and control a second wireless protocol (e.g., UWB) for ranging and exchanging distance information. For example, the first wireless protocol can provide a low-power framework to negotiate security keys, ranging intervals, and initiate ranging over UWB.

[0061] A. Flowchart

[0062] Figure 3 3 is a flow chart illustrating a method 300 of performing ranging operations involving two wireless protocols by a first (sending) mobile device and a second (receiving) mobile device according to an embodiment of the present disclosure. The first wireless protocol (e.g., Bluetooth) may be used for authentication, and the second wireless protocol (e.g., UWB) may be used for ranging measurements.

[0063] At block 310, the mobile device transmits a notification using a first wireless protocol (e.g., BLE). The mobile device may transmit notifications at a particular rate and scan for notifications from other mobile devices at a particular rate. The notification may include an authorization tag for each mobile device to authenticate each other (e.g., confirm that they are registered with a third party (such as the manufacturer of the mobile device)). Such a third party (also referred to as an authentication server) may use an identifier from the mobile device (or from a user of the mobile device) to generate an authentication tag and provide it to the mobile device, which may then transmit the authentication tag in the form of a notification. As an example, a hash function may be used to generate the authentication tag.

[0064] As an example, an identifier that is an authentication tag or used to generate an authentication tag may include an identification address (e.g., a media access control (MAC) address). For example, each mobile device may use a unique 48-bit address. The authentication tag may be updated periodically. The notification may also include an ID associated with the authentication tag (e.g., to retrieve additional information, such as a public certificate) and one or more commands (e.g., to wake up the receiving mobile device).

[0065] At block 320, the mobile device is authenticated using the first wireless protocol. For example, the receiving mobile device may detect the announcement and obtain an authentication tag. The authentication tag may be compared to a list of authentication tags stored on the mobile device (e.g., corresponding to a list of contacts). When the mobile device adds a contact, the corresponding authentication tag may be obtained from the authentication server. The mobile device may then detect when the announcement includes an authentication tag that is already stored on the mobile device. In some implementations, the new authentication tag may be sent to the authentication server to confirm that the identifier and the authentication tag match.

[0066] In response to authentication by the receiving mobile device or authentication in notification mode generally, the receiving mobile device may also send a notification including an authentication tag. In other embodiments, no authentication is performed.

[0067] As part of the communication using the first wireless protocol, a secure communication channel can be established so that messages can be encrypted. For example, the communication can result in a shared key being saved on both devices, where the shared key can be used for future authentication (e.g., via a challenge response) and / or encryption of messages between the mobile devices.

[0068] At block 330, the mobile devices may exchange ranging capabilities (settings) using the first wireless protocol. The exchange of ranging capabilities may ensure that the two devices perform signaling between the mobile devices in a consistent manner. Such an exchange may allow the mobile devices to adapt to new devices, such as devices with different numbers and types of antenna elements. Exemplary ranging capabilities may include specifying a format for ranging messages between mobile devices, a frequency range to be used, a number of antenna elements per device, and an encryption protocol for ranging messages using the second wireless protocol.

[0069] At block 340, ranging may be initiated using the first wireless protocol. In some implementations, initiation may be initiated by a ranging request message sent from the sending mobile device. The responding device may respond with a start notification event (message). Once the start notification event occurs, ranging may be performed using the second wireless protocol, for example, by turning on the corresponding radio within a specified time of receiving the start message. Such coordination between the first wireless protocol and the second wireless protocol may synchronize the devices so that the antenna of the second protocol does not have to be constantly on, thereby saving power.

[0070] At block 350, ranging may be performed using a second wireless protocol (e.g., UWB). After initiating a signal using the first wireless protocol, the receiving device may begin scanning for ranging signals at a specified time using one or more antennas corresponding to the second wireless protocol. The one or more antennas may receive one or more ranging request messages and send one or more ranging response messages.

[0071] Circuitry of the receiving device may perform various levels of processing of such ranging messages, such as to determine a timestamp. The transmitting device may receive the ranging response message and determine a timestamp for transmitting one or more ranging request messages and a timestamp for transmitting one or more ranging response messages, such as Figure 1 and Figure 2 The sending device can use these times to determine the distance between the mobile devices. This ranging can be performed once, a specified number of times, or continuously until a stop ranging request is processed.

[0072] The mobile device may have multiple antennas for a first wireless protocol (e.g., various forms of Bluetooth (BT), such as BLE). BT may use short wavelength ultra-high frequency (UHF) radio waves in the ISM band from 2.4 GHZ to 2.485 GHz. Certain modes of the first wireless protocol may be used over a relatively long range. For example, a BT radio may increase the communication range by using lower packet encoding of 125 kbps or 500 kbps and by increasing the maximum transmission power (e.g., to +20 dBm). Such a radio may be used for both announcements and data packets and provides a range of up to 100 meters, rather than a low power mode that may only operate up to 20 meters.

[0073] Therefore, if a user is approaching another mobile device moving at a rate of 1.5 m / s, a range of 100 m will still provide enough time to authenticate and negotiate ranging parameters, as well as send a ranging start message. This extra time to establish communications may be advantageous when there may be interference from other devices, which may otherwise delay detection of the mobile device and the start of ranging.

[0074] However, the duration of these packets can be about 2 to 8 times longer, for example up to about 16 milliseconds, which does not make them suitable for ranging. One microsecond pulse provides a range of + / - 300 meters. And even the pulses provided by the conventional BT power mode are not suitable for ranging.

[0075] B. Sequence diagram

[0076] Figure 4A sequence diagram of communication involving BT and UWB protocols between a transmitting device 410 and a receiving device 420 according to an embodiment of the present disclosure is shown. The mobile device may be in a screen-off state or being used by a user. Certain steps of the sequence diagram may be optional.

[0077] At 401, the BLE antenna 411 of the transmitting device 410 transmits a notification signal, and the BLE antenna 421 transmits a notification signal. These devices can broadcast notification signals at a specified duty cycle without requiring the user to provide any user input. As shown, the notification signal includes device information and an authentication tag. The device information may correspond to information about the device, such as the type of device (e.g., a watch, tablet, or phone), the state of the device (e.g., whether it is unlocked or oriented, such as on the wrist or in a pocket), and the version of the protocol or other software. These devices can also scan at a certain duty cycle. Authentication can be performed as part of 401.

[0078] Each device registered with the authentication server may have a unique authentication tag. In various embodiments, the authentication tag may involve the use of public keys, certificates, and digital signatures. For example, a device may store a person's public key in its contact list and may use the public key to authenticate a digital signature from the sending device. In other embodiments, a shared cryptographic key may be used for encryption and decryption (or generation and verification of digital signatures) rather than using asymmetric public and private keys.

[0079] At 402, an event is detected at a sending device 410. As one example, the event may be user input, such as an indication of an intent to share data. As another example, the event may be detection of a notification from a receiving device (which is tracked by the sending device), such as to provide a reminder to a user of the sending device. More details on such examples will be provided later.

[0080] At 403, the BLE antenna 411 transmits and scans at a higher duty cycle. The increased advertising and scanning can be part of a discovery process for two devices to detect each other so that a connection can be created. For example, if the transmitting device 410 detects an input that a ranging operation has been requested or may be requested, the increased advertising / scanning can provide a faster establishment of a communication session using the first wireless protocol.

[0081] At 404, the sending device 410 and the receiving device 420 use the authorization tag to authenticate the other device. The authentication by the two devices can be performed at different times or at the same or similar times. The authentication can be performed after subsequent steps, such as after the transmission of the notification (405) and ranging request message (407) with ranging settings has begun. At this point, the BLE connection can be considered to be established between the two devices.

[0082] In some embodiments, as part of establishing a BLE connection, each device may obtain a key for performing encrypted (secure) communications. If a connection was previously established, the key may be reused. The authentication tag may be used to retrieve the stored key in order to perform encryption / decryption of future BLE messages.

[0083] At 405, the BLE antenna 411 transmits a notification signal including an action command (e.g., an action command requesting ranging) and one or more ranging settings. The notification may also include an authentication tag. As shown, the ranging settings include rate, dt_tx, and N. The rate may specify a time (e.g., 300ms for the default transmission / scan rate, or 30ms for the increased transmission / scan) and N may specify a multiple, thereby providing a time delay between each ranging request message. The time offset dt_tx specifies the time after the notification signal of the ranging request message is sent. In this way, the receiving device 420 knows when the UWB antenna 422 should be turned on. This notification signal may be sent after the transmitting device 410 has performed authentication and potentially after the receiving device 420 confirms that its authentication has been performed. In some embodiments, the action command in the notification may cause the processor of the receiving device 420 to be awakened or at least cause the UWB circuit (or another circuit of the first wireless protocol) to be initialized.

[0084] The announcement in 405 may be considered part of a ranging setup handshake. In some embodiments, the receiving device 420 may send a message to the sending device 410 acknowledging receipt of the ranging settings or potentially proposing a change to the settings. The ranging setup handshake may include the ranging capabilities of both devices. Information about the UWB antennas may be provided, as different devices may have different numbers of UWB antennas, or a device may only want to connect a few. A coarse ranging may be performed first, with more refined ranging using more UWB receivers after the mobile device is closer. Other settings / parameters may be provided between ranging operations, for example as part of a dynamic decision or update of software or physical components.

[0085] Other examples of ranging capabilities include multiple antennas, the locations of these antennas (e.g., the relative distance between the antennas), how many antennas to use, encryption protocols, packet formats, operating modes, and supported frequency ranges. Such capabilities may reflect software updates to either device, resulting in new or different capabilities. The ranging setup handshake may include a negotiation on how to perform ranging, such as the frequency of ranging or the way ranging is scheduled (e.g., when there are multiple receiving devices - round-robin, one at a time, or other options). The sending device may know that it is connected to three different devices, so the mobile device may want to perform a lower rate distance measurement (e.g., 25 milliseconds) for each device or schedule a specific time / frequency to perform ranging with each device. The duty cycle of the UWB radio device in the on state may be specified, for example, 1KHz or 10KHz. For example, when a start message is received, the device may agree to start ranging 100 milliseconds (or 90 milliseconds for additional margin) after the announcement at 405, and then measure the distance once every 1KHz.

[0086] The ranging setup handshake may also manage encryption of UWB messages, for example, by deriving a new set of session keys for UWB ranging. The keys may be updated periodically, for example, for each session or every Nth session. In some embodiments, the session keys may be derived from a common shared key in a challenge-response for authentication, where the derivation uses a default or negotiated process. Thus, the ranging setup handshake may serve as a control channel to inform the receiving device of the expectation regarding ranging. The ranging setup handshake message may specify a target address to avoid confusion with any other nearby devices.

[0087] At 406, the receiving device 420 initiates an action to turn on the UWB antenna 422 or multiple UWB antennas. Such initial steps may prepare some circuits so that the UWB antenna 422 is in a ready state, but potentially not fully turned on. This may be the first time that the receiving device 420 is able to decode an announcement signal with ranging settings. Such decoding may occur after the receiving device 420 is able to authenticate the sending device 410 by a previous announcement signal.

[0088] At 407, the transmitting device 410 uses the UWB antenna 412 to send a ranging request message. The ranging request message is sent dt_tx milliseconds after the announcement signal in 405. The receiving device 420 knows the timing offset and can therefore turn on the UWB antenna 422 within the time window after the announcement has been detected in 405. Other ranging request messages may have been previously sent without being detected by the receiving device 420. For ease of illustration, only one ranging request message is shown. Other announcements may also have been sent before 405, but not detected by the receiving device 420. The ranging request message may specify a target address for the receiving device 420, which may allow other nearby devices to respond to the ranging request message.

[0089] At 408, the receiving device 420 sends a ranging response message using the UWB antenna 422. The ranging response message may include, for example, Figure 1 and Figure 2 The time described.

[0090] At 409, the transmitting device 410 determines the distance information using the time of sending the ranging request message, the time in the ranging response message, and the time of receiving the ranging response message. Figure 1 and Figure 2 Example techniques for determining distance information are described.

[0091] In some embodiments, a frequency correction may be determined. For example, a frequency offset of the receiving oscillator (clock) relative to the transmitting oscillator may allow the distance to be determined within a fairly accurate range, for example, down to about 20, 30, or 40 cm. In terms of using a frequency offset, the transmitting device may broadcast that its clock is running at a specific rate, for example, on a specific channel (such as 5 or 9). The resulting frequency error can be used to correct for relative clock drift rates between clocks, which can improve accuracy. Other concepts may use additional messages to further improve the accuracy of ranging measurements, for example, as described in U.S. Patent Publication 2019 / 0135229, which is incorporated in its entirety for all purposes.

[0092] Further ranging may be performed. For example, more than one distance may be determined, which may be used to determine a trajectory, determine greater accuracy, or confirm that the two devices are within a stable proximity of each other (e.g., estimating that the two users are interacting with each other, as may occur during a meeting or conversation). Such information about stable proximity may be used to trigger an alert.

[0093] C. Exemplary Ranging Protocol

[0094] An exemplary format of a ranging service message format may provide a code (e.g., one octet long) indicating the type of message. A length field (e.g., two octets long) may indicate the size of the data field of the message in octets, which may not include the code and length fields. The length of the data field may vary. Thus, the code field may determine the format of the data field, and the length field may indicate the length of the data field.

[0095] A ranging setup (capability) handshake may be initiated at the beginning of each connection to exchange the status of the UWB devices on the mobile device. The ranging capability request message may have a specific ID code (e.g., 1). Some exemplary parameters of this message include supported feature masks, required feature masks, software version, link identifier, number of UWB radios, and UWB device descriptor.

[0096] The software version parameter may indicate the current ranging software version running on the initiator device. The link identifier may be a random number that allows the responder to match the received UWB packet to the BT connection with the initiator. Thus, the link identifier may be included in the UWB message.

[0097] The mobile device may maintain two feature masks: a supported feature mask and a required feature mask. The supported feature mask may indicate supported features. The feature mask parameter may be a bit mask of all features. For each feature, a single bit may be specified, for example, set to 1 if the feature is supported, otherwise set to 0. Exemplary features are secure ranging, 1 to 1 ranging (e.g., 1 device to 1 device), and 1 to many ranging. The required feature mask may indicate required features. For example, support for secure ranging and 1:1 ranging may be mandatory.

[0098] The UWB device descriptor may have one entry for each available UWB antenna device (e.g., an antenna or a node with more than one antenna). The feature request message may have one UWB device descriptor entry for each UWB device on the initiating device. Each of the UWB antenna devices may be characterized by a UWB device descriptor with the following parameters: Firmware Version - the version of the current UWB firmware; Hardware Version - the version of the current UWB hardware; Manufacturer Name - the name of the UWB manufacturer. The number of available UWB devices may be specific to a particular ranging session. The link identifier may map a BT link to a UWB packet.

[0099] The ranging capability response message may be similar to the ranging capability request message. A responder may be specified to send the message. If the responder does not support any of the features listed in the required features of the ranging capability request message, then the responder may respond with an additional ranging command completion message with a "feature not supported" error code. The ranging capability response message may include the following parameters: supported features, software version, number of UWB devices, and UWB device descriptor.

[0100] III. Mobile device for performing ranging

[0101] Figure 5 1 is a block diagram of components of a mobile device 500 operable to perform ranging according to an embodiment of the present disclosure. The mobile device 500 includes antennas for at least two different wireless protocols as described above. A first wireless protocol (e.g., Bluetooth) can be used to authenticate and exchange ranging settings. A second wireless protocol (e.g., UWB) can be used to perform ranging with another mobile device.

[0102] As shown, mobile device 500 includes a UWB antenna 510 for performing ranging. UWB antenna 510 is connected to UWB circuit 515, which is used to analyze detected signals from UWB antenna 510. In some embodiments, mobile device 500 includes three or more UWB antennas, such as for performing triangulation. Different UWB antennas may have different orientations, such as where two antennas are in one direction and the third antenna is in another direction. The orientation of the UWB antenna can define the field of view for ranging. As an example, the field of view can span 120 degrees. Such provisions can allow determination of which direction a user is pointing the device relative to one or more other nearby devices. The field of view may include any one or more of a pitch angle, a yaw angle, or a roll angle.

[0103] The UWB circuitry 515 may communicate with an always-on processor (AOP) 530, which may use information from the UWB messages to perform further processing. For example, the AOP 530 may perform ranging calculations using timing data provided by the UWB circuitry 515. The AOP 530 and other circuitry of the device may include dedicated circuitry and / or configurable circuitry, such as via firmware or other software.

[0104] As shown, the mobile device 500 also includes a BT / WiFi antenna 520 for transmitting data to other devices. The BT / WiFi antenna 520 is connected to a BT / WiFi circuit 525, which is used to analyze the detected signal from the BT / WiFi antenna 520. For example, the BT / WiFi circuit 525 can parse the message to obtain data (e.g., an authentication tag), which can be sent to the AOP 530. In some embodiments, the AOP 530 can use the authentication tag to perform authentication. Therefore, the AOP 530 can store or retrieve a list of authentication tags to compare the received tags with, as part of the authentication process. In some specific implementations, such functions can be implemented by the BT / WiFi circuit 525.

[0105] In other embodiments, the UWB circuitry 515 and the BT / WiFi circuitry 525 may alternatively or additionally be connected to an application processor 540, which may perform similar functions as the AOP 530. The application processor 540 typically requires more power than the AOP 530, and thus power may be saved by having the AOP 530 handle certain functions so that the application processor 540 may remain in a sleep state, such as a disconnected state. For example, the application processor 540 may be used to transmit audio or video using BT / WiFi, and the AOP 530 may coordinate the transmission of such content and the communication between the UWB circuitry 515 and the BT / WiFi circuitry 525. For example, the AOP 530 may coordinate the timing of UWB messages relative to BT announcements.

[0106] The coordination performed by AOP 530 can have various benefits. For example, a first user of a sending device may wish to share content with another user, so ranging with the other user's receiving device may be desirable. But if many people are in the same room, the sending device may need to distinguish a particular device among multiple devices in the room, and potentially determine which device the sending device is pointing at. Such functionality can be provided by AOP 530. In addition, it is not desirable to wake up the application processor of each other device in the room, so the AOPs of the other devices can perform some processing of the message and determine that the target address is for a different device.

[0107] To perform ranging, the BT / WiFi circuit 525 may analyze the advertising signal from the other device to determine that the other device wants to perform ranging, for example, as part of a process for sharing content. The BT / WiFi circuit 525 may communicate the notification to the AOP 530, which may schedule the UWB circuit 515 to be ready to detect a UWB message from the other device.

[0108] For the device that initiates the ranging, its AOP can perform the ranging calculation. In addition, the AOP can monitor changes in the distance between another device. For example, the AOP 530 can compare the distance with a threshold and provide an alert when the distance exceeds the threshold, or potentially provide a reminder when the two devices become close enough. An example of the former might be a situation where a parent expects to receive an alert when the child (and possibly the child's device) is too far away. An example of the latter might be a situation where someone expects to be reminded to mention something when talking to the user of another device. Such monitoring by the AOP can reduce the power consumption of the application processor.

[0109] IV. Sharing Data Based on Scope

[0110] A user of one mobile device may want to share data (e.g., a video or audio file) with another user. The user can attach the file to an email and send it, but this can be slow and expose the data to the network. Therefore, it may be advantageous to send the data directly to another device, for example, using Bluetooth or WiFi Direct (also known as peer-to-peer mode or ad-hoc mode), or at least only through a local access point / router. For example, the user's device can detect other nearby devices and display them as options for sharing data.

[0111] Sharing data in this way can be problematic when there are multiple devices nearby. For example, if two people (i.e., the sender and the receiver) are in a crowd, the discovery process can identify multiple devices. If multiple devices are displayed as options, their icons may be difficult to display on a single screen, causing confusion for users who want to quickly select a friend's device. Icons of other devices that appear in the contact list of the sending device can only be displayed. This can limit the number of devices displayed as options for sending data. However, this requirement can limit the ability to share data with new people. Moreover, the requirement of being in the contact list does not solve the situation where the user is among many friends, colleagues, etc., all or many of whom are in the contact list. The implementation scheme can use ranging to facilitate this process.

[0112] A. Exemplary Sharing Scenarios

[0113] Figure 6 An exemplary sharing scenario is shown in which a mobile device according to an embodiment of the present disclosure uses ranging to facilitate sharing of a data item with another device. The data item can be a variety of things, such as contacts, audio files, images, video files, deep links to locations in applications installed on both devices, etc. The sharing session can be initiated by a user 610 using a sending device 615.

[0114] User 610 can initiate a sharing session on sending device 615 in a variety of ways. For example, user 610 can select a data item and then select a share option (e.g., a button on a GUI) to share the data item. Selecting a share option can start the sharing process, such as Figures 1 to 4 described.

[0115] Advertisements may be sent from these devices and used for authentication. The sending device 615 may authenticate each of the devices 625, 635, and 645. Once authenticated, the sending device 615 may perform ranging operations with each of these devices, which may respond with ranging information, as shown.

[0116] The transmitting device 615 may use the range information to determine distance information, such as the relative position of other devices. For example, if the transmitting device 615 includes multiple antennas (e.g., 3), the transmitting device 615 may determine the position of each of these devices relative to the transmitting device 615 on the 2D grid. As another example, the transmitting device 615 may determine a single distance value to each of these devices, where the devices may be sorted by the distance in the list. The transmitting device 615 may use the distance information to configure the display on the screen of the transmitting device 615. For example, the position may be used to determine where to display an icon corresponding to the mobile device 220, such as at which position in the list, at which position in the 2D grid, or at which cluster of a 1D, 2D, or 3D distance / position range to display the icon.

[0117] User 610 can select which device to send the data item. As shown, device 635 is selected. This selection can be made in various ways, for example, by touching an icon representing receiving device 635, which can be a picture of user 630. In other embodiments, user 610 can point sending device 615 at receiving device 635 to achieve selection. For example, a device along the central axis pointed from the sending device can be automatically selected as the recipient of the data item. In this way, user 610 can easily see the available devices and select the desired device.

[0118] In some embodiments, the user can control which other devices can find them and perform ranging, or whether the device will allow sharing. For example, the user can limit such operations to those in the contact list or a subset of those in the contact list. And, as described herein, authentication can be performed without providing private information in plain text, for example, any such private data can be encrypted or otherwise obfuscated. For example, a hash of an identifier can be used as a first authentication tag, or a public certificate and / or digital signature can be used. For example, an authentication server can issue a hash, a digital signature, a public certificate, etc., so that the device can match the authentication tag with a device that has been previously encountered (e.g., in a contact list) or at least know that the device has been registered and / or authenticated by the authentication server. The authentication server can provide an authentication tag for each device in the contact list. As another example, such an authentication tag (e.g., a hash) can be generated by a first device (e.g., when registering) and sent to an authentication server, which can distribute these authentication tags to other devices with the first device or related identifiers in its contact list.

[0119] B. Methods used to share content

[0120] Figure 7700 is a flow chart of a method 700 for sharing data between a sending mobile device and a receiving mobile device according to an embodiment of the present disclosure. The method 700 may be used to determine the spatial relationship of other devices to the sending mobile device, and use the spatial relationship to facilitate a user to select one or more devices to share data items. The method 700 may be performed by any device acting as a sending device.

[0121] At block 705, the sending mobile device stores the data item in memory. The data item can be of any type, some examples of which are provided herein. For example, the data item can be a picture or other image, video, or text file (e.g., contact information, a link to a web page, a link to an application, GPS coordinates, etc.) stored in any suitable file format. The data item can be stored in a variety of locations in memory (e.g., RAM, flash memory, hard drive, etc.).

[0122] At box 710, the user interface of the sending mobile device receives user input indicating a sharing session. The user input may vary. For example, the user may select a share button on the screen corresponding to the data item. As another example, the user may provide a voice command such as "share item" or "send item". The user interface may take various forms, for example, icons corresponding to different users may be placed at different locations on the screen. These locations may vary depending on the relative position of the receiving mobile device to the sending mobile device (e.g., relative to the pointing direction of the sending mobile device). For example, the location may be shown as a point around a circle corresponding to the sending mobile device.

[0123] At box 715, the sending mobile device transmits (e.g., broadcasts) a notification signal including a first authentication tag of the sending mobile device via a first wireless protocol. The sending mobile device can initiate communication, or the receiving mobile device can initiate communication. Therefore, the notification signal sent by the sending mobile device can be responsive to a signal (message) from the receiving mobile device. For example, the sending mobile device can detect neighboring devices, store their information (e.g., contact information), and then transmit the first authentication tag after the user input indicates a shared session. Examples of authentication tags are provided herein, such as a unique identifier, a hash, a shared key, a digital signature, a public certificate, or a cryptographic key, such as a public key or a shared key used by two devices. Examples of the first wireless protocol include Bluetooth and Wi-Fi.

[0124] At block 720, a second authentication tag of the receiving mobile device is received from the receiving mobile device via the first wireless protocol. The second authentication tag may be of a similar type to the first authentication tag, but may be different. The second authentication tag may be received in response to the announcement signal sent at block 715. In another specific implementation, the second authentication tag may be received prior to block 715, for example as described above. Also with respect to Figure 3 and Figure 4Example techniques for authentication are described.

[0125] At box 725, the second authentication tag is used to authenticate the receiving mobile device. Similarly, the receiving mobile device can use the first authentication tag to authenticate the sending mobile device. The authentication process can be performed in various ways. For example, the authentication tag can be a digital signature of a portion of a payload that can be received with the authentication tag. The digital signature can then be decrypted using a public key to match the payload. As another example, the device can store the authentication tag in conjunction with a user / device identifier (which can be included in the payload of the message), and the received authentication tag can be compared to the stored authentication tag corresponding to the received user / device identifier. Other examples of authentication are provided herein.

[0126] At block 730, one or more ranging settings are communicated with a receiving mobile device using a first wireless protocol to perform a ranging operation using a second wireless protocol. Exemplary ranging settings may include an indicator that ranging is to be performed, a rate (e.g., a transmission rate) of ranging signals and / or request messages, a time offset, a delay between ranging signals and ranging request messages, and a multiple for the time delay. An exemplary second wireless protocol is UWB. Such ranging settings may be specified by a template number, which, for example, specifies an ID number of a ranging settings index set that has been stored at another device. Once the ranging settings are received, the ranging operation may be performed.

[0127] At block 735, a first set of one or more pulses in a ranging request message is transmitted to a receiving mobile device according to one or more ranging settings using a second wireless protocol. Figures 1 to 4 The second wireless protocol may use a pulse width smaller than the pulse width used by the first wireless protocol, for example, UWB may be used.

[0128] At block 740, the transmitting mobile device receives a second set of one or more pulses in one or more ranging response messages from the receiving mobile device using a second wireless protocol. The second set of pulses may correspond to Figure 1 , Figure 2 and Figure 4 The response message may include information, such as any timing information, such as the reception time of the first set of pulses and the transmission time of the second set of pulses, which may be provided as a delay time.

[0129] At block 745, distance information corresponding to the one or more transmission times of the first group of one or more pulses and the one or more reception times of the second group of one or more pulses is determined. The distance information may have various units, such as distance units (e.g., meters) or time (e.g., milliseconds), as described herein. The distance information may include radial and angular information derived, for example, by using triangulation.

[0130] At block 750, the sending mobile device receives a selection of a receiving mobile device via a user interface to share the data item. The user interface may include various modes, such as audio interference, a gesture interface, a touch interface, etc. The selection may be made based on the distance information. For example, the selection of the receiving mobile device may be determined based on the orientation of the sending mobile device and the receiving mobile device as determined using the distance information. Such orientation may be determined based on the 2D or 3D relative position of the two devices that may be determined using measurements from multiple antennas.

[0131] In another example, the screen of the transmitting device may display an icon corresponding to the receiving mobile device. The icon may be displayed at a position on the screen based on the distance information. For example, the position may be used to determine where to display the icon corresponding to the mobile device 220. The position may be an order in a list (e.g., sorted by distance). The position may be on a 2D grid, for example, where the lateral position is determined using timing from multiple antennas. As another example, the positions of different devices may be aggregated, for example, based on a one-dimensional distance value (similar to a list but with a group of devices within a range) or a 2D / 3D position range where the icon is to be displayed. The selection of the receiving mobile device may be received at the icon on the screen, for example, by the user tapping the icon.

[0132] In some implementations, the icon may be displayed at the position on the screen by comparing the distance of the distance information to a threshold and displaying the icon when the distance is less than the threshold. In this way, only devices that are sufficiently close may be displayed. Such a threshold may be user-defined or default. The threshold may depend on other settings, such as in the contact list of the sending device.

[0133] In other specific implementations, the icon can be displayed at the location on the screen by using the distance information to determine the physical location (e.g., 2D or 3D location) of the receiving mobile device relative to the sending mobile device. Therefore, the physical location can be displayed on a grid (e.g., a pixel grid) based on the coordinates of the physical location. Therefore, the location can correspond to a two-dimensional coordinate on the screen. In another example, the location can be selected from a set of locations, such as a pre-assigned or already determined list or predetermined location in a cluster. Therefore, the physical location can include a distance, wherein the location is a location in a list of multiple mobile devices, each mobile device having an associated distance. The list can be sorted by distance.

[0134] At block 760, the data item is transmitted in response to the selection of the receiving mobile device. The data item may be transmitted via the third wireless protocol or the first wireless protocol. As an example, the first wireless protocol may be Bluetooth low energy, the second wireless protocol may be ultra-wideband (UWB), and Wi-Fi may be used to transmit the data item. The transmission of the data item may also be in response to other actions. For example, the user may identify the receiving mobile device before specifying the data item. Thus, the data item may be sent after the data item is selected while still in response to the selection of the receiving mobile device.

[0135] C. Encrypted ranging and sharing

[0136] There may be one or more higher security levels, for example as determined by the type of data being shared. For example, sharing information about a person (e.g., a phone number or address of a contact in a mobile device) may necessitate a higher level of security. An encrypted ranging session between the two devices may confirm that the two devices are in proximity. The shared key may be used for cross-correlation to obtain the appropriate information (e.g., the same waveform) from the ranging message.

[0137] When the devices have not communicated before, using encryption keys can be difficult. Establishing a secure connection between two new devices can use Diffie-Hellman key exchange (e.g., as in TLS (Transport Layer Security)), but such a process can require network access and is time consuming, and is not suitable for use with UWB. Instead, a pin code can be provided by one device and entered at the other device. Such a pin code can be in text, embedded in audio, or in an image or video output by one device and captured by the other. However, such an extra step can be cumbersome for the user.

[0138] Some embodiments may use an identifier stored in a circuit (e.g., in a UWB circuit). Thus, the chip may be associated with a specific mobile device. Server-side certificates may be shared or stored on the device. BLE communications may use these certificates to determine that the device has been authenticated by the server. Then, if ranging confirms that the devices are close, data may be shared, for example, using encryption techniques such as public key encryption or Diffie-Hellman.

[0139] V. Communication Sequence for Sharing Content

[0140] The sharing of content can use three different wireless protocols, such as described above. A first wireless protocol (e.g., BLE) can be used for authentication and sharing ranging settings. A second wireless protocol (e.g., UWB) can be used to perform ranging operations to obtain distance information from a sending mobile device to other mobile devices. A third wireless protocol (e.g., Wi-Fi or Bluetooth) can be used to transmit a data item from a sending mobile device to a receiving mobile device that has been selected to receive the data item. Some embodiments can coordinate circuits for each of these wireless protocols. In addition, the circuit can operate in response to other actions (e.g., a user action to initiate a sharing session).

[0141] Figure 8 is a sequence diagram illustrating an exemplary communication sequence for sharing content using three wireless protocols according to an embodiment of the present disclosure. Figure 8 Aspects of the sequence diagram in can be described with Figure 4 8. The communication involves a sending device 810 and a receiving device 820. The devices may always use a first wireless protocol (e.g., BLE) to advertise and scan (potentially at different rates). The duty cycle of such advertising and scanning may vary depending on the state of the devices, such as whether the devices are being actively used (which may be equivalent to leaving the backlight on).

[0142] The transmitting device 810 includes a BLE circuit 811, a UWB circuit 812, and a Wi-Fi circuit 813. The receiving device 820 includes a BLE circuit 821, a UWB circuit 822, and a Wi-Fi circuit 823. The communication between the different circuits of the device can be performed by a processor such as Figure 5 Coordinated with one or more processors (such as AOP 530) in the system.

[0143] At 801, a user initiates a sharing session on a sending device 810. An exemplary manner of initiating a sharing session is described herein, such as by selecting an option displayed for a data item. In response to the initiation, services of the communication circuitry of the sending device 810 may be initiated. For example, BLE, UWB, and Wi-Fi services may be initiated or changed. For BLE, a higher scan rate may be used. The increased rate may provide for rapid discovery, such as when someone walks into a room. The UWB circuitry 812 and the Wi-Fi circuitry 813 may be in any previous state, such as disconnected, idle, or active.

[0144] At 802, the two devices authenticate each other using an authentication tag provided in an advertisement signal transmitted and scanned by the two devices. Figure 3 and Figure 4 Exemplary techniques for this authentication are described.

[0145] At 803, a ranging signal is transmitted by the BLE circuit 811 to notify the receiving device 820 of the desire to perform a ranging operation or to enter a sharing mode, which may also include performing a ranging operation. The BLE ranging signal may be similar to Figure 4 The announcement described at 405 of and may include scheduling (timing) information between BLE and UWB signals or other ranging settings. Thus, the BLE ranging signal may include a transmission rate of the ranging signal (e.g., X ms), a transmission rate of the ranging request message (e.g., N*Xms), an indicator that ranging is to be performed (e.g., by including a specific flag / command indicating a ranging action), and a delay between the BLE ranging signal and the UWB ranging request message (e.g., Dt_tx). N may be the number of BLE intervals before the ranging message is transmitted, thereby specifying a ratio to the BLE announcement rate.

[0146] At 804, the action indicated in the ranging signal causes the UWB circuit 822 to wake up. The Wi-Fi circuit 823 may also be awakened in response. This action (also known as a nearby action) may have a flag set to "true" for waking up the circuit. In addition, the UWB circuit 822 may scan at an expected arrival time, for example, t_arrival = t_rx_BLE + dt_tx (+ / - margin). In addition, in response to the ranging signal, the Wi-Fi circuit 823 may initiate a discovery process, such as Neighbor Aware Networking (NAN). This preparation of the Wi-Fi circuit 823 may be performed when the ranging signal indicates that the transmitting device 810 desires a shared mode. Reference Figure 5 , the application processor 540 may be turned on when authenticating another device, and the application processor 540 may turn on the Wi-Fi circuit 823. In some embodiments, the Wi-Fi circuit may be used to obtain identification from other devices that are not in the contact list.

[0147] At 805, UWB circuit 812 transmits a ranging request message after a delay of Dt_tx ms relative to the BLE ranging signal. UWB circuit 822 does not detect the ranging request message, for example because the UWB circuit is not fully powered on because the ranging signal has not yet been detected or has just been detected.

[0148] At 806 , the Wi-Fi circuit 813 transmits a service discovery signal, for example, using NAN. Once the two Wi-Fi circuits establish a connection, a user interface (eg, a GUI on a display screen) may display an icon corresponding to the receiving device 820 .

[0149] At 807, UWB circuit 812 transmits another ranging request message. UWB circuit 822 detects the ranging request message. The ranging request message may be transmitted in conjunction with the UWB circuit 822. Figures 1 to 4 Similar to those described.

[0150] At 808, UWB circuit 822 transmits a ranging response message. The ranging response message may be associated with the Figures 1 to 4 The ranging may be non-secure or encrypted, where encryption may be used on a case-by-case basis. The ranging request message may be sent in a multicast format without specifying a destination address. However, the ranging request message may specify a source address, which may be matched to a source address determined by the BLE communication (e.g., as used Figure 5 The receiving device may bind addresses in different messages together across BLE and UWB so that the appropriate destination address may be used. Also, UWB circuitry 822 or other circuitry may recognize that a request message requires a response when it has a source address that corresponds to the current ranging operation.

[0151] When using multicast to communicate with multiple devices, other devices may select random time slots in the frame of the response message to reduce conflicts. Otherwise, the sending device may receive response messages from multiple devices at the same time, for example if they all select the same time slot. The total number of time slots in the frame may be specified, for example, using the first wireless protocol at 803 or using the first wireless protocol or the second wireless protocol in another communication, so that a random time slot can be selected without worrying about exceeding the total number. In other embodiments, devices may be scheduled within certain time slots. For example, the first device that responds via BLE (or other first wireless protocol) or the device with the highest signal strength (e.g., RSSI) may be assigned to the first time slot, and so on.

[0152] At 809, the transmitting device 810 determines distance information using the ranging message. The distance information may be determined as described herein.

[0153] At 810, the user interface of the transmitting device 810 may display an icon corresponding to the receiving device 820, along with the distance and potentially angle (e.g., when multiple UWB antennas are used). In some embodiments, if the transmitting device 810 is pointed directly at the receiving device 820, an icon representing the receiving device 820 (or equivalently, the user of the device) may be displayed in the center of the screen of the transmitting device 810. In other embodiments, a list of device clusters may be provided, where the clusters may distinguish between the angular orientations of the groups of devices or only distinguish the groups of devices by distance.

[0154] An icon for the transmitting device 810 may be at the bottom of the screen, or some other indicia may be used to indicate that the device location is relative to a particular point (e.g., bottom center) on the screen of the transmitting device 810. Lines extending upward and to the right and left (e.g., a radar-like view) may provide such an indication of the transmitting device. Available devices without ranging capabilities may be shown in a default position on the screen.

[0155] At 811, the user of the sending device 810 selects the receiving device 820, for example, by tapping the recipient icon, by an audio command, by pointing the sending device 810 directly at the receiving device 820, or by looking at the user (e.g., if the phone has facial imaging capabilities). The user may be guided to point at the device by drawing a line along the center of the screen of the sending device 810, thereby facilitating the determination of the selection using the orientation of the sending device 810. By providing the relative position, the user can turn to the desired recipient (and therefore its device), and the device will appear in a convenient location on the screen for the user to select.

[0156] At 812, transmission of the data item (e.g., as a file) is performed using Wi-Fi circuitry 813. Other protocols (e.g., Bluetooth) may be used to transmit data when the data to be transmitted is relatively small. An indication of a successful transmission may be provided by the transmitting device 810.

[0157] The process of discovery (scanning and advertising) and ranging at high rates may continue until the sharing session ends. For example, the user of the transmitting device 810 may exit the sharing mode. Upon exiting, ranging may stop and the UWB circuit may enter a low power state, such as disconnected or dormant. The Wi-Fi circuit may also enter a reduced power state, such as disconnected or dormant.

[0158] VI. Notice of using ranging

[0159] Ranging operations can be used for purposes other than sharing content. For example, a first device may provide a notification (e.g., a reminder) to a first user of the first device based on the distance from a specified (second) device. Such a reminder may be useful when reminding a second user of a second device. Therefore, it would be convenient to receive a reminder when the first user is near the second user (e.g., talking to the second user). As another example, it may be desirable to issue a notification when the distance is greater than a threshold (e.g., when the other device belongs to a child of a parent who is the user of the first device). Ranging capabilities may enable the first user to be reminded at an appropriate time, where the first user may have forgotten, for example, to recover a loan or a problem on a work project.

[0160] A. Example reminder based on distance

[0161] Fig. 9 An exemplary notification of a first mobile device using ranging between a first mobile device and a second mobile device according to an embodiment of the present disclosure is shown. A user can set up a notification, which can then provide an alert when the two mobile devices are close to each other (or too far from each other) (as determined using the ranging capability described above). Fig. 9 The focus is on notifications that serve as reminders that the devices are in proximity, but the description is similarly applicable to situations where notifications are used when the two devices have been separated.

[0162] At 901, user 910 may configure first device 915 to provide reminders based on proximity to second device 925. At this point, first device 915 may or may not be within proximity to second device 925. For example, when notifications are to be provided that the two devices have been separated, the two devices may be close to each other when setting up the notifications. In some embodiments, approval from second device 925 is required to establish such ranging notifications. Second device 925 may also be able to revoke such approval.

[0163] At 902, user 910 moves to a second location that may be proximate to user 920, as may be determined via ranging between the two devices. Alternatively, user 920 may move. Ranging may begin without user 910 having to interact with first device 915. For example, ranging may begin when the device is in a pocket. The processor of first device 915 (e.g., Figure 5 The AOP 530 may coordinate control of the ranging with the AOP 530 of the first device 915. The AOP 530 may detect the presence of the second device 925, for example, using BLE and authentication as described above. When the reminder is first established, the first device 915 may confirm that the authentication tag of the second device 925 is stored. Once authenticated, the UWB circuit may be turned on to begin ranging operations. In some specific implementations, once authentication is performed, the advertising / scanning rate may be increased, for example, to establish the ranging setup as quickly as possible.

[0164] At 903, a ranging operation may be performed between the first device 915 and the second device 925. Distance information may be determined by ranging, and the distance of the distance information may be compared with a threshold value 940. In the example shown, if the distance is less than the threshold value 940, a reminder may be provided by the first device 915 to the user 910. Since the ranging operation is performed with a specific device (i.e., the second device 925), the ranging request message may specify a target address corresponding to the second device 925. The ranging may be encrypted, such as may be set one by one by the user 910. A shared key may be established when a notification is first created.

[0165] At 904, the first device 915 provides a reminder. The reminder can be provided in various ways, such as audio, tactile or visual prompts or a combination of any two or more of these prompts. For example, the first device 915 may emit a buzzing sound or ring tone, and may display a message on the screen.

[0166] When configuring a reminder, user 910 may provide a message and threshold criteria. Such threshold criteria may include distance and time interval, for example to force the two devices to be within a threshold for at least a specified time interval (e.g., 20 or 30 seconds). The specification of the time interval may increase reliability. For example, if the two users work in the same building, one user may pass by the other user's office or a conference room where the other user is located, but this scenario is not a convenient time to provide a reminder. Therefore, when the two users first approach each other, a reminder may not be provided directly.

[0167] An example of getting an alert when two devices have separated can be applied to a situation where a parent's child has a mobile device (e.g., a watch or other wearable device). The parent device can receive an alert when the child has wandered too far away. This monitoring can be performed by the AOP, which can use less power than the device's application processor.

[0168] B. Methods used for notification

[0169] Fig.10 1 is a flow chart of a method 1000 for providing a notification using a ranging operation according to an embodiment of the present disclosure. The method 1000 may provide a notification at a first mobile device of a first user and be performed by the first mobile device. Aspects of the method 1000 may be performed in the same manner as Figure 7 The method 700 is performed in a similar manner.

[0170] At block 1005, a user interface of a first mobile device receives user input to configure a notification (e.g., a reminder or an alert). The notification may be provided by the first mobile device based on the proximity of the first mobile device to a second mobile device, which may belong to a second user or the first user. The proximity may be determined using ranging operations as described herein.

[0171] At block 1010, an announcement signal including a first authentication tag of a first mobile device is transmitted (eg, broadcast) using a first wireless protocol of a first mobile device. Block 1010 may be performed in a manner similar to Figure 7 Block 715 is implemented in a similar manner.

[0172] At block 1015, the first mobile device receives a second authentication tag of the second mobile device from the second mobile device via the first wireless protocol. Block 1015 may be performed in the same manner as Figure 7 Block 720 is implemented in a similar manner.

[0173] At block 1020, the first mobile device authenticates the second mobile device using the second authentication tag. The second mobile device may authenticate the first mobile device using the first authentication tag. Block 1020 may be performed in the same manner as Figure 7 Block 725 is implemented in a similar manner.

[0174] At block 1025, one or more ranging settings are communicated with the second mobile device using the first wireless protocol to perform ranging operations using the second wireless protocol. Figure 7 Block 730 is implemented in a similar manner.

[0175] At block 1030, a first set of one or more pulses in a ranging request message is transmitted to a second mobile device using a second wireless protocol according to one or more ranging settings. The second wireless protocol may use a pulse width that is smaller than the pulse width used by the first wireless protocol. Block 1030 may be performed in a manner similar to Figure 7 Block 735 is implemented in a similar manner.

[0176] At block 1035, the first mobile device receives a second set of one or more pulses in one or more ranging response messages from the second mobile device using a second wireless protocol. Block 1035 may be performed in the same manner as Figure 7 Block 740 is implemented in a similar manner.

[0177] At block 1040, distance information corresponding to one or more transmission times of the first set of one or more pulses and one or more reception times of the second set of one or more pulses is determined. Block 1040 may be performed in a manner similar to Figure 7 Block 745 is implemented in a similar manner.

[0178] At box 1045, the distance of the distance information is compared with a threshold. As an example, the distance may include a radial distance and / or an angular distance. In some implementations, the distance may be a vector specifying the relative distance (position) between the two devices, and a score may be assigned to the relative position. For example, different areas may be defined around the device. These areas may be defined relative to the pointing direction of the device. The threshold may correspond to the assigned score, for example by comparing the score with the threshold. In various embodiments, the threshold may be specified by a user or manufacturer of the device. The threshold may be modified over time, for example, based on whether the user interacts with the phone in response to a notification.

[0179] At block 1050, a notification is provided based on the distance exceeding the threshold. The distance may exceed less than or greater than the threshold, depending on how the notification is set. Thus, in some implementations, the notification may be provided when the distance is greater than the threshold, for example to alert a user. In other implementations, the notification is a reminder and may be provided when the distance is less than the threshold. In various implementations, the notification may include an audio output, a visual output, or a tactile output, or any combination thereof.

[0180] In some embodiments, the distance information may include a plurality of distance measurements over time (e.g., within 30 seconds, one minute, two minutes, etc.) The notification may be provided based on a distance in the plurality of distance measurements being less than the threshold for at least a specified amount of time.

[0181] VII. Proximity-based Receiver Recommendations

[0182] Communication applications (e.g., email and text messaging) typically have an input window for specifying a recipient of a communication. A user may enter characters (e.g., alphanumeric characters and certain special characters, such as "@") into the input window to identify a recipient. For example, a user may enter a name, an email address, or a phone number. When the user enters the first character, such communication applications may provide a list of suggested recipients. However, such communication applications require at least one character to be entered before providing suggested recipients. It is desirable to provide a reliable list of suggested recipients without the user having to enter some input, thereby making the experience more convenient and efficient for the user. It is also desirable to use additional criteria specific to a particular situation (e.g., in addition to commonly used recipients) to determine potential recipients to be suggested.

[0183] Embodiments may incorporate detection of neighboring mobile devices in the vicinity of a mobile device via wireless communication as a criterion for determining a recipient to suggest. A contact database may be cross-referenced with the detected neighboring devices. Range measurements may be performed to provide greater accuracy of relative distance from another mobile device, for example, to determine whether another mobile device is sufficiently close to provide a suggested recipient. Relative distance may also be used to sort neighboring devices based on relative position (e.g., distance and / or angle). The sorting may be from nearest to farthest. Weights may be used in various zones to favor certain angles relative to the pointing direction of the device.

[0184] Fig.11A Screen shot 1100 of a communication application providing a list of suggested recipients 1120 in response to user input of characters is shown. The user has opened the communication application (for text messaging, as shown) and has entered the characters "M" into input window 1110. In response, the communication application has provided a list of suggested recipients 1120 beginning with the letter M. In the example shown, Mom, Mark, and Mary are provided in that order along with their recipient contact information (corresponding to phone numbers in this example).

[0185] Fig. 11BScreenshot 1150 of a communication application providing a list of suggested recipients 1170 in response to a user starting a new message without user input of characters according to an embodiment of the present disclosure is shown. The communication application can be executed on a first mobile device. Before providing the list of suggested recipients 1170, the first mobile device can detect one or more neighboring mobile devices via wireless communication (e.g., various forms of Bluetooth, Wi-Fi, or UWB). In some embodiments, the neighboring mobile devices can each transmit an identifier, for example, in a notification message. In some specific implementations, the identifier can be obtained in advance by the first mobile device, for example, via peer-to-peer mode or via a server. For example, the identifier can be obtained when the user creates a contact in a contact list.

[0186] Any nearby mobile devices having identifiers corresponding to contacts in the stored contact list in the first mobile device may be identified and included in the suggested recipient list. For example, the identifier may be a hash, and the first mobile device may use the hash to look up contact information to provide to the user. In this way, the user does not have to type any characters into the input window 1160 before receiving the suggested recipient list 1170.

[0187] Such a list of suggested recipients may also be provided based on recipients that have frequently or recently messaged (e.g., at the current moment in time). Such historical interactions with the same or other communication applications may be used to train a machine learning model that serves as a suggestion engine. The suggestion engine may use discovery of neighboring devices and contextual information (e.g., time, location, communication application used) to determine the list of suggested recipients 1170. In some implementations, ranging operations may be performed to determine distance information (e.g., radial distance and / or angular distance), which may also be used by the suggestion engine.

[0188] In the example shown, Mark is displayed first before Mom. This may occur because Mark's device is detected via wireless communication and is therefore located near the first mobile device on which the communication application is executed. Mom's device may not be detected as a neighboring device and therefore Mark may be listed first. For example, the presence of Mark's device as a neighboring device may outweigh a higher frequency of communication with Mom, such as depending on the criteria used by the suggestion engine. Jennifer is added, for example because Jennifer's device is detected as a neighboring device. Therefore, Jennifer may be identified as a suggestion recipient. Additional recipients may be provided, but for ease of illustration, these additional recipients are not shown.

[0189] After providing the list, the user may select one of the suggested recipients to send the new message. The selection may be received in various ways, such as by selection via touch or providing a voice command (e.g., by saying "Mark" or "Item 1"). Then, after composing the message, the message may be sent to the selected recipient.

[0190] A. Suggestions using discovery of nearby devices

[0191] Fig.12 1 is a sequence diagram of a process 1200 for suggesting a recipient of a communication using proximity to other devices according to an embodiment of the present disclosure. The process 1200 involves a first mobile device 1210 (e.g., a mobile phone, a wearable device (such as a watch), or a tablet) and other mobile devices 1220. The first mobile device 1210 can communicate with the other mobile devices 1220 via any suitable wireless communication (e.g., Bluetooth, Wi-Fi, or UWB). The other mobile devices 1220 can include a second mobile device 1221 and a third mobile device 1222.

[0192] The first mobile device 1210 may include a communication application 1211, a contact database 1212, a suggestion engine 1213, and a wireless circuit 1214. These components may interact with each other. For example, the first mobile device 1210 may have a memory storing the contact database 1212. The wireless circuit 1214 may provide proximity information to the suggestion engine 1213. The suggestion engine 1213 may access the memory to retrieve contact information from the contact database 1212. And, the suggestion engine 1213 may provide a suggested recipient to the communication application 1211.

[0193] At step 1201, the contact database 1212 stores contact information for a plurality of contacts. The contact information for a contact may include a stored identifier, so that the stored identifier is associated with the contact. For example, a database field for a contact may include a stored identifier, so that other fields of the contact are associated with the stored identifier field.

[0194] At step 1202, the communication application 1211 receives a command to start a new communication. Such a command may be received in various ways through a user interface such as a touch screen, a voice command, a keyboard, a pointing device, etc. For example, a user may state "new message" or "new email," which may occur before explicitly opening a communication application. Thus, a voice command may open a default communication application associated with a message or email, and a voice command may also be used to open a new message. As another example, a user may open a communication application on a touch screen and then provide a voice command of "new message" or select a new message button on a window on the touch screen. An exemplary window may be seen at Fig. 11B middle.

[0195] At step 1203, wireless circuit 1214 detects an incoming message from other mobile devices 1220. In various embodiments, the incoming message may be generated by or include a received identifier corresponding to other mobile devices 1220 (e.g., a second identifier of second mobile device 1221 and a third identifier of third mobile device 1222). As an example, the identifier may be a cryptographic key used to generate a digital signature, decrypt a digital signature, or otherwise generate a hash of a portion of the incoming message. A cryptographic key that authenticates the message portion (e.g., is capable of generating a matching hash) may be determined to be the correct identifier.

[0196] In some implementations, the other mobile device 1220 may periodically transmit a signal (e.g., an advertisement signal) with a corresponding identifier, and potentially also other information, such as a network address. Such a signal may be transmitted as a broadcast signal, for example using Bluetooth LE. In other implementations, the first mobile device may transmit a request message requesting the ID of the neighboring device. The other mobile device 1220 may respond with a message including the corresponding ID. Thus, the detection of such a signal transmitted from the other mobile device 1220 may be performed as part of a discovery process, where the initial signal is transmitted by the other mobile device 1220 or the first mobile device 1210.

[0197] In various embodiments, step 1203 may be performed before or after step 1202. For example, the first mobile device 1210 may periodically turn on the wireless circuit 1214 to look for incoming messages, thereby providing a list of neighboring devices that may be stored for later use.

[0198] At step 1204, the received identifier (ID) from the incoming message is sent to the contact database 1212, for example, directly, via the suggestion engine 1213, or via other components of the first mobile device 1210. The wireless circuit 1214 or other components can parse the incoming message to determine the received identifier. For example, the incoming message can have a specific format, such as a predetermined format with tags specifying specific data or different time slots for different types of data. As with the other steps, step 1204 can be triggered by various actions, such as by the receipt of an incoming message or by a message from the communication application 1211 in response to the command at step 1202.

[0199] In other embodiments, parsing may involve cryptographic operations, such as decryption or hashing operations. Such operations may be performed when the stored identifier corresponds to a cryptographic key. For example, a portion of an incoming message (e.g., a network address) may be hashed or signed using a cryptographic key. The first mobile device 1210 may then use the stored cryptographic key to operate on a portion of a message sent in plain text (e.g., a non-hashed / non-encrypted network address). A matching key is a key that provides the same hash or signature as in an incoming message. Such cryptographic operations are also described in more detail herein.

[0200] At step 1205, the suggestion engine 1213 may obtain contact information of other mobile devices 1220 from the contact database 1212. The acquisition of contact information may be performed in various ways. For example, the suggestion engine 1213 may send a request to the contact database 1212, or the contact database may push the contact information to the suggestion engine 1213. In either case, the contact database 1212 may be accessed using the received identifier to obtain the contact information of other mobile devices 1220. In addition, the acquisition of contact information may be performed in response to various trigger conditions (e.g., in response to providing an ID to the contact database 1212 or in response to receiving a command at step 1202). The latter may be performed when the first mobile device 1210 receives an incoming message independently (e.g., asynchronously) from the operation of the communication application 1211. As described above, the first mobile device 1210 may periodically detect incoming messages, thereby causing such independent operation.

[0201] In some embodiments, the contact database 1212 or other components (e.g., the suggestion engine 1213) can store contact information of neighboring devices. The neighboring device list can be updated periodically. Therefore, in any given situation, the neighboring device list should generally reflect who is near the user of the first mobile device.

[0202] At step 1206, the communication application 1211 may send a request for suggested recipients to the suggestion engine 1213. The communication application 1211 may send such a request in response to receiving a command to create a new communication at step 1202. Step 1206 may be performed in various relationships with other steps of process 1200 (e.g., after step 1202 but before step 1203, before step 1204, or before step 1205).

[0203] In some embodiments, in response to a request from the communication application 1211 or an earlier request, the first mobile device 1210 can perform ranging with other mobile devices 1220. Distance information (e.g., radial distance and angular distance) can be determined and used to suggest one or more recipients. For example, Figure 4steps. Fig.12 The identifier may be used to perform authentication in step 404. Event 402 may correspond to the creation of a new communication at step 1202. Additional steps 403-409 may then be performed, such as where step 404 is performed using the identifier (eg, cryptographic key).

[0204] At step 1207, the suggestion engine 1213 may provide the communication application with contact information for one or more of the other mobile devices 1220 in the suggested recipient list. Step 1207 may be performed in response to a command to create a new communication at step 1202. In response to a request at step 1206 or earlier (e.g., after receiving the contact information), the suggestion engine 1213 may use the contact information of the neighboring devices to determine the suggested recipient list for the communication application. Although not shown, the suggestion engine 1213 may receive other information to determine the suggested recipient list, as described herein. For example, distance information obtained from a ranging operation may be used.

[0205] At step 1208, the communication application 1211 receives a selection of one of the suggested recipients. In this example, the selected recipient corresponds to the second mobile device 1221. As described above, the recipient can be selected in a variety of ways.

[0206] At step 1209, the communication application 1211 sends a new communication to the second mobile device. The new communication may be sent via the same or a different wireless protocol than the wireless protocol used for the incoming message received at step 1203. As examples, the communication may be sent via a peer mechanism, an access point (e.g., a router), or a server.

[0207] B. Discovery of Devices and Contacts

[0208] As described above, the discovery process may determine whether the contact's device is in the vicinity of the first device. The discovery process may involve obtaining an identifier of the other device at a previous registration time (e.g., when added to a contact database). The identifier may be obtained directly from the other device, via discovery to which the identifier is sent, or an identification server that may securely store the identifier. More exemplary details of the discovery process are provided below.

[0209] In one example, when a person is added as a contact, their contact information can be used to retrieve an identifier stored at an identification server. The identification server can store the identifier in conjunction with the contact information so that it can be retrieved and sent to the first device. In another example, the identifier can be transmitted locally from one device to another device, for example, along with the contact information. Then, when the first device detects an incoming message with the identifier, the contact information of the user of the other device can be retrieved.

[0210] In some embodiments, the incoming message may be encrypted so that the identifier is encrypted. Symmetric or asymmetric cryptographic keys may be used for encryption and decryption. The first device may obtain the cryptographic key together with the identifier, for example, directly or via a server. Then, when an incoming message is detected, the stored cryptographic key may be used until a cryptographic key that can decrypt the incoming message is found. The decrypted identifier may then be used to identify the corresponding contact information.

[0211] In other embodiments, an incoming message may include a hash or signature of a portion of the message (e.g., a network address) that was sent in plain text. The stored identifier (the key in this example) may operate on the plain text or signature to find a match. For example, the key may decrypt the signature to obtain the plain text portion, thereby authenticating another device because the decrypted signature matches the plain text of the message. A non-matching key will generate a result that does not match the plain text, so it can be determined that a particular incoming message does not correspond to a non-matching key.

[0212] As another example, a key may operate on the plaintext to generate another hash, which may be compared to the hash received in the incoming message. Each of a set of stored keys may be used until a matching hash is determined. The key that provided the matching operation may then be determined as an identifier that may be used to access a contact database to retrieve contact information. Examples of hashes include SipHash and hash-based message authentication codes (HMACs).

[0213] In some embodiments, the two devices may exchange identifiers, such as cryptographic keys. This exchange may occur when the two devices are in proximity to each other (e.g., touching each other), which may occur after the user provides some indication that contact information will be shared. The identifier and contact information may then be stored in a contacts database.

[0214] In one specific implementation, an incoming message (e.g., an announcement packet) may include a network address associated with another device (e.g., generated periodically), a hash value calculated using the network address, and a cryptographic key (an example of an identifier) ​​associated with the other device. The first device may then retrieve and iterate through multiple known cryptographic keys from memory until the correct key is found through a match. Alternatively, the incoming message may include a key identifier (e.g., a user identifier or a device identifier) ​​that can be used to retrieve the correct key. The first device may then use the network address and the first known cryptographic key to calculate a temporary hash value. The temporary hash value may be compared to the received hash to determine whether they match. In response to identifying that the temporary hash value and the hash value match, the first device may, for example, Fig.12 The contact information corresponding to the first known cryptographic key is retrieved in step 1205. In some implementations, a ranging operation (eg, as described herein) can be performed in response to identifying the match.

[0215] This example uses a symmetric key, but an asymmetric key may also be used. For example, the second device (e.g., 1221) may provide a public key to the first device. The second device may use the private key to generate a digital signature of a network address or other plain text, and include the digital signature in the message, as described herein. The first device may then use the public key to decrypt the digital signature to obtain a result, and compare the result to the plain text. If there is a match, the first device may determine that the incoming message is from the second device.

[0216] In embodiments where the message includes a network address, the address may be changed periodically. This prevents the identity of the device from being tracked over time, thereby protecting privacy. Such a network address may be a media access control (MAC) address.

[0217] C. Use ranging to suggest receivers

[0218] The first device can determine the relative position of the other device. For example, the first device can detect the signal strength of the incoming message, also known as the received signal strength indicator (RSSI). If such devices use standard transmission strength, the attenuation of the signal over the propagated distance can be used to determine the relative distance to the second device. A calibration (mapping) function can be determined from measurements made at different known distances between these devices. These known differences can be used as training data to determine a calibration function that maps RSSI to distance. Different mapping functions can be determined for different types of devices, such as different models of phones and to distinguish between phones and tablets.

[0219] In other embodiments, time of flight (TOF) measurements may be used to determine relative distances to other devices, as described herein. RSSI measurements and TOF measurements may be used together, for example, a weighted average of the distances or locations determined by the two techniques may be used. Some embodiments may use distance information to determine whether another device is sufficiently close to be suggested as a recipient and / or to rank recipients based on distance information; other information may also be used for such purposes.

[0220] Fig.13 13 shows that the first device 1310 according to an embodiment of the present disclosure performs ranging with other devices 1320 for suggesting a recipient to a communication application. The first device 1310 may correspond to Fig.12 The first mobile device 1210 may correspond to the first mobile device 1210, and the other devices 1320 may correspond to the other mobile devices 1220. Fig.13 The other elements may correspond to Fig.12 Similar components in .

[0221] The communication application 1311 may have a user interface for receiving user input to create a new communication (e.g., an email or message). In response to the user input, the communication application 1311 may send a trigger command 1319 to the ranging circuit 1335 and / or the BT / Wi-Fi circuit 1330 (e.g., corresponding to Figure 5 These circuits can determine which devices are close to the first device 1310.

[0222] Other devices 1320 may transmit signals (e.g., announcements) using a wireless protocol such as Bluetooth or Wi-Fi. These signals may be detected by BT / Wi-Fi circuitry 1330, which may perform authentication of these signals as corresponding to a contact database ( Fig.13 Specific contacts in (not shown) such as described herein. The contact information can be sent to the suggestion engine 1350, which can use the contact information to determine a list of suggested recipients to be sent to the communication application 1311.

[0223] The BT / Wi-Fi circuit 1330 may send a ranging setting to the ranging circuit 1335. In some implementations, the ranging circuit 1335 may initiate a ranging operation in response to receiving the ranging setting from the BT / Wi-Fi circuit 1330. The ranging setting may include various data, such as described above. In addition, the ranging setting may include a network address, which may have been used to authenticate one of the other devices 1320. In this way, the ranging circuit 1335 may obtain the network address to send the ranging signal. The network address may be used to associate the ranging data with a specific contact in the contact database. For example, the contact information sent from the BT / Wi-Fi circuit 1330 may include the network address (or another identifier), and the ranging circuit 1335 may include the network address (or another identifier) ​​so that the suggestion engine 1350 can associate the ranging data with the contact information.

[0224] Suggestion engine 1350 may determine a list of suggested recipients using various combinations of contact information, ranging data, current context data from context data source 1340, and historical communication data 1345. As examples, context data source 1340 may include movement information from an inertial motion unit (IMU), time and date from a clock and calendar application, location from a GPS or other location circuit, and previous applications used prior to communication application 1311.

[0225] The suggestion engine 1350 may use the historical communication data 1345 stored in the database. Each historical communication may be recorded as a separate time entry in the database. Such records may be saved periodically, such as every two seconds or other time scales where only one type of interaction may occur per time interval (time encoding). Each historical usage record may include any contextual data mentioned herein.

[0226] Historical communication data 1345 may store records of historical user communications from which patterns and / or similarities to the current context may be mined to suggest a list of recipients that are most likely to be selected. For example, recipients that frequently message during a particular context may be identified when the current context is a particular context. Such a list may be sorted, for example, based on relative distance. The sorting may be from closest to farthest. Weights may be used in various zones to favor certain angles relative to the pointing direction of the device.

[0227] In some embodiments, each criterion used by the suggestion engine 1350 can be used by a separate sub-model to assign an order or score (e.g., a ranking) to that particular criterion. For example, a list of scores for recipients can be determined based on ranging information, and another list can be determined based on historical communications. A weighted average can be used to combine the scores in the two lists to obtain a final list of recipients. Recipients with scores above a threshold can be provided in the list. Predetermined weights can be assigned to each criterion (feature), such as determined by heuristics or machine learning. In another specific implementation, such weights can be dynamically assigned based on variables. For example, a greater number of neighboring devices can indicate that the proximity criterion should have a smaller weight.

[0228] The suggestion engine 1350 can be implemented in various forms and use various models. For example, more than one model can be used and the results of these models can be merged in the ensemble engine. A first type of model can be run periodically (e.g., every night), but then saved so that it is static until the next training session is performed. Such periodic generation and saving will be unrelated to user requests because the periodic operations are not performed in response to user requests. Such training may include a pattern mining routine that mines patterns from historical interactions for when applications, recipients, or combinations of applications / recipients are selected. A second type of model can use recent interactions to generate an on-demand model when a request for suggestion is received (e.g., in response to generating a new communication).

[0229] The pattern model can tune the prediction of the recipient to be more specific to the user's past behavior. The pattern model can operate on all the interaction data stored in the database to generate rules based on the identified characteristic repetitive patterns. The pattern model can be executed at night or during other idle times of the mobile device. The pattern model can extract data from these interactions and output another database (referred to herein as the pattern database) that can be queried when making predictions. For each of a set of input criteria (such as communication application, time of day, etc.), the pattern database can specify a list of recipients to suggest.

[0230] In addition to a database of rules that have certain criteria as antecedents and output as consequents a suggested application / recipient, such a pattern model may take a variety of other forms. For example, in some implementations, a neural network may be used in the pattern model. Other examples of machine learning models include linear regression, logistic regression, support vector machines, and decision trees.

[0231] In some embodiments, scores may be assigned based on ranging operations. The relative position of each other device may be determined based on distances determined using multiple antennas (e.g., UWB antennas that may use triangulation). The area around the first device may be divided into different regions. These regions may be layered according to the radius and angle relative to the pointing direction of the first device. For example, the highest score may be given to the closest radial region within a specified angular range of the pointing direction, and the lowest score may be assigned to the region that is farthest in the radial direction and 180 degrees from the pointing direction. As an example, the group of scores may be normalized to be within a specific range (e.g., 0-100).

[0232] The set of scores may also be assigned based on historical communications that may have been conducted in various contexts. The set of scores may be determined using the frequency of communications in all contexts or in a specific context (e.g., after filtering the current context). The scores may also be normalized to have values ​​within a specific range (e.g., 0-100).

[0233] The two sets of scores can be combined in many ways, such as by combining the scores and ranking based on the combined score or using a set of rules. For example, one rule can be that if another device is in the closest radial region within a specified angular range of the pointing direction, then that device will always be placed first, regardless of its score using historical communications. As another exemplary rule, the ranking based on ranging scores can be modified based on the number of communications, such as by moving a particular device up or down a specified number of ranking positions based on the number of communications (as can be determined for the current context).

[0234] In some embodiments, ranging scores or raw distances (e.g., for each antenna) may be used as features for a machine learning model. A training set may include a set of communications with known recipients and a specific context (including ranging distances). Such a machine learning model may be continuously updated based on the accuracy of the prediction of the recipient of a new communication with a known context.

[0235] As described above, RSSI can be used for ranging measurements. In addition to TOF distance measurements, RSSI can also be determined. Thus, a TOF-derived radial range (e.g., measured using UWB), a TOF-derived angle relative to a pointing direction (e.g., measured using UWB), and RSSI (e.g., measured using any form of Bluetooth) can all be used to determine a list of suggested recipients, such as by input into a suggestion / prediction model. The raw RSSI measurement and the classified range can be used.

[0236] In some embodiments, the initial model may use RSSI measurements to obtain a range classification, which may be used with the determined TOF value. For example, the suggestion engine 1350 may receive RSSI measurements from the BT / Wi-Fi circuit 1330. The RSSI classifier 1355 may use the RSSI measurements to determine the range classification. Any number of range classifications may be used, such as 3, 4, 5, etc. In one implementation, the three classifications may be near, medium, and far, which may be specified using numbers or any other characters. To determine the range classification, the RSSI classifier 1355 may identify the type of device transmitting the signal and then use a corresponding classification model (e.g., trained using measurements of a known type of device at a known distance). The range classification may be provided to another model that is part of the suggestion engine 1350 as described herein. In some implementations, the RSSI classifier 1355 may use more than one RSSI measurement, such as a series of measurements may be used to perform the classification.

[0237] D. Timing of the ranging circuit

[0238] Ranging measurements may be made at various times (e.g., before or after a user starts a new communication). For example, the ranging circuit 1335 and / or the BT / Wi-Fi circuit 1330 may have already made some measurements and determined a distance or range classification. Such distance information may be stored for retrieval when a new communication is started. As an example, the distance information (distance, range classification, etc.) may be stored in the suggestion engine 1350, the ranging circuit 1335 and / or the BT / Wi-Fi circuit 1330, or other components of the first device 1310. Then, upon receiving a request (e.g., by the suggestion engine 1350 or to the ranging circuit 1335 and / or the BT / Wi-Fi circuit 1330), the distance information may be retrieved.

[0239] Distance measurements may be made periodically. New measurements may overwrite old measurements, and potentially a number of measurements taken at different times may be stored. Each distance measurement may have a timestamp. The timestamp may be used to determine whether the measured value is recent enough to be used (e.g., by comparison with a timing threshold). Thus, when a user desires to compose a message, it is suggested that the recipient may use the stored information of the neighboring device so that the ranging circuit 1335 and / or the BR / Wi-Fi circuit does not have to spin up or otherwise increase its energy level, but they may need to spin up periodically. If these measurements are not recent enough, new measurements may be performed.

[0240] E. Methods used to advise recipients

[0241] Fig.14 1 is a flow chart according to an embodiment of the present disclosure, which illustrates a method 1400 of providing a communication interface to a user. The method 1400 may be implemented by a first mobile device, which may correspond to the first device 1310 or the first mobile device 1210. The communication interface may provide a list of suggested recipients for a new communication based on the proximity of another device (e.g., determined using wireless communication). In some specific implementations, the communication interface may provide a list of suggested recipients before the user provides (e.g., types) any characters of the recipient.

[0242] At block 1410, a database of a first mobile device stores a plurality of contacts. The database may include contact information for each contact, such as a phone number, an email address, a name, etc. Each contact (e.g., each entry of the database) may be associated with a stored identifier such as a cryptographic key or a unique identifier (e.g., for a user or device). The identifier may be stored as a field in the database so that a query with a particular identifier may be used to retrieve contact information for a contact corresponding to the particular identifier.

[0243] At block 1420, a user interface of the first mobile device receives a command to send a new communication. The new communication may be sent using a communication application executing on the first mobile device. A variety of communication applications may be used, such as communication applications for text messaging, email, phone calls, video calls, and the like. For example, when a user opens a given communication application and selects a button to start a new message, the user interface may be specific to that communication application. In another specific implementation, the user interface may be a generic interface, such as a voice command interface, such that a specific communication application does not need to be already opened. The voice command may specify the communication application to be used; default applications may be set for certain keywords, such as a text messaging application may be selected when the term "message" is used in a voice command.

[0244] At block 1430, one or more incoming messages are wirelessly detected from one or more other mobile devices. In various embodiments, the one or more incoming messages may be generated using one or more incoming identifiers corresponding to the one or more other mobile devices, or may include one or more incoming identifiers corresponding to the one or more other mobile devices. For example, the identifier may correspond to a cryptographic key used to generate a digital signature or hash of a portion of the message, where the digital signature or hash is sent as part of the message. As another example, the message may include an identifier that may be used directly to determine contact information corresponding to another device.

[0245] In some embodiments, one or more incoming messages may be broadcast by one or more other mobile devices. Such broadcast messages may be periodically transmitted by other mobile devices. A first mobile device may similarly periodically broadcast such signals so that neighboring mobile devices may detect the first mobile device.

[0246] At block 1440, one or more incoming messages are analyzed to determine one or more incoming identifiers. In various embodiments, blocks 1430 and 1440 may be performed before or after block 1420, for example, as described for Fig.12 and Fig.13 The analysis may simply parse the incoming message to extract the data. In another embodiment, the analysis may perform an operation (e.g., a cryptographic operation) on all or part of the data in the incoming message.

[0247] For example, when the identifier is a cryptographic key, block 1440 may include authentication of the incoming message. In some implementations, when one or more incoming messages are generated using one or more cryptographic keys, the analysis may include applying the stored cryptographic key to a first portion of the incoming message to obtain a cryptographic result. The cryptographic result may match the second portion of the incoming message. For example, a cryptographic key may be used to generate a hash of a plaintext portion of a message (e.g., a network address) and compare it to the hashed portion received in the message. As another example, a decryption operation may be performed on an encrypted portion of a message, where the decryption result should match the plaintext portion if the correct cryptographic key is used. The stored cryptographic key used for decryption may be a public key, where a private key corresponding to the public key is used to generate the incoming message. In another implementation, both devices may use the same key for the corresponding cryptographic operation. In this case, one or more incoming identifiers may include one or more cryptographic keys used to generate the incoming message.

[0248] At block 1450, a database is accessed with the one or more incoming identifiers to obtain contact information for one or more other mobile devices. As described herein, an entry in the database may include a field for an identifier. Once a matching identifier is determined, the database may be queried to identify a contact whose entry includes a matching identifier. Any number of data items of the entry may be retrieved to provide a list of suggested recipients. For example, a picture may be retrieved and displayed with other contact information in the list.

[0249] At block 1460, contact information for one or more other mobile devices is provided to the communication application as a list of suggested recipients. The list may be provided in response to a command to send a new communication. For example, blocks 1430-1460 may be performed in response to a command to start a new communication, or block 1460 may be performed directly in response to the command. As another example, additional steps may be performed, such as obtaining other data, such as context data, historical communication data, or ranging data; such additional steps may be performed after block 1420 but before block 1460.

[0250] Block 1460 may be implemented at least in part using a suggestion engine, such as described herein. For example, a database of historical user interactions may include historical recipients, historical communication applications, and historical context data. The historical user interactions may be used to determine a list of suggested recipients. Such a suggestion engine may suggest other devices that are not within proximity of the first device. Also, not all neighboring devices may be included in the list of suggested recipients. For example, the suggestion engine may exclude one or more neighboring devices that do not have sufficient historical communications with the first device. Thus, one or more other mobile devices may be only a portion of the neighboring devices.

[0251] In some embodiments, a list of suggested recipients is provided before an indication of an intended recipient is received. For example, suggested recipients may be provided before a user enters any characters into a text window. Such a list of suggested recipients may be sorted, for example, based on distance information determined in a ranging operation.

[0252] At block 1470, the communication application receives a selection of a second mobile device from the list of suggested recipients of one or more other mobile devices. The second mobile device may be selected in a variety of ways, such as by selecting from a drop-down list via a touch screen or by selecting via a voice command identifying which item in the list to select. In some embodiments, the list may allow scrolling to view additional recipients that are not initially displayed on the screen. Therefore, contact information corresponding to the second mobile device may not be initially displayed, but is still part of the list of suggested recipients.

[0253] At block 1480, the communication application sends the new communication to the second mobile device. The transmission of the new communication may be in response to a send command from the user. When the incoming message from the second mobile device includes a network address, the new communication may be transmitted to the network address.

[0254] As part of method 1400, a ranging operation may be performed and the ranging operation may be performed at various times. In various examples, the ranging operation may be performed in response to a command at box 1420, simultaneously with detection of an incoming message at box 1430, in response to box 1430, or in response to authentication in box 1440. The ranging operation may be performed in various ways, such as described herein. In some implementations, a first set of one or more pulses in a ranging request message may be transmitted to each of one or more other mobile devices using a first wireless protocol (e.g., UWB). Such transmission may use a network address received in the incoming message. Using the first wireless protocol, a second set of one or more pulses in one or more ranging response messages may be received from each of the one or more other mobile devices. Distance information corresponding to one or more transmission times of the first set of one or more pulses and one or more reception times of the second set of one or more pulses for each of the one or more other mobile devices may then be determined. Such times may be tracked using a clock of the first device. For example, a time stamp such as for Fig.12 and Fig.13 The distance information described is used to determine the list of suggested recipients.

[0255] The distance information may include various distances, such as radial distances and angular distances, at least some of which may be quantified in terms of time or length. The distance of one or more other mobile devices may be compared to a threshold. Any of the one or more other mobile devices may be excluded from the list of suggested recipients based on the distance being greater than the threshold. If the neighboring device is too far away, it may be assumed that the user of the first device may not attempt to communicate with the user of the neighboring device.

[0256] When the distance information includes an angle value (eg, relative to the pointing direction), the angle value of the one or more other mobile devices may be compared to a threshold value. Any one of the one or more other mobile devices may be excluded from the suggested recipient list based on the angle value being greater than the threshold value.

[0257] Before performing the ranging operation, the first device may perform authentication (e.g., mutual authentication) with one or more other mobile devices. For example, before transmitting the first group of one or more pulses to each of the one or more other mobile devices, a notification signal including a first authentication tag of the first mobile device may be transmitted via a second wireless protocol (e.g., Bluetooth or Wi-Fi). A second authentication tag of the second mobile device may be received from the second mobile device via the second wireless protocol. The authentication tag (e.g., as described in Sections II-IV) may correspond to the identifier in box 1440. The second authentication tag may be used to authenticate the second mobile device. The second mobile device may use the first authentication tag to authenticate the first mobile device. Then, the second wireless protocol may be used to transmit one or more ranging settings with the second mobile device. The first group of one or more pulses may be transmitted according to the one or more ranging settings. The first wireless protocol may use a pulse width that is less than the pulse width used by the second wireless protocol.

[0258] VIII. Switch

[0259] It may be desirable to transfer content from one device to another. The two devices may be owned by the user or by different users. There are simplified ways to transfer content, such as by sending the content by email so that the other device can retrieve the content from a server. However, this process is inefficient and cumbersome for the user.

[0260] In some embodiments, a ranging operation can be used to determine the distance between these devices. After authentication has been performed, the screen of the first device can automatically provide the option of viewing the content from the second device. In this way, the user does not need to make a selection or configure the first device on the second device. On the contrary, the user can quickly select the option to view the content. In addition, a ranging operation can be used to provide the option of viewing the content only in certain cases (e.g., the distance between these devices is within a threshold). In addition, orientation may be required, such as the second device being placed on the left side of the first device. Therefore, the embodiment can suppress unnecessary and undesirable situations of providing this option to the user, which may originally clutter the screen of the first device.

[0261] A. Example with a phone and a laptop

[0262] Fig.15 Technology for sharing content from one device with another device according to embodiments of the present disclosure is shown. The two devices may be owned by the same user or different users. In the example shown, computer 1510 (also referred to as first device) interacts with mobile phone 1550 (also referred to as second mobile device). However, it should be understood that other mobile devices may be used and other devices except laptop / notebook computer may correspond to the first device, such as tablet computer, wearable device, TV or TV set-top box, etc.

[0263] In order to determine the user's intention to share the content from the mobile phone 1550 with the computer 1510, the proximity of the two devices can be used. In order to determine the proximity, a ranging operation 1560 can be performed between the mobile phone 1550 and the computer 1510. Any of these devices can initiate the ranging operation 1560, for example as described herein. Therefore, the computer 1510 can determine the radial distance between the two devices. In addition, in some embodiments, the computer 1510 can determine the relative position of the mobile phone 1550 and the computer 1510, for example by determining the angular position. Such an angular position can be defined relative to a defined pointing direction (such as perpendicular to the keyboard 1515). If the angle is determined in a clockwise direction, the mobile phone 1550 is 90° from the pointing direction 1517.

[0264] As part of determining the user's intent to share content, a threshold distance 1540 may be used. For example, when the computer 1510 determines that the mobile phone 1550 is within the threshold distance 1540, the computer 1510 may determine that the user has a high likelihood of desiring to share content. In response to determining that the mobile phone 1550 is within the threshold distance 1540, the computer 1510 may display a visual indicator 1530 on the screen 1520 of the computer 1510. The size and arrangement of the visual indicator 1530 may vary, and the examples shown are merely illustrative. For example, the visual indicator 1530 may be an icon placed on a start menu or other currently or recently used application list; such an icon may correspond to the mobile phone 1550 or any second mobile device.

[0265] In some embodiments, the threshold distance 1540 may depend on the angular position / distance of the mobile phone 1550 relative to the computer 1510. For example, the computer 1510 may require that the mobile phone 1550 be placed on the left side of the computer 1510. In this way, the computer 1510 may require a more specific action to illustrate the user's intent. The determination that the mobile phone 1550 is on the left side can be determined using the measured angle, which can be required to be within a specified range, such as between 45° and 135°; other ranges can also be used, as will be understood by the skilled person. In this specific implementation of the use direction, the visual indicator 1530 can be displayed at a specific location on the screen 1520 (e.g., on the left side as shown).

[0266] Thus, a user may place his phone next to his computer for the purpose of starting a sharing session between the two devices. The computer 1510 may detect the notification signal from the mobile phone 1550 (or vice versa), and the ranging operation 1560 may provide distance information that triggers the visual indicator 1530 on the computer 1510. Once the user selects the visual indicator 1530, the sharing session may begin. In various embodiments, the sharing session may transmit pictures, videos, links to such content (URLs on the Internet), or deep links to software applications installed on both devices. Depending on the content to be shared, various steps may be performed in the sharing session, such as launching an application corresponding to the content or for displaying the content, displaying the content (e.g., a picture), or saving the content on the computer 1510.

[0267] In some embodiments, visual indicator 1530 may convey information about the content to be shared. For example, visual indicator 1530 may provide a smaller representation of the content, such as a thumbnail of a photo. Once the user clicks on visual indicator 1530, a larger representation of the content may be provided, such as using a full screen, half screen, or a size corresponding to 1 / 3 or 1 / 4 of the screen. In other specific implementations, the content may be shared automatically, such as without the user selecting the visual indicator.

[0268] The initiation of a sharing session or the display of visual indicator 1530 may also depend on the orientation of mobile phone 1550. For example, a user may be required to place the device with the screen facing up in order to indicate a desire to begin a sharing session. Such a determination of orientation may be made by mobile phone 1550, for example, using a gyroscope or other measuring device. The measured orientation or other indicator (e.g., a flag) that the orientation meets one or more criteria may be provided by mobile phone 1550 to computer 1510.

[0269] B. Methods used to share content

[0270] Fig.16 1 is a flow chart illustrating a method 1600 for communicating between a first device and a second mobile device according to an embodiment of the present disclosure. The two devices may be owned by the same user or different users. The method 1600 may be performed by a first device (e.g., Fig.15 The second mobile device may be a mobile phone (eg, mobile phone 1550) or other mobile devices, such as a wearable device, such as a watch.

[0271] At block 1610, the first device receives a message from a second mobile device. The message may include an authentication tag that can be used to authenticate the second mobile device. In this way, a sharing session is not conducted with a device of an unknown person.

[0272] The message may be a notification signal broadcast (e.g., periodically) from the second mobile device. As another example, the message may be a response to a message sent by the first device. As a response message, the second mobile device may include additional information, such as ranging settings for performing ranging operations.

[0273] At block 1620, the second mobile device is authenticated using the authentication tag. As described herein, authentication can be performed in a variety of ways. For example, authentication can be performed by accessing a contacts database to confirm that the authentication tag corresponds to a contact or by verifying a digital signature, hash, or other cryptographic value. To perform authentication, some embodiments may store an identifier associated with the second mobile device in a memory of the first device and compare the authentication tag to the stored identifier to authenticate the second mobile device.

[0274] In other embodiments, the message includes a payload and a digital signature, wherein the payload includes an authentication tag and the digital signature is generated from at least a portion of the payload. The memory of the first device may store an identifier associated with a cryptographic key corresponding to the second mobile device (e.g., an authentication tag of the second mobile device). The authentication process may use the authentication tag to access the memory to find a contact whose authentication tag matches the stored identifier so that the corresponding cryptographic key can be obtained. The cryptographic key may be used to verify the digital signature, for example, by decrypting the digital signature and comparing it with the portion of the payload used to generate the digital signature. Other authentication techniques described herein may also be used.

[0275] At block 1630, in response to authenticating the second mobile device, the first device performs a ranging operation with the second mobile device to determine distance information. The distance information can be of various types, as described herein. For example, the distance information can include time, radial distance, angular distance, relative position, etc. Different wireless protocols can be used to perform authentication and ranging, as described herein. For example, Bluetooth or Wi-Fi can be used to receive the message received in block 1610, and UWB can be used to perform the ranging operation.

[0276] In some implementations, the ranging operation can measure the signal strength (e.g., RSSI) of one or more messages transmitted between the second mobile device and the first device. In one implementation, the ranging operation can measure the flight time of one or more messages transmitted between the second mobile device and the first device.

[0277] At block 1640, a visual indicator may be displayed on a screen of the first device based on the distance information. For example, a visual indicator may be displayed at a particular location on the screen based on the distance information. For example, the distance information may be used to determine the direction of the second mobile device relative to the first device, and the location of the visual indicator on the screen may be selected based on the direction. As another example, a visual indicator may be displayed when the distance information satisfies one or more criteria. In some implementations, the distance information specifies a distance value (e.g., a length and / or an angle) that is compared to a threshold. When the distance value is less than the threshold, a visual indicator may be displayed.

[0278] The visual indicator may indicate that the content from the second mobile device is available. For example, the visual indicator may convey that the content is available from the second mobile device for storage or display on the first device. The visual indicator itself may indicate that the content from the second mobile device is available for display on the screen of the first device, for example by showing an image.

[0279] At block 1650, a selection of a visual indicator is received. The selection can be made in various ways, such as by voice command, by selecting the visual indicator on a touch screen, by selecting the visual indicator using a pointing device, etc. In some implementations, a cursor or other pointing element can automatically switch to the visual indicator so that the user may only need to press a button.

[0280] At block 1660, in response to the selection of the visual indicator, the content is received from the second mobile device. The receiving may be accomplished in various ways, such as causing the content to be saved on the first device or causing the content to be displayed on a screen of the first device. The receiving of the content may cause other content to be retrieved, such as if the content is a URL to other content (e.g., on the Internet).

[0281] IX. Exemplary Architecture

[0282] like Figure 5 , Figure 8 , Fig.12 and Fig.13 As described in the present invention, a computing device may have various components that determine proximity (e.g., ranging circuits using time of flight (TOF) or signal strength) and use such proximity information. Various applications can use the proximity information in various ways. An exemplary architecture will now be described that can be implemented using any of the various methods, devices, and systems provided herein.

[0283] Fig.17An exemplary architecture 1700 for using ranging information according to an embodiment of the present disclosure is shown. The exemplary architecture 1700 can be implemented in a first device that performs ranging with a second device as described herein. The ranging can be performed at the request of multiple client applications (e.g., a communication application 1770, a sharing module 1730, or an interaction module 1740 described in more detail below).

[0284] The ranging circuit 1705 may perform ranging operations as described herein, such as performing TOF measurements. The ranging circuit 1705 may provide ranging information to the proximity module 1720, which may analyze the ranging information. As examples, the ranging information may include transmission and reception times, distances, and signal strengths. The ranging circuit 1705 may perform some adjustments to the ranging information, such as by correcting for antenna phase effects due to angle of arrival, range deviation (e.g., if there is a fixed offset), or performing self-calibration, but the proximity module 1720 may provide more complex analysis.

[0285] The proximity module 1720 may provide commands to the ranging circuit 1705 to coordinate different modes or settings for performing ranging. For example, the proximity module 1720 may request more measurements or change the mode / setting to obtain more accurate measurements, or potentially reduce the power used to obtain these measurements. An example of a mode is whether to use one-to-one ranging, one-to-many ranging, or many-to-many ranging. Other modes may include a point-to-share mode, a notification mode, or a recipient suggestion mode. Therefore, the resolution of the measurement value can be set for the ranging circuit 1705, such as from a rough measurement value to a precise measurement value. This resolution can cause different rounds of messages to be exchanged between the two devices as part of the ranging operation.

[0286] Examples of analysis performed by proximity module 1720 include additional filtering, for example to reduce measurement noise on ranging circuit 1705. This setting may be used when the application requires high accuracy. A minimal amount of analysis may be performed when ranging information is needed as soon as possible.

[0287] In some embodiments, the proximity module 1720 can use measurements from an initial motion unit (IMU) 1710, which can include sensors such as an accelerometer, a gyroscope, and a magnetometer. The proximity module 1720 can determine or update a distance value (e.g., a radial distance or an angular distance). The processing performed by the proximity module 1720 can depend on which client application(s) is requesting ranging information.

[0288] Proximity module 1720 may provide distance information to a client application, such as communication application 1770 (e.g., email or text message), sharing module 1730, or interaction module 1740. The distance information may be provided directly to such client applications or provided to such client applications via other software modules. For example, the distance information may be provided directly to communication application 1770 or provided to the communication application via sharing module 1730. Communication application 1770 may correspond to communication application 1211 or communication application 1311. Sharing module 1730 may be used to implement Figures 6 to 8 In some embodiments, the interaction module 1740 can use the ranging information obtained in the many-to-many ranging mode. For example, the interaction module 1740 can be used when using augmented reality applications on adjacent mobile devices at the same time.

[0289] BT / Wi-Fi circuit 1760 may be used for authentication (e.g., as described herein) and proximity measurement (e.g., using RSSI). Machine learning model 1750 may provide recommendations, such as Fig.12 and Fig.13 The machine learning model 1750 can be implemented at various locations in the exemplary architecture 1700 (e.g., in the communication application 1770).

[0290] Proximity framework 1732 and proximity framework 1742 may reside within the respective modules and be used to communicate with proximity module 1720. The resident may perform additional processing, such as may be required by the respective modules. For example, proximity framework 1732 may determine a score of a proximate mobile device based on distance information, as described herein. In addition, proximity framework 1732 may perform classification on BTRSSI, such as for Fig.13 The RSSI classifier 1355 is described above. The proximity framework may be implemented in any other number of client applications that use ranging information.

[0291] The sharing module 1730 can use the address (e.g., media access control (MAC) address) obtained from the BT Wi-Fi circuit 1716 and associate it with the address obtained from the ranging circuit 1705. This set of associated data can then be combined with other data (e.g., contact information and historical data) and provided to the machine learning model 1750 or the communication application 1770 or other modules. In some embodiments where a recipient is suggested, a trigger command can be provided by the communication application 1770 to the sharing module 1730 and to other components to perform operations to suggest a recipient for a new communication.

[0292] X. Exemplary Devices

[0293] Fig.18 1 is a block diagram of an exemplary electronic device 1800. Device 1800 generally includes computer-readable media 1802, a processing system 1804, an input / output (I / O) subsystem 1806, wireless circuitry 1808, and audio circuitry 1810 including a speaker 1812 and a microphone 1814. These components may be coupled via one or more communication buses or signal lines 1803. Device 1800 may be any portable electronic device, including a handheld computer, a tablet computer, a mobile phone, a laptop computer, a tablet device, a media player, a personal digital assistant (PDA), a key fob, a car key, an access card, a multifunction device, a mobile phone, a portable gaming device, a headset, etc., including combinations of two or more of these items.

[0294] Obviously, Fig.18 The architecture shown is only one example of an architecture for device 1800 , and device 1800 may have more or fewer components or components in a different configuration than shown. Fig.18 The various components shown in the drawings may be implemented in hardware, software, or a combination of both hardware and software, including one or more signal processing circuits and / or application specific integrated circuits.

[0295] The wireless circuit 1808 is used to send and receive information to conventional circuits of one or more other devices (such as an antenna system, an RF transceiver, one or more amplifiers, a tuner, one or more oscillators, a digital signal processor, a CODEC chipset, memory, etc.) over a wireless link or network. The wireless circuit 1808 can use various protocols, such as those described herein. In various embodiments, the wireless circuit 1808 is capable of establishing and maintaining communications with other devices using one or more communications protocols including time division multiple access (TDMA), code division multiple access (CDMA), global system for mobile communications (GSM), enhanced data GSM environment (EDGE), wideband code division multiple access (W-CDMA), long term evolution (LTE), LTE-Advanced, WiFi (such as IEEE 802.11a, IEEE 802.11b, IEEE 802.11g and / or IEEE 802.11n), Bluetooth, Wi-MAX, voice over Internet protocol technology (VoIP), near field communication protocol (NFC), protocols for email, instant messaging and / or short message service (SMS), or any other suitable communications protocol, including communications protocols that have not been developed as of the filing date of this document.

[0296] The wireless circuit 1808 is coupled to the processing system 1804 via the peripheral device interface 1816. The peripheral device interface 1816 may include conventional components for establishing and maintaining communications between peripheral devices and the processing system 1804. Voice information and data information received by the wireless circuit 1808 (e.g., in a voice recognition or voice command application) is sent to the one or more processors 1818 via the peripheral device interface 1816. The one or more processors 1818 may be configured to process various data formats of the one or more applications 1834 stored on the medium 1802.

[0297] Peripheral device interface 1816 couples input peripheral devices and output peripheral devices of device 1800 to one or more processors 1818 and computer readable medium 1802. One or more processors 1818 communicate with computer readable medium 1802 via controller 1820. Computer readable medium 1802 may be any device or medium capable of storing code and / or data for use by one or more processors 1818. Computer readable medium 1802 may include a memory hierarchy, including cache, main memory and auxiliary memory. Any combination of RAM (e.g., SRAM, DRAM, DDRAM), ROM, flash memory, magnetic storage device and / or optical storage device (such as, disk drive, tape, CD (optical disc) and DVD (digital video disc)) can be used to implement the memory hierarchy. In some embodiments, peripheral device interface 1816, one or more processors 1818 and controller 1820 can be implemented on a single chip such as processing system 1804. In some other examples, they can be implemented on separate chips.

[0298] The processor 1818 may include hardware and / or software elements that perform one or more processing functions, such as mathematical operations, logical operations, data manipulation operations, data transfer operations, controlling the receipt of user input, controlling the output of information to a user, etc. The processor 1818 may be embodied as one or more hardware processors, microprocessors, microcontrollers, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), etc.

[0299] Device 1800 also includes a power system 1842 for powering the various hardware components. Power system 1842 may include a power management system, one or more power sources (e.g., batteries, alternating current (AC)), a recharging system, power fault detection circuits, power converters or inverters, power status indicators (e.g., light emitting diodes (LEDs)), and any other components typically associated with the generation, management, and distribution of power in a mobile device.

[0300] In some embodiments, device 1800 includes a camera 1844. In some embodiments, device 1800 includes a sensor 1846. The sensor may include an accelerometer, a compass, a gyroscope, a pressure sensor, an audio sensor, a light sensor, a barometer, etc. Sensor 1846 may be used to sense aspects of a location, such as an auditory marker or a light marker of a location.

[0301] In some embodiments, the device 1800 may include a GPS receiver, sometimes referred to as a GPS unit 1848. The mobile device may use a satellite navigation system such as a global positioning system (GPS) to obtain positioning information, timing information, altitude, or other navigation information. During operation, the GPS unit may receive signals from GPS satellites flying around the earth. The GPS unit analyzes the signals to estimate the transmission time and distance. The GPS unit may determine the current location (current position) of the mobile device. Based on these estimates, the mobile device may determine the position, altitude, and / or current speed. The position may be a geographic coordinate, such as latitude information and longitude information.

[0302] The one or more processors 1818 run various software components stored in the medium 1802 to perform various functions of the device 1800. In some embodiments, the software components include an operating system 1822, a communication module 1824 (or an instruction set), a location module 1826 (or an instruction set), a ranging module 1828 used as part of the ranging operations described herein, and other applications 1834 (or an instruction set).

[0303] The operating system 1822 may be any suitable operating system, including iOS, Mac OS, Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, or an embedded operating system such as VxWorks. The operating system may include various programs, instruction sets, software components, and / or drivers for controlling and managing general system tasks (e.g., memory management, storage device control, power management, etc.), and facilitate communication between various hardware and software components.

[0304] Communications module 1824 facilitates communications with other devices through one or more external ports 1836 or via wireless circuitry 1808, and includes various software components for processing data received from wireless circuitry 1808 and / or external ports 1836. External ports 1836 (e.g., USB, FireWire, Lightning connector, 60-pin connector, etc.) are suitable for coupling to other devices directly or indirectly through a network (e.g., the Internet, wireless LAN, etc.).

[0305] The location / motion module 1826 can help determine the current location (e.g., coordinates or other geographic location identifiers) and movement of the device 1300. Modern positioning systems include satellite-based positioning systems such as the Global Positioning System (GPS), cellular network positioning based on "cell IDs," and Wi-Fi positioning technology based on Wi-Fi networks. GPS also relies on the visibility of multiple satellites to determine location estimates, which may not be visible (or have weak signals) indoors or in "urban canyons." In some embodiments, the location / motion module 1826 receives data from the GPS unit 1848 and analyzes the signals to determine the current location of the mobile device. In some embodiments, the location / motion module 1826 can use Wi-Fi or cellular location technology to determine the current location. For example, the location of the mobile device can be estimated using knowledge of nearby cell locations and / or Wi-Fi access points and knowledge of their locations. Information identifying the Wi-Fi or cellular transmitter is received at the wireless circuit 1808 and transmitted to the location / motion module 1826. In some embodiments, the location module receives one or more transmitter IDs. In some embodiments, the sequence of transmitter IDs may be compared to a reference database (e.g., a cell ID database, a Wi-Fi reference database) that maps or associates transmitter IDs to location coordinates of corresponding transmitters, and based on the location coordinates of the corresponding transmitters, an estimated location coordinate of the device 1800 is calculated. Regardless of the particular positioning technology used, the position / motion module 1826 receives information from which a position fix can be derived, interprets the information, and returns location information, such as geographic coordinates, latitude / longitude, or other location fix data.

[0306] The ranging module 1828 can send / receive ranging messages to / from, for example, an antenna connected to the wireless circuit 1808. These messages can be used for various purposes, such as for identifying the transmitting antenna of the device, determining the timestamp of the message to determine the distance between the mobile device 1800 and another device. The ranging module 1828 can be present on various processors of the device, such as an always-on processor (AOP), a UWB chip, and / or an application processor. For example, a component of the ranging module 1828 can determine the distance on the AOP, and another component of the ranging module can interact with the sharing module, such as to display the location of another device on the screen so that the user selects another device to share data items. The ranging module 1828 can also interact with a reminder module, which can provide an alert based on the distance from another mobile device.

[0307] The one or more applications 1834 on the device 1800 may include any application installed on the device 1800, including but not limited to a browser, an address book, a contact list, email, instant messaging, social networking, word processing, keyboard emulation, desktop applets, JAVA-enabled applications, encryption, digital rights management, voice recognition, voice replication, a music player (for playing back recorded music stored in one or more files such as MP3 or AAC files), and the like.

[0308] There may be other modules or instruction sets (not shown), such as a graphics module, a time module, and the like. For example, the graphics module may include various conventional software components for rendering, animating, and displaying graphical objects (including but not limited to text, web pages, icons, digital images, animations, and the like) on a display surface. In another example, the timer module may be a software timer. The timer module may also be implemented in hardware. The timer module may maintain various timers for any number of events.

[0309] The I / O subsystem 1806 may be coupled to a display system (not shown) which may be a touch-sensitive display. The display displays visual output to the user in the GUI. The visual output may include text, graphics, video, and any combination thereof. Some or all of the visual outputs may correspond to user interface objects. Although the display may use LED (light emitting diode) technology, LCD (liquid crystal display) technology, or LPD (light emitting polymer display) technology, other display technologies may be used in other embodiments.

[0310] In some embodiments, I / O subsystem 1806 may include a display and user input devices such as a keyboard, a mouse and / or a touchpad. In some embodiments, I / O subsystem 1806 may include a touch-sensitive display. The touch-sensitive display may also accept input from a user based at least in part on tactile and / or tactile contact. In some embodiments, the touch-sensitive display forms a touch-sensitive surface for accepting user input. The touch-sensitive display / surface (together with any associated modules and / or instruction sets in computer-readable medium 1802) detects contact (and any movement or release of contact) on the touch-sensitive display, and converts the detected contact into interaction with a user interface object, such as one or more soft keys displayed on a touch screen when contact occurs. In some embodiments, the contact point between the touch-sensitive display and the user corresponds to one or more fingers of the user. The user may contact the touch-sensitive display using any suitable object or attachment such as a stylus, a pen, a finger, etc. The touch-sensitive display surface can use any suitable touch-sensitive technology to detect contact and any movement or release thereof, including capacitive technology, resistive technology, infrared technology, and surface acoustic wave technology, as well as other proximity sensor arrays or other elements for determining one or more points of contact with the touch-sensitive display.

[0311] In addition, the I / O subsystem 1806 may also be coupled to one or more other physical control devices (not shown), such as buttons, keys, switches, rocker buttons, dials, slide switches, joysticks, LEDs, etc., for controlling or performing various functions, such as power control, speaker volume control, phone ring volume, keyboard input, scrolling, holding, menus, lock screens, clearing and ending communications, etc. In some embodiments, in addition to the touch screen, the device 1800 may include a touch pad (not shown) for activating or deactivating specific functions. In some embodiments, the touch pad is a touch-sensitive area of ​​the device that, unlike a touch screen, does not display visual output. The touch pad may be a touch-sensitive surface separate from a touch-sensitive display or an extension of a touch-sensitive surface formed by the touch-sensitive display.

[0312] In some embodiments, an application executed on a user's device may be used to perform some or all of the operations described herein. Circuits, logic modules, processors, and / or other components may be configured to perform the various operations described herein. It should be understood by those skilled in the art that such configuration may be accomplished by design, setup, interconnection, and / or programming of specific components, depending on the specific implementation, and again depending on the specific implementation, the configured components may be reconfigurable or not reconfigurable for different operations. For example, a programmable processor may be configured by providing appropriate executable code; a dedicated logic circuit may be configured by appropriately connecting logic gates and other circuit elements; and so on.

[0313] Any software component or function described in this patent application can be implemented as a software code executed by a processor, which uses any suitable computer language, such as, for example, Java, C, C++, C#, Objective-C, Swift, or a scripting language such as Perl or Python using, for example, conventional or object-oriented techniques. The software code can be stored on a computer-readable medium as a series of instructions or commands to achieve storage and / or transmission. Suitable non-transient computer-readable media may include random access memory (RAM), read-only memory (ROM), magnetic media (such as a hard drive or floppy disk), or optical media (such as a compact disk (CD) or DVD (digital versatile disk)), flash memory, etc. The computer-readable medium may be any combination of such storage devices or transmission devices.

[0314] Computer programs incorporating various features of the present disclosure may be encoded on various computer-readable storage media; suitable media include disks or tapes, optical storage media such as compact disks (CDs) or DVDs (digital versatile disks), flash memory, etc. Computer-readable storage media encoded with program code may be packaged with compatible devices or provided separately from other devices. In addition, program code may be encoded and transmitted via wired optical and / or wireless networks (including the Internet) that conform to a variety of protocols, thereby allowing distribution, for example, via Internet downloads. Any such computer-readable medium may reside in or be located in a single computer product (e.g., a solid-state drive, a hard drive, a CD, or an entire computer system), and may be present in or located in different computer products within a system or network. The computer system may include a monitor, a printer, or other suitable display for providing any results mentioned herein to a user.

[0315] As described above, one aspect of the technology of the present invention is to collect, share and use data, including authentication tags and data derived from the tags. The present disclosure contemplates that, in some instances, these collected data may include personal information data that uniquely identifies or can be used to contact or locate a specific person. Such personal information data may include demographic data, location-based data, phone numbers, email addresses, twitter IDs, home addresses, data or records related to the user's health or fitness level (e.g., vital sign measurements, medication information, exercise information), date of birth, or any other identifying information or personal information.

[0316] The present disclosure recognizes that the use of such personal information data in the present technology can be used to benefit the user. For example, the personal information data can be used to authenticate another device and vice versa to control which device ranging operations can be performed. In addition, the present disclosure also anticipates other uses of personal information data that benefit the user. For example, health and fitness data can be shared to provide insights into the user's overall health status, or can be used as positive feedback to individuals using technology to pursue health goals.

[0317] This disclosure envisions that entities responsible for collecting, analyzing, disclosing, transmitting, storing or otherwise using such personal information data will comply with established privacy policies and / or privacy practices. Specifically, such entities should implement and adhere to privacy policies and practices that are recognized as meeting or exceeding industry or government requirements for maintaining the privacy and security of personal information data. Such policies should be easily accessible to users and should be updated as the collection and / or use of data changes. Personal information from users should be collected for legitimate and reasonable purposes of the entity and not shared or sold outside of these legitimate uses. In addition, such collection / sharing should be performed after receiving informed consent from the user. In addition, such entities should consider taking any necessary steps to defend and secure access to such personal information data and ensure that others who have access to personal information data comply with their privacy policies and processes. In addition, such entities may subject themselves to third-party assessments to demonstrate their compliance with widely accepted privacy policies and practices. In addition, policies and practices should be adjusted to specific types of personal information data collected and / or accessed, and to applicable laws and standards including specific considerations of jurisdiction. For example, in the United States, the collection or access of certain health data may be governed by federal and / or state laws, such as the Health Insurance Portability and Accountability Act (HIPAA), while health data in other countries may be subject to other regulations and policies and should be handled accordingly. Therefore, different privacy practices should be maintained in each country for different types of personal data.

[0318] Regardless of the foregoing, the present disclosure also contemplates implementation scenarios in which users selectively block the use or access of personal information data. That is, the present disclosure contemplates that hardware elements and / or software elements may be provided to prevent or block access to such personal information data. For example, with respect to sharing content and performing ranging, the technology of the present invention may be configured to allow users to choose to "opt in" or "opt out" to participate in the collection of personal information data at any time during or after registration for a service. In addition to providing "opt-in" and "opt-out" options, the present disclosure contemplates providing notifications related to access or use of personal information. For example, a user may be notified that their personal information data will be accessed when downloading an application, and then be reminded again just before the personal information data is accessed by the application.

[0319] In addition, it is an object of the present disclosure that personal information data should be managed and processed to minimize the risk of unintentional or unauthorized access or use. Risks can be minimized by limiting data collection and deleting data once it is no longer needed. In addition, and when applicable, including in certain health-related applications, data de-identification can be used to protect the privacy of users. De-identification can be facilitated by removing specific identifiers (e.g., date of birth, etc.), controlling the amount or specificity of stored data (e.g., collecting location data at the city level rather than at the address level), controlling how data is stored (e.g., aggregating data between users), and / or other methods when appropriate.

[0320] Therefore, while the present disclosure broadly covers the use of personal information data to implement one or more of the various disclosed embodiments, the present disclosure also contemplates that various embodiments may be implemented without access to such personal information data. That is, various embodiments of the present technology will not fail to function properly due to the lack of all or part of such personal information data.

[0321] Although the disclosure has been described with respect to specific embodiments, it should be understood that the disclosure is intended to cover all modifications and equivalents coming within the scope of the following claims.

[0322] References to "a," "an," or "the" are intended to mean "one or more," unless expressly indicated to the contrary. Use of "or" is intended to mean an "inclusive or" rather than an "exclusive or," unless expressly indicated to the contrary. Reference to a "first" component does not necessarily require that a second component be provided. Furthermore, reference to a "first" component or a "second" component does not limit the referenced components to specific locations, unless expressly stated. The term "based on" is intended to mean "based, at least in part, on."

[0323] All patents, patent applications, publications, and specifications mentioned herein are incorporated by reference in their entirety for all purposes. No admission is made that any document is prior art.

Claims

1. A method for sharing data between a sending mobile device and a receiving mobile device, the method comprising the sending mobile device performing the following operations: storing a data item in a memory of the sending mobile device; receiving, at a user interface of the sending mobile device, user input indicating a sharing session; The sending mobile device transmits one or more ranging settings to the receiving mobile device to perform a ranging operation; The sending mobile device transmits a first set of one or more pulses in a ranging request message to the receiving mobile device according to the one or more ranging settings; receiving, by the transmitting mobile device, a second set of one or more pulses in one or more ranging response messages from the receiving mobile device; determining distance information corresponding to one or more transmission times of the first set of one or more pulses and one or more reception times of the second set of one or more pulses; receiving, via the user interface, a selection of the receiving mobile device to share the data item, the selection being based on the distance information; as well as The data item is transmitted in response to the selection of the receiving mobile device. 2 . The method of claim 1 , further comprising transmitting, by the sending mobile device, a notification signal, the notification signal comprising a first authentication tag of the sending mobile device.

3. The method of claim 2, further comprising receiving a second authentication tag of the receiving mobile device from the receiving mobile device, wherein the sending mobile device authenticates the receiving mobile device using the second authentication tag; and The receiving mobile device uses the first authentication tag to authenticate the sending mobile device. 4 . The method of claim 1 , wherein the selection of the receiving mobile device is determined based on an orientation of the sending mobile device and the receiving mobile device as determined using the distance information.

5. The method according to claim 1, further comprising: An icon corresponding to the receiving mobile device is displayed on a screen of the sending mobile device, wherein the icon is displayed at a certain position on the screen based on the distance information, wherein the selection of the receiving mobile device is received at the icon on the screen.

6. The method according to claim 5, wherein the icon is displayed at the position on the screen based on the distance information by: comparing the distance of the distance information with a threshold; and The icon is displayed when the distance is less than the threshold.

7. The method according to claim 5, wherein the icon is displayed at the position on the screen based on the distance information by: using the distance information to determine a physical location of the receiving mobile device relative to the sending mobile device; and The location is selected from a set of locations based on the physical location, wherein the physical location includes a distance, and wherein the location is a location in a list of a plurality of mobile devices, each mobile device having an associated distance.

8. A method for providing a communication interface to a user, the method comprising: performing the following operations by a first mobile device: storing a plurality of contacts including contact information in a database of the first mobile device, each contact being associated with the stored identifier; receiving, at a user interface of the first mobile device, a command to send a new communication using a communication application executing on the first mobile device; wirelessly detecting one or more incoming messages from one or more other mobile devices; analyzing the one or more incoming messages to determine one or more incoming identifiers corresponding to the one or more other mobile devices; accessing the database using the one or more incoming identifiers to obtain the contact information for the one or more other mobile devices; sending, by the communication application, a request for a suggested recipient to a suggestion engine; providing the communication application with the contact information of the one or more other mobile devices in the suggested recipient list provided by the suggestion engine; receiving, by the communication application, a selection of a second mobile device from the list of suggested recipients among the one or more other mobile devices; as well as The new communication is sent by the communication application to the second mobile device.

9. The method of claim 8, wherein the list of suggested recipients is provided prior to receiving an indication of an intended recipient.

10. The method according to claim 8, further comprising: transmitting a first set of one or more pulses in a ranging request message to each of the one or more other mobile devices using a first wireless protocol; receiving a second set of one or more pulses in one or more ranging response messages from each of the one or more other mobile devices using the first wireless protocol; determining distance information corresponding to one or more transmission times of the first set of one or more pulses and one or more reception times of the second set of one or more pulses for each of the one or more other mobile devices; as well as The suggested recipient list is determined using the distance information.

11. The method of claim 10, wherein using the distance information to determine the suggested recipient list comprises ranking the one or more other mobile devices based on the distance information.

12. The method of claim 10, wherein the distance information comprises a distance, and wherein using the distance information to determine the list of suggested recipients comprises: comparing the distance of the one or more other mobile devices to a threshold; as well as Any mobile device of the one or more other mobile devices whose distance is greater than the threshold value is excluded from the suggested recipient list.

13. The method of claim 10, wherein the distance information comprises an angle value, and wherein using the distance information to determine the list of suggested recipients comprises: comparing the angle values ​​of the one or more other mobile devices to a threshold value; as well as Any of the one or more other mobile devices having the angle value greater than the threshold is excluded from the suggested recipient list.

14. The method according to claim 10, further comprising: storing a database of historical user interactions, the database of historical user interactions including historical recipients, historical communication applications, and historical context data; as well as The historical user interactions are used to determine the list of suggested recipients.

15. The method according to claim 10, further comprising: Prior to transmitting the first set of one or more pulses to each of the one or more other mobile devices: transmitting, via a second wireless protocol, an advertising signal including a first authentication tag of the first mobile device; receiving a second authentication tag of the second mobile device from the second mobile device via the second wireless protocol; authenticating the second mobile device using the second authentication tag, wherein the second mobile device authenticates the first mobile device using the first authentication tag; as well as One or more ranging settings are communicated with the second mobile device using the second wireless protocol, wherein the first set of one or more pulses is transmitted according to the one or more ranging settings, and wherein a pulse width used by the first wireless protocol is less than a pulse width used by the second wireless protocol.

16. The method of claim 8, wherein the one or more incoming messages are broadcast by the one or more other mobile devices.

17. The method of claim 8, wherein the one or more incoming messages are generated using one or more cryptographic keys, and wherein analyzing the one or more incoming messages to determine the one or more incoming identifiers comprises: applying the stored cryptographic key to the first portion of the incoming message to obtain a cryptographic result; as well as The cryptographic result is matched to a second portion of the incoming message.

18. The method of claim 17, wherein the stored cryptographic key is a public key, and wherein the incoming message is generated using a private key corresponding to the public key.

19. The method of claim 8, wherein the one or more incoming messages include the one or more incoming identifiers corresponding to the one or more other mobile devices.

20. A method for providing a notification at a first mobile device of a first user, the method comprising performing the following operations by the first mobile device: receiving user input at a user interface of the first mobile device, the user input configuring the notification to be provided by the first mobile device based on a proximity of the first mobile device to a second mobile device of a second user; transmitting, via a first wireless protocol of the first mobile device, an advertising signal including a first authentication tag of the first mobile device; receiving a second authentication tag of the second mobile device from the second mobile device via the first wireless protocol; authenticating the second mobile device using the second authentication tag, wherein the second mobile device authenticates the first mobile device using the first authentication tag; communicating one or more ranging settings with the second mobile device using the first wireless protocol to perform ranging operations using a second wireless protocol; transmitting a first set of one or more pulses in a ranging request message to the second mobile device according to the one or more ranging settings using the second wireless protocol, wherein a pulse width used by the second wireless protocol is less than a pulse width used by the first wireless protocol; receiving a second set of one or more pulses in one or more ranging response messages from the second mobile device using the second wireless protocol; determining distance information corresponding to one or more transmission times of the first set of one or more pulses and one or more reception times of the second set of one or more pulses; comparing the distance of the distance information with a threshold; as well as The notification is provided based on the distance exceeding the threshold. The method of claim 20 , wherein the notification is provided when the distance is greater than the threshold.

22. The method of claim 20, wherein the notification comprises an audio output, a visual output, or a tactile output, or any combination thereof.

23. The method of claim 20, wherein the notification is a reminder, and wherein the notification is provided when the distance is less than the threshold.

24. The method according to claim 23, further comprising: receiving a user input at the user interface of the first mobile device, the user input configuring a distance at which the reminder is provided; confirming that the second authentication tag of the second mobile device is stored by the first mobile device; as well as After authenticating the second mobile device, ranging is initiated by the first mobile device using the second wireless protocol.

25. The method of claim 20, wherein the distance information comprises a plurality of distance measurements over time, the method further comprising: The notification is provided based on a distance in the plurality of distance measurements being less than the threshold for at least a specified amount of time.

26. The method of claim 20, wherein the distance information comprises a position vector specifying a relative position between the first mobile device and the second mobile device, and wherein comparing the distance to the threshold comprises: defining a plurality of zones around the first mobile device; assigning a score to the position vector based on a region corresponding to the position vector; as well as The score is compared to the threshold.

27. The method of claim 26, wherein the area is defined relative to a pointing direction of the first mobile device.

28. The method of claim 20, further comprising: receiving approval from a second mobile device to establish the notification; as well as The notification is established in response to receiving the approval.

29. A method for communication between a first device and a second mobile device, the method comprising performing, by the first device, the following operations: receiving a message from the second mobile device, the message comprising an authentication tag; authenticating the second mobile device using the authentication tag; responsive to authenticating the second mobile device, performing a ranging operation with the second mobile device to determine distance information; displaying a visual indicator on a screen of the first device based on the distance information, wherein the visual indicator indicates that content from the second mobile device is available; receiving a selection of the visual indicator; and In response to the selection of the visual indicator, the content is received from the second mobile device.

30. The method of claim 29, wherein the content from the second mobile device is displayed on a screen of the first device in response to the selection of the visual indicator.

31. The method of claim 29, wherein the visual indicator indicates that the content from the second mobile device is capable of being displayed on the screen of the first device.

32. The method of claim 29, further comprising: An identifier associated with the second mobile device is stored in a memory of the first device, wherein authenticating the second mobile device comprises comparing the authentication tag to the identifier stored in the memory.

33. The method of claim 29, wherein the message comprises a payload and a digital signature, the payload comprising the authentication tag, wherein the digital signature is generated from at least a portion of the payload, the method further comprising: storing in a memory of the first device an identifier associated with a cryptographic key corresponding to the second mobile device, Wherein authenticating the second mobile device comprises: using the authentication tag to access the memory to match the identifier and obtain the cryptographic key, and The digital signature is verified using the cryptographic key.

34. The method of claim 29, wherein the ranging operation measures signal strength of one or more messages transmitted between the second mobile device and the first device.

35. The method of claim 29, wherein the ranging operation measures a time of flight of one or more messages transmitted between the second mobile device and the first device.

36. The method of claim 29, wherein the distance information specifies a distance value, the method further comprising: It is determined that the distance value is less than a threshold, wherein the visual indicator is displayed in response to the distance value being less than the threshold.

37. The method of claim 29, further comprising: using the distance information to determine a direction of the second mobile device relative to the first device; as well as A position of the visual indicator on the screen is selected based on the direction.

38. The method of claim 29, wherein the first device is a device of a first user and the second mobile device is a device of a second user.

39. A computer product comprising a computer readable medium storing a plurality of instructions for controlling a computer system to perform the operations of the method according to any one of claims 1-38.

40. A system, comprising: The computer product according to claim 39; as well as One or more processors for executing instructions stored on the computer-readable medium.

Citation Information

Patent Citations

  • Mobile device for communicating and ranging with access control system for automatic functionality

    US20190135229A1