Ranking wireless streaming devices based on proximity

By combining UWB ranging, RSSI and mobile device orientation technologies, the problem of choosing the most suitable device among multiple compatible devices is solved, achieving more efficient device identification and user experience.

CN119678504APending Publication Date: 2025-03-21APPLE INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380044554.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-01-13
Filing Date
2023-05-16
Publication Date
2025-03-21

AI Technical Summary

Technical Problem

In wireless streaming protocols, determining the device that is currently best suited to stream media content can be challenging, especially in the presence of multiple compatible devices.

Method used

The media devices closest to the mobile device are determined and a list of related devices are generated by using ultra-wideband (UWB) ranging, received signal strength indication (RSSI) of Bluetooth advertisement signals, and orientation of the mobile device.

Benefits of technology

Effectively identifying and prioritizing the most relevant media devices improves user experience and reduces the complexity of device selection.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119678504A_ABST
    Figure CN119678504A_ABST
Patent Text Reader

Abstract

In some implementations, the device may include ranging with one or more playback devices configured to play streaming data when the streaming data is received from the mobile device to determine ranging information between the mobile device and each of the one or more playback devices, and wherein the ranging information provides at least one of a distance and an orientation between the mobile device and each of the one or more playback devices. Further, the device may include detecting a selection of the media item. In addition, the device may include identifying a particular playback device from the one or more playback devices for playing the selected media item based on ranging information of the mobile device relative to each of the one or more playback devices.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims the benefit of U.S. Provisional Application No. 63 / 365,855, filed on June 3, 2022, and U.S. Patent Application No. 18 / 096,803, filed on January 13, 2023, both of which are hereby incorporated by reference in their entirety for all purposes. Background Art

[0003] Wireless protocols can be used to stream media content from mobile computing devices (e.g., smart phones) to nearby devices (e.g., smart speakers, AppleTV, smart TVs). Wireless streaming protocols (e.g., AirPlay) technology allows audio, video, or screen data to be sent from a mobile device (e.g., an Apple device) to any device (e.g., a first party or a third party) that implements a wireless streaming protocol that can be licensed. Applications that support wireless streaming protocols can generate lists (e.g., picker lists) that can provide clarity to users, where media devices will be most relevant to streaming media to users at this moment. The list can be a flat list sorted alphabetically. With the popularity of wireless streaming protocols, since almost every new smart TV, smart device (e.g., smart speaker) is able to support wireless streaming protocols, and it may be challenging to determine which device is most suitable for streaming media content (among multiple potential devices) at this moment, the surge in end values ​​can cause problems. For example, a user may be sitting within a few meters of a smart TV that is compatible with wireless streaming, and if a specific smart TV for streaming content is listed first, it will be beneficial to the user. Summary of the invention

[0004] Certain embodiments of the present invention may provide methods, systems, and apparatus for determining related media devices to be included in a list of media devices for streaming media content. If ultra-wideband (UWB) ranging is available, the mobile device may perform ranging with one or more media devices to determine which devices are closest to the mobile device. If UWB ranging is not available, the mobile device may use a received signal strength indication (RSSI) from a Bluetooth advertising signal or a Wi-Fi signal to determine whether the mobile device is within certain cluster locations. The mobile device may also use the orientation of the mobile device (e.g., to determine whether the device is pointing to a specific media device) to identify related media devices to be included in a list of related media devices. The mobile device may also perform ranging with a third device (e.g., another mobile device) to determine the location of the mobile device relative to one or more media devices.

[0005] In various embodiments, the mobile device may use UWB ranging, RSSI determination, and the orientation of the mobile device to determine whether the media device should even be included in the list of related media devices.

[0006] In various aspects, a system of one or more computers may be configured to perform actions by virtue of having software, firmware, hardware, or a combination thereof installed on the system that, in operation, causes the system to perform specific operations or actions. One or more computer programs may be configured to perform actions by virtue of including instructions that, when executed by a data processing device, cause the device to perform specific operations or actions.

[0007] In a general aspect, a method may include measuring distance with one or more playback devices to determine the distance information between a mobile device and each playback device in the one or more playback devices. The one or more playback devices may be configured to play the stream data when receiving the stream data from the mobile device. The distance information may provide at least one of the distance and orientation between the mobile device and each playback device in the one or more playback devices. The method may include detecting the selection of media items. The method may include identifying the specific playback device for playing the selected media items from the one or more playback devices based on the distance information of each playback device in the one or more playback devices relative to the one or more playback devices. Other embodiments of this aspect include corresponding computer systems, devices and computer programs recorded on one or more computer storage devices, each of which is configured to perform the action of the method.

[0008] Specific implementations may include one or more of the following features. The method may include measuring one or more sensor values ​​at one or more times. One or more sensor values ​​may be measured using one or more sensors of a mobile device. One or more sensor values ​​may be determined based on one or more signals emitted by corresponding one or more signal sources. The method may include determining the relative position of the mobile device relative to one or more playback devices based on the one or more sensor values. The method may include identifying a specific playback device for playing the selected media item from one or more playback devices in a list based on the relative position of the mobile device relative to one or more playback devices. The one or more signal sources may include the one or more playback devices.

[0009] A method for determining a relative position of a mobile device relative to one or more playback devices may include generating a heat map of one or more signals at a location. The heat map may identify the location of one or more playback devices at the location. The method may include determining a plurality of clusters at the location based on the heat map. Each cluster may be physically separated at the location. The method may include determining a probability that the mobile device is within one of the plurality of clusters based on the received strength of the one or more signals and the heat map. The method may include determining a probability that a particular signal in the one or more signals is detected within a time period. The method may include determining whether the mobile device is within a particular cluster based in part on the probability. The method may include determining an orientation of the mobile device relative to the one or more playback devices. The method may include identifying a particular playback device for playing a selected media item from one or more playback devices in a list of the one or more playback devices based on the orientation of the mobile device relative to the one or more playback devices. The method may include receiving a notification signal from the one or more playback devices. The notification signal may provide information about the communication capabilities of each of the one or more playback devices. The notification signal may include an authentication tag of a particular playback device in the one or more playback devices. The method may include authenticating the particular playback device based at least in part on the authentication tag. The method may include displaying an icon corresponding to a specific device on a screen of a mobile device, wherein the icon is displayed at a position on the screen based on one or more ranges or relative positions of the mobile device. The method may include receiving a gesture on a display of the mobile device. The method may include identifying a specific playback device for playing a selected media item from one or more playback devices in a list of one or more playback devices based on the received gesture. The method may include routing information to a specific playback device for playing the media item. Specific implementations of the described technology may include hardware, methods or processes, or computer tangible media.

[0010] Other embodiments of the present invention relate to systems, devices, and computer-readable media associated with the methods described herein. In one embodiment, the computer-readable medium includes instructions for receiving data and analyzing data, but does not include instructions for instructing a machine to create data. In another embodiment, the computer-readable medium includes instructions for instructing a machine to create data. In one embodiment, a computer program product includes a computer-readable medium storing a plurality of instructions for controlling a processor to perform the operations of the methods described herein. Embodiments also relate to a computer system configured to perform the steps of any of the methods described herein, potentially having different components for performing a corresponding step or a corresponding set of steps.

[0011] Reference to the remainder of the specification, including the drawings and claims, will recognize other features and advantages of embodiments of the present invention. Additional features and advantages of the present invention, as well as the structure and operation of various embodiments, are described in detail below with respect to the drawings. In the drawings, the same reference numerals may indicate the same or functionally similar elements. BRIEF DESCRIPTION OF THE DRAWINGS

[0012] Figure 1 An exemplary floor plan of a residence in which predictive routing of media streams may be used in accordance with aspects of the present disclosure is illustrated.

[0013] Figure 2 A sequence diagram for performing ranging measurements between an electronic device and a mobile device according to an embodiment of the present disclosure is shown.

[0014] Figure 3 A sequence diagram involving a first electronic device (e.g., a smart speaker, a smart TV, a smart appliance, etc.) and a mobile device with a multi-antenna array is illustrated.

[0015] Figure 4 Communication techniques for determining angle of arrival are illustrated.

[0016] Figure 5A is a simplified diagram illustrating clusters of physical locations in a physical space in accordance with aspects of the present disclosure.

[0017] Figure 5B is an example of various aspects of the present disclosure. Figure 1 A simplified diagram of a cluster of sensor locations in sensor space corresponding to physical locations in physical space.

[0018] Fig. 6A is a simplified diagram illustrating measurement of sensor locations in a floor plan in accordance with aspects of the present disclosure.

[0019] Figure 6B is a graph representing sensor measurements used to determine sensor position in accordance with aspects of the present disclosure.

[0020] Figure 7 An exemplary cluster map is illustrated.

[0021] Figure 8 An exemplary schematic diagram illustrating the distribution of equipment is illustrated.

[0022] Fig. 9 is a flow chart illustrating a method for performing secure ranging with a mobile device.

[0023] Fig.10 An exemplary list of potential devices is illustrated.

[0024] Fig.11is a flow chart illustrating a method for performing secure ranging with a mobile device.

[0025] Fig.12 is a block diagram of components of a mobile device operable to perform ranging according to an embodiment of the present disclosure.

[0026] Fig.13 is a block diagram of an example device according to an embodiment of the present disclosure. DETAILED DESCRIPTION

[0027] Embodiment provides the technology for determining the relevant media device to be included in the list of media devices for streaming media content.Mobile device can receive wireless signal (for example, announcement packet from Bluetooth signal).Wireless signal can include information describing the capability of playback device or electronic device (for example, router) in the room.Mobile device can receive wireless signal, and determine one or more capabilities of other devices (for example, time of flight (TOF) information from ranging technology (for example, UWB ranging)) from the information contained in the wireless signal.If TOF information is available, mobile device can measure distance with one or more media devices to determine which devices are closest to mobile device.If TOF information is not available, mobile device can use the received signal strength indication from Bluetooth announcement signal or Wi-Fi signal to determine whether mobile device is in certain cluster position.Mobile device can also use the orientation of mobile device (for example, determine whether device is pointing to specific media device) to identify relevant media device to be included in the list of relevant media devices.Mobile device can also measure distance with third device (for example, another mobile device) to determine the position of mobile device relative to one or more media devices.

[0028] In various embodiments, the mobile device may use UWB ranging, RSSI determination, and the orientation of the mobile device to determine whether the media device should even be included in the list of related media devices.

[0029] Modern mobile devices are operated to perform a variety of different functions. Some of these functions may include playing various types of media (e.g., audio, video, etc.) locally (on a mobile device) or streaming to one or more remote devices (e.g., display devices, televisions, stereos, speakers, etc.). Users typically have multiple such remote devices at their homes. Aspects of the present disclosure enable prediction of a specific remote device among multiple remote devices to which a user intends to route a media stream based on the micro-positioning of a mobile device and the historical use of the mobile device. In some cases, the media can be automatically routed to the predicted device (once the user requests playback of the media). In other cases, one or more predicted remote devices can be presented to the user and prompted to select a specific remote device. In still other cases, a shortcut can be generated on a mobile device so that the mobile device predicts the media that the user wants to play, predicts the remote device that the user intends to receive the predicted media, and automatically connects to the remote device and initiates the streaming of the predicted media to the remote device. In some cases, the predicted target device for routing the media stream can be a local device.

[0030] I. Routing media streams to devices

[0031] Electronic devices (e.g., media playback devices) may have different capabilities. For example, some of the devices may be equipped with TOF capabilities (e.g., UWB ranging) to measure distance with other electronic devices. The electronic devices may transmit wireless signals that may announce the capabilities of the electronic devices. TOF capabilities may preferably be used to accurately locate electronic devices in a room. If TOF capabilities are not available, other techniques (e.g., measuring RSSI, determining the orientation of the mobile device) may be used to determine the relevant playback devices in the room.

[0032] Figure 1 An exemplary layout of a residence in which predictive routing of media streams may be used in accordance with aspects of the present disclosure is illustrated. A modern home typically includes multiple different types of remote devices 104A to 104E (e.g., televisions, stereos, Bluetooth devices, speakers, etc.) configured to play or stream media. For example, a residence may include a television (e.g., 104A) in a living room, another television (e.g., 104E) in a kitchen 104E, and one or more devices (e.g., computers, stereos, televisions, etc.) 104B to 104D configured to play media in each bedroom. A user may operate more than one remote device within a residence to stream media. For example, a user may stream a television program using a living room television (e.g., 104A) in the afternoon and continue streaming using a different bedroom television (e.g., 104C) in the evening.

[0033] An embodiment may define micro-positioning as a defined location of a mobile device, as measured using sensor values ​​determined relative to one or more fixed signal sources. Micro-positioning and past routing selections may be used to determine possible remote devices to stream specific media. In some cases, such as when the probability is high (e.g., a calculated result is greater than 80%), streaming media to a remote device may be automatically initiated by the remote device. For example, if the mobile device always selects the living room TV to stream media when the mobile device is located on the sofa 108 in the living room at night, the probability that the user will select the living room TV when the mobile device is located on the sofa 108 may be high. In various embodiments, the mobile device may automatically select the living room TV in these cases.

[0034] In other cases, such as when the probability is medium (e.g., calculated to be between 50% and 80%), a list of possible devices may be presented to the user for selection. For example, if the mobile device has a micro-position near two remote devices (e.g., 104A and 104E) and the mobile device uses each device 50% of the time, the probability that either device is the user's intended device for media streaming may not be high enough to trigger automatic routing of the media stream to a specific remote device. The mobile device may present a graphical user interface option to the user, enabling the user to select a specific remote device intended for media streaming. In some cases, only those devices with medium probabilities may be displayed to the user to make selection easier (and devices below the medium threshold may be omitted from the list). In other cases, a third option may be presented to the user, which, once selected, presents all possible remote devices in the residence for selection for media streaming.

[0035] The location of the mobile device may be determined using one or more sensors of the mobile device. For example, the mobile device may detect signals transmitted from one or more fixed signal sources such as router 112, remote devices 104A-E, Bluetooth devices, etc. One or more characteristics of each received signal (e.g., data packet, signal strength, etc.) may be used to provide the relative location of the mobile device to the one or more fixed signal sources (although without knowing the layout of the structures).

[0036] A brief review of ranging and triangulation techniques follows.

[0037] II. Ranging / Triangulation Technology

[0038] The mobile device or smart speaker may include circuitry for performing ranging measurements. Such circuitry may include one or more dedicated antennas (e.g., three antennas) and circuitry for processing the measured signals. The ranging measurements may be performed using the flight time of a pulse between the mobile device and the smart speaker. In some implementations, the round trip time (RTT) is used to determine, for example, distance information for each of the antennas. 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.

[0039] A. Sequence diagram

[0040] Figure 2 A sequence diagram 200 for performing ranging measurements between an electronic device and a mobile device according to an embodiment of the present disclosure is shown. The electronic device and the mobile device may belong to two different users. In various embodiments, the mobile device 210 may be an electronic device (e.g., a smart speaker, a smart TV, a smart appliance, etc.). In various embodiments, the electronic device and the mobile device may be electronically linked through a pairing process. As described in more detail later, such identifiers may be used for authentication purposes, for example, so that ranging is not performed with unknown devices. Although Figure 2 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.

[0041] In various embodiments, more complex exchanges may be used. For example, an electronic device may send out a polling message and create multiple response time slots. Within each response time slot, there may be one, two, or three packet exchanges. Additional packet exchanges may correct for ranging errors (e.g., differential clock rates, multipath propagation) in order to generate a more accurate relative position (distance / angle).

[0042] The first electronic device 210 (e.g., a smart speaker, a smart TV, a smart appliance, etc.) can initiate a ranging measurement (operation) by transmitting a ranging request 201 to a second electronic device 220 (e.g., a mobile device). The ranging request 201 may include a first set of one or more pulses. The ranging measurement may be performed using a ranging wireless protocol (e.g., ultra-wideband (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)).

[0043] At T1, the first electronic device 210 transmits a ranging request 201. At T2, the second electronic device 220 receives the ranging request 201. T2 may be an average reception time when multiple pulses are in the first group. The second electronic device 220 may anticipate the ranging request 201 within a time window based on previous communications (e.g., using another wireless protocol). The ranging wireless protocol and the other wireless protocol may be synchronized so that the second electronic device 220 may turn on the ranging antenna and associated circuits within a specified time window, rather than turning them on throughout the ranging session.

[0044] In response to receiving the ranging request 201, the second electronic device 220 may transmit a ranging response 202. As shown, the ranging response 202 is transmitted at time T3 (e.g., the transmission time of a pulse or the average transmission time of a group of pulses). T2 and T3 may also be a group of times of corresponding pulses. The ranging response 202 may include the times T2 and T3 so that the first electronic device 210 may calculate the distance information. Alternatively, the increment between the two times (e.g., T3-T2) may be sent. The ranging response 202 may also include an identifier of the first electronic device 210, an identifier of the second electronic device 220, or both.

[0045] At T4, the first electronic device 210 may receive the ranging response 202. Like the other times, T4 may be a single time value or a group of time values.

[0046] At 203, the first electronic device 210 calculates distance information 230, 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. In some embodiments, the processing time of the second electronic device 220 may also be subtracted from the total round trip time. For example, when the time corresponds to the time group of the pulse group and when frequency correction is implemented, more complex calculations may also be performed. In addition, additional packet exchanges may be included to correct for ranging errors such as differences between device clock frequencies.

[0047] However, ranging may not be desired and may be difficult in certain applications. As the number of participating devices increases, the complexity of the ranging session also increases due to potential conflicts between ranging packets in the same frequency band. In addition, other ranging techniques may be complicated when one or more mobile devices enter or leave the communication session. In addition, multiple beacons can be used for precise position location of mobile devices, where the receiving device is in a passive receive-only mode.

[0048] Figure 3A sequence diagram 300 of ranging operations involving a first electronic device 310 (e.g., a smart speaker, a smart TV, a smart appliance, etc.) and a mobile device 320 having three antennas 321, 322, and 323 according to an embodiment of the present disclosure is shown. The antennas 321, 322, 323 can be arranged to have different orientations, for example, to define a field of view for calculating an angle of arrival or for performing ranging measurements.

[0049] exist Figure 3 In this example, each of antennas 321, 322, 323 receives packets (including one or more pulses) transmitted by a first electronic device 310 (e.g., a smart speaker, a smart TV, a smart appliance, etc.). These packets can transfer information to the mobile device 320, such as a link to an information or ranging request. The link can be received by the mobile device. The receipt of the packet can trigger one or more actions on the mobile device 320. The action can include initiating a handoff or enabling a user interface on the mobile device 320. Handoff can refer to the process of transferring an ongoing call or data connectivity from one device to another.

[0050] The mobile device 320 may have multiple antennas that can be used to determine angle information related to the orientation of the mobile device 320 relative to the first electronic device 310. Antennas 321, 322, and 323 may receive packets at times T2, T3, and T4, respectively. Thus, the antennas (e.g., UWB antennas) of the mobile device 320 may listen at substantially the same time. In various embodiments, each of the antennas 321, 322, and 323 may respond individually.

[0051] The processor 324 of the mobile device 320 can calculate the angle of arrival for the first electronic device 310. The processor 324 can receive the arrival time of the packet from the antennas 321, 322, and 323 at 303. The mobile device 320 circuit (e.g., UWB circuit) can analyze the signals received from the antennas 321, 322, and 323. As described later, the processor 324 can be a processor that is always on, which uses less power than an application processor that can perform more general functionality. The processor 324 can know the geometry of the three antennas on the phone. The processor 324 can also know the orientation of the mobile device 320 based on one or more sensors on the mobile device 320 (e.g., accelerometers, gyroscopes, and compasses). Using the known orientations of the antennas 321, 322, and 323 and the known orientation of the mobile device 320, the processor can use the arrival times T2, T3, and T4 to calculate the angle of arrival of the packet for the beacon device 310.

[0052] Therefore, a mobile device may have multiple antennas 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 two-dimensional position (2D) may be specified using various coordinates (e.g., Cartesian or polar), where polar coordinates may include both angular and radial values.

[0053] B. Low power consumption solution

[0054] Passive beacons can transmit timing signals via wireless protocols, such as Bluetooth Low Energy (BLE) advertisements. One of the advantages of BLE is that it has lower power consumption even when compared to other low-power technologies. BLE achieves optimization and low power consumption by keeping the radio components turned off as much as possible and sending small amounts of data at low transmission speeds. Another advantage of BLE is that it can be enabled on most smartphones on the market.

[0055] In the advertising state, the device sends out packets containing useful data for other devices to receive and process. Packets are sent at intervals defined as advertising intervals. This interval can be random or pseudo-random. There are 40 RF channels in BLE, each spaced 2MHz (center to center). Three of these channels are called primary advertising channels, while the remaining 37 channels are used for secondary advertising and for data packet transfer during connection. The announcement may start with an announcement packet sent on three primary advertising channels (or a subset of these channels). This allows the center to find the advertising device (peripheral or broadcasting device) and parse its advertising packet. Then, if the advertising device (e.g., peripheral device) allows it, the center can initiate a connection.

[0056] C.Ultra-wideband packet transmission

[0057] Ultra-wideband (UWB) transmissions are not continuous transmissions, so a receiving device that wishes to acquire a UWB transmission will need to know when the transmission begins or will need to expend energy in a powered-on state listening until the device captures the pulsed UWB signal. If the receiving device knows even the approximate transmission time, the receiver can remain in a low-power or sleep mode until just before the transmission time. For UWB communications, knowing when the first packet is about to arrive can be challenging.

[0058] A technique for propagating UWB transmission times is to use another wireless protocol (e.g., Bluetooth Low Energy (BLE) announcement transmission) to broadcast the transmission time information at a defined time after the announcement signal. Although the example may refer to Bluetooth, other wireless protocols may be used. BLE has 40 physical channels in the 2.4GHz ISM band, each spaced 2 megahertz (MHz). Bluetooth defines two types of transmissions: data transmission and announcement transmission. Therefore, three of the 40 channels are dedicated to announcements, and 37 channels are dedicated to data. Announcements allow devices to broadcast information that defines their intent.

[0059] UWB information packets can be configured to be transmitted at a specific time relative to the BLE advertisement of the transmitting device. Therefore, the receiving device can listen for UWB packets at the expected time or during an expected time window around the expected time. UWB packets can convey transmitting device information, deep link and / or transmission time information. The receiver device can use the time in the BLE advertisement message to determine when to listen for the next poll. UWB packets can be transmitted within the UWB frequency range.

[0060] 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 gigahertz (GHz) and 10.6 gigahertz (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).

[0061] The ranging wireless protocol may be specified by the Institute of Electrical and Electronics Engineers (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.

[0062] Each ranging message in the ranging message (also referred to as a frame or packet) may include a pulse sequence, which may represent the modulated information. Each data symbol in the frame may be a sequence. The packet may have a preamble including, for example, header information of the physical layer and the media access control (MAC) layer, and may include a destination address. In some implementations, the packet frame may include a synchronization portion and a start frame delimiter, which may be timed to line up.

[0063] The packet may include information on how to configure security and include encryption, for example, an identifier of which antenna sent the packet. 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, a ranging request may correspond to phase 1 and a ranging response may correspond to phase 2. Such use of indicators may be helpful when more than two devices perform ranging operations near each other.

[0064] Narrow pulses (e.g., about one nanosecond wide) can be used to accurately determine distance. High bandwidth (e.g., a 500MHz spectrum) allows narrow pulses and accurate position determination. The cross-correlation of the 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 measurement can use round-trip time measurement, also known as time of flight measurement. As described above, the mobile device can send a set of timestamps, which can eliminate the need for clock synchronization between the two devices.

[0065] Mobile devices may use a global navigation satellite system (GNSS) (e.g., a global positioning system (GPS)) or other positioning circuitry to determine the location of the mobile device. For example, a map application may show the approximate location of the mobile device on a map. However, such techniques for determining location are typically determined relative to some fixed external reference frame rather than a variable reference frame (e.g., another mobile device). In addition, GNSS systems may be limited to indoors or in areas where signals are blocked (e.g., dense urban environments) or suffer from inaccuracies from reflected signals. Furthermore, the standard accuracy of the GPS system is currently 4 meters for horizontal accuracy and worse for vertical accuracy. Enhanced communication technology may allow information exchange that allows angle determination, ranging, and information exchange between electronic devices.

[0066] Figure 44 is a schematic diagram 400 showing how the angle of arrival measurement technology can be used to determine the orientation of the device 410 relative to the node 478. The angle of arrival information can be used to trigger one or more features of the electronic device. For example, if the mobile device is pointed at the electronic device, a user interface for controlling the electronic device can be generated. The term "node" can be used to refer to an electronic device, an object without an electronic device, and / or a specific location. In some arrangements, a node can be associated with a mapping environment (for example, the term node can refer to a device, an object, or a location in the mapping environment). The device 410 may have a control circuit that determines where other nodes are located relative to the device 410. The control circuit in the device 410 can synthesize information from cameras, motion sensors, wireless circuits such as antennas, and other input-output circuits to determine the distance of the node relative to the device 410 and / or determine the orientation of the device 410 relative to the node. The control circuit can use the output component in the device 410 to provide an output (for example, a display output, an audio output, a tactile output, or other suitable output) to the user of the device 410 based on the location of the node. The control circuit can, for example, use antenna signals and motion data to determine the angle of arrival of signals from other electronic devices, thereby determining the location of those electronic devices relative to the user's electronic device.

[0067] like Figure 4 As shown, electronic device 410 may include multiple antennas (e.g., first antenna 448-1 and second antenna 448-2) coupled to transceiver circuit 476 via corresponding transmission lines 470 (e.g., first transmission line 470-1 and second transmission line 470-2). Antennas 448-1 and 448-2 may each receive wireless signal 458 from node 478. Antennas 448-1 and 448-2 may be laterally separated by a distance d1, wherein antenna 448-1 is further away from node 478 than antenna 448-2 (at Figure 4 448-2). Therefore, the wireless communication signal 458 travels a greater distance to reach the antenna 448-1 than to reach the antenna 448-2. The additional distance between the node 478 and the antenna 448-1 is Figure 4 Shown as distance d2. Figure 4 Angles x and y are also shown (where x+y=90°).

[0068] The distance d2 may be determined as a function of the angle γ or the angle x (e.g., d2=d1 sin(x) or d2=d1 cos(y)). The distance d2 may also be determined as a function of the phase difference between the signal received by antenna 448-1 and the signal received by antenna 448-2 (e.g., d2=(Δφλ) / (2π), where Δφ is the phase difference between the signal received by antenna 448-1 and the signal received by antenna 448-2, and λ is the wavelength of the received signal 458). The electronic device 410 may have a phase measurement circuit coupled to each antenna to measure the phase of the received signal and identify the phase difference (Δφ). The two formulas for d2 may be set equal to each other (e.g., d1 sin(x)=(Δφλ) / (2π)) and rearranged to solve for the angle x (e.g., x=sin(x)-1(Δφλ) / (2πd1)) or may be rearranged to solve for the angle γ. Thus, the angle of arrival can be determined (e.g., by a control circuit) based on the known (predetermined) distance between antennas 448-1 and 448-2, the detected (measured) phase difference between the signal received by antenna 448-1 and the signal received by antenna 448-2, and the known wavelength or frequency of received signal 458.

[0069] Distance d1 may be selected to facilitate calculation of a phase difference between a signal received by antenna 448-1 and a signal received by antenna 448-2. For example, d1 may be less than or equal to half the wavelength (eg, effective wavelength) of received signal 458 (eg, to avoid multiple phase difference solutions).

[0070] Some antenna arrangements may be sufficient to clearly resolve the “full” angle of arrival of signal 458. The full angle of arrival (sometimes referred to as a direction of arrival) includes the azimuth angle θ and the elevation angle γ of node 478 relative to device 1300.

[0071] Antennas positioned in a three-dimensional arrangement (e.g., spanning multiple planes) may be sufficient to clearly determine the full angle of arrival of signal 458. However, when the baseline vectors (i.e., vectors extending between respective antenna pairs) all lie in one plane, some ambiguity may exist as to the correct azimuth angle θ and / or the correct elevation angle γ of signal 458. For example, in Figure 4In a dual antenna arrangement, there is only one baseline vector 482, which produces an accurate, unambiguous azimuth angle θ, but may not provide enough information to determine the elevation angle φ. Therefore, node 478' with a different elevation angle may still produce signal 458', which has the same phase difference Δφ between the signal received by antenna 448-1 and the signal received by antenna 448-2 as signal 458. In other words, different directions of arrival may result in the same phase difference. This results in an ambiguous angle of arrival solution. In the absence of other information, the control circuit may be able to determine the azimuth angle θ of signal 458, but may not be able to determine the elevation angle γ of signal 458. A system with three or more coplanar antennas will resolve some but not all ambiguities in the angle of arrival because the baseline vectors will still lie in the same plane.

[0072] To help resolve the ambiguity of the complete angle of arrival, the control circuit may combine the antenna signals with motion data collected using the motion sensor circuit. Specifically, the control circuit may obtain angle of arrival measurements (e.g., measurements of azimuth angle θ and / or elevation angle φ) when the device 410 is in multiple different positions. At each position, the antenna 448 may receive a signal 458 from the node 478, and the control circuit may determine a possible angle of arrival solution based on the phase difference between the signal received by the antenna 448-1 and the signal received by the antenna 448-2. The motion sensor circuit may track the movement of the device as the device 410 moves from one position to another. Using the motion data from the motion sensor circuit, the control circuit may associate each set of angle of arrival solutions with a different baseline vector 482. The baseline vector may span multiple planes, thus providing the control circuit with sufficient information to determine the correct angle of arrival, just as the device 410 has a multi-plane antenna arrangement.

[0073] It should be understood that the use of a horizontal coordinate system and expressing the full angle of arrival using azimuth and elevation is merely illustrative. If desired, a Cartesian coordinate system may be used and the angle of arrival may be expressed using a unit direction vector expressed using x, y, and z coordinates. Other coordinate systems may also be used. A horizontal coordinate system is sometimes described herein as an illustrative example.

[0074] III. Sensor Measurement and Clustering

[0075] Micro-positioning can be a position determined using one or more sensors of a mobile device relative to one or more fixed locations. For example, although the mobile device lacks details corresponding to the environment, one or more sensor measurements can be used to determine the position of the mobile device relative to one or more signal sources. Although the mobile device may not be able to determine the precise geographic location, the device may determine the relative position within a residence or building. In some cases, micro-positioning can be associated with the layout of a residence or building to identify the geographic location (e.g., the location within a specific room of a residence or building). Micro-positioning includes a location within a physical space and / or a sensor space (e.g., indicating the location of a mobile device relative to one or more fixed but unknown sources). For example, micro-positioning in a sensor space can indicate that the mobile device is three feet away from a radio signal source (e.g., represented as a vector) in a specific direction. Although the physical location of the mobile device may be unknown, the relative sensor measurements of multiple signals can be used to define the relative mobile device position within a building.

[0076] Sensor measurements may be obtained in a continuous manner or in response to a trigger event. For example, a mobile device may detect a button press (e.g., a trigger event) and cause the mobile device to measure signals (e.g., Wi-Fi or Bluetooth, etc.) transmitted from one or more signal sources, e.g., electronic devices such as wireless routers, Wi-Fi-equipped appliances (e.g., set-top boxes, smart home devices), or Bluetooth devices. The detected signals may be used to generate a multi-dimensional data point of sensor values ​​in a sensor space, where each dimension in the sensor space may correspond to a characteristic of a signal transmitted from a signal source. The multi-dimensional data point may represent a micro-positioning of the mobile device in the sensor space, where the micro-positioning corresponds to a physical location of the mobile device in the physical space.

[0077] Figure 5A 502A and 502B are simplified diagrams illustrating multiple physical locations in physical space 503. For example, physical space 503 may be the interior of a home, office, store, or other building. Physical space 503 may include multiple signal sources, such as signal sources 502A and 502B. Each signal source may transmit a wireless communication signal, such as a wireless communication signal transmitted from a wireless router or a Bluetooth device. The signal sources may be considered fixed devices because their locations generally do not change.

[0078] The mobile device may be located within physical space 503 so as to detect one or more signals transmitted from signal sources 502A and 502B. For example, the mobile device may be located within Figure 5A504 in the physical space 503, where signals 501 and 500 are detected from signal sources 502A and 502B, respectively. It should be understood that at some locations, the mobile device can only measure one of the signals 501 and 500, for example, due to signal attenuation at certain locations. In some cases, the mobile device can detect signals from external signal sources (not shown) (e.g., outside the physical space 503). Although only two signal sources (502A and 502B) are depicted, the mobile device can receive (or detect) signals from any number of signal sources (either within the physical space or outside the physical space).

[0079] In many cases, the user can operate the mobile device more frequently in some physical locations than in other physical locations. For example, when the user is on the sofa, the mobile device can be used more frequently than when the user is in the kitchen. These physical locations can be defined by cluster locations (e.g., a group of one or more physical locations close to each other in space), such as clusters 514 and 516 of physical locations. Each cluster can have a group of physical locations located close to each other. For example, cluster 514 may include physical locations 504, 506, and 512. As shown, cluster 516 includes physical locations 508 and 510. According to an embodiment, the mobile device can be configured to determine when the mobile device is located in one of these clusters based on the detected signal (e.g., signal 500, 501 and / or other signals not shown). In some cases, the mobile device can use clusters to predict a specific device to be streamed media therein.

[0080] In other cases, clusters can be used to determine the location of a mobile device with a threshold accuracy. For example, a number of locations of a mobile device can be obtained within a predetermined time interval. The amount of locations and the relative proximity of the locations to each other can be used to determine the location of the device based on the number of locations and the density of locations at a given level of accuracy. The greater the amount of locations detected at a particular density, the greater the probability that the location of the mobile device is correct. One or more thresholds can be used to determine the specific amount and specific density of locations required to indicate the accurate location of the mobile device. Thus, clusters can be predefined based on historical data of the mobile device (as described above) to provide functionality when the mobile device is located at a predefined cluster, and / or clusters can be defined in real time to define the location of the mobile device at a given level of accuracy.

[0081] The mobile device can measure one or more sensor values ​​based on the signals transmitted from signal sources 502A and 502B. For example, if the mobile device is at physical location 504, the mobile device can measure sensor values ​​from signal 501 transmitted from signal source 502A and signal 500 transmitted from signal source 502B. The measured sensor values ​​can be signal characteristics of signal 501 and signal 500. The measured sensor values ​​can be used to define a micro-position in a sensor space, such as Figure 5B shown.

[0082] Figure 5B 5 is a simplified diagram illustrating a plurality of micro-positions in a sensor space 505, which corresponds to a physical space 503. The sensor space 505 is depicted as a graph of the micro-positions measured in signal strength. The X-axis may represent the measured value of the signal from the signal source 502B in dB, increasing to the right along the X-axis, and the Y-axis may represent the measured value of the signal from the signal source 502A in dB, increasing upward along the Y-axis.

[0083] The micro-positions in the sensor space correspond to corresponding physical locations in the physical space 503. For example, Figure 5A The sensor value measured at the physical location 504 in Figure 5B 5. Micropositioning 532 in the sensor space shown in FIG. 5 corresponds to a micropositioning 532 in the sensor space shown in FIG. Micropositioning 532 is represented as a two-dimensional data point, where one dimension corresponds to a sensor value from signal source 502A and the other dimension corresponds to a sensor value from signal source 502B. Sensor space 505 may include clusters of micropositionings, such as cluster 524 of micropositionings and cluster 526 of micropositionings. Clusters 524 and 526 of micropositionings correspond to clusters 524 and 526 of micropositionings, respectively. Figure 5A Clusters 514 and 516 correspond to the physical locations in .

[0084] Clusters 524 and 526 may be unlabeled locations (e.g., the actual physical coordinates corresponding to clusters 524 and 526 are unknown). It may only be known that there are clusters of micro-locations with similar sensor values ​​and that the clusters represent discrete locations in physical space (relative to one or more signal sources). However, the mobile device may perform functions based on the micro-locations in sensor space that benefit the use of the mobile device in the physical space. For example, the mobile device may determine the micro-location of the mobile device and automatically route playback of media to a specific remote device based on whether the micro-location is within a cluster of known patterns of media streaming.

[0085] Thus, micropositioning may correspond to a position relative to another (fixed) position. For example, micropositioning may be represented as a vector that, for each signal source, includes a distance and a direction from the signal source. When a mobile device is located at a physical location in a physical space, micropositioning may be defined based on a set (e.g., one or more) of sensor values ​​measured by a sensor of the mobile device. A sensor value may be a measure of a signal characteristic (e.g., signal strength, flight time, or data transmitted in a wireless signal, such as data transmitted by a signal source to a mobile device including characteristics of a signal transmitted from the mobile device to the signal source). Each sensor value in a set of sensor values ​​may correspond to the same or different dimensions in a sensor space, wherein a set of one or more sensor values ​​forms a data point (e.g., a multidimensional data point, also referred to as a feature vector) in the sensor space.

[0086] like Figure 5A As shown in FIG. , for signal source 502A (which is Figure 5B 514 ), the sensor values ​​for the micropositions in cluster 514 may be higher than the sensor values ​​for the micropositions in cluster 516 (e.g., where the sensor values ​​are signal strength). This may be due to the physical locations in first cluster 514 being closer to signal source 502A than the physical locations in second cluster 516. The difference in sensor values ​​between first cluster 514 and second cluster 516 may be based on the characteristic represented by the sensor values. For example, for a sensor value representing a signal characteristic of time of flight, the sensor values ​​for first cluster 514 will be lower than the sensor values ​​for second cluster 516.

[0087] The micro-positioning information can determine that the mobile device is likely in a particular cluster, such as the first cluster 514 or the second cluster 516. Micro-positioning can use information from other devices in the same cluster. The mobile device can predict what other devices are in the cluster that the mobile device is in. If multiple playback devices are in the same cluster, the orientation information can be used to predict which playback device is closer to the mobile device.

[0088] While proximity (via micro-location of the mobile device) is the only factor described above, multiple factors may be used to determine the probability of each device. For example, in addition to the micro-location of the mobile device, the historical streaming activity of the remote device (e.g., the remote device that previously streamed media from the mobile device, the frequency of media streaming, the type of media streamed on the device, the time since the last streaming session, etc.), the time of day, the location of the remote device within a residence or building, the type of remote device, the user's historical media consumption, etc. may be used.

[0089] IV. Sensor Location and Sensor Clustering

[0090] The mobile device can determine sensor locations within a general location. A sensor location can be a location in space represented by sensor values ​​measured based on wireless signals emitted from a signal source. When many sensor locations are recorded, the mobile device can identify a distribution of sensor locations that form cluster locations (or simply "clusters"), which are represented by groups of sensor locations that include similar sensor values. Clusters of sensor locations can be used to define a micro-location of the mobile device and predict the routing of a media stream to a specific remote device.

[0091] Fig. 6A 600 in which sensor locations are measured. One or more signal sources 601, 603, and 605 may be located within floor plan 600. Each signal source may be a device configured to transmit wireless signals. For example, a signal source may be an access point such as a wireless router, a Bluetooth device, a computing device (e.g., a desktop computer, etc.), or any other device configured to transmit and / or receive signals.

[0092] The sensor value measured by the mobile device may be a characteristic of a signal emitted from a signal source. In some cases, the sensor value may be a value corresponding to the signal strength of the measured signal (e.g., an RSSI value) or any other suitable signal characteristic that varies relative to the distance from the signal origin point. In other cases, the signal value may be a signal indicating the distance between the mobile device and the signal origin point (e.g., a time of flight (TOF) measurement). Exemplary TOF measurements include round trip time (RTT) and one-way ranging measurements. One-way ranging measurements may be performed by synchronizing the clock of the mobile device with the clock of the signal source using IEEE 1588 or its equivalent, and then using one-way ranging (e.g., via radio waves (such as Wi-Fi, ultra-wideband or radar) or sound waves) to calculate the TOF measurement value. In some examples, synchronization may be performed using a GPS receiver in each device that is synchronized with GPS time. In other examples, synchronization may be performed using Wi-Fi waveforms that are not designed for ranging, Wi-Fi waveforms in different frequency bands, ultra-wideband (UWB) signals, and using high-quality atomic clocks. In some cases, synchronization may be performed at 10 nanoseconds or better.

[0093] Although Fig. 6AFloor plan 600 is illustrated as having only three signal sources 601, 603, and 605, but any number of signal sources (e.g., more or less) may be present and / or used in accordance with aspects of the present invention. Furthermore, the signal sources may be located in the same room as the mobile device, in a different room than the mobile device, or may be external to the structure). For example, one or more signal sources may be located in a neighbor's home or office outside of floor plan 600 or in a floor above (or below) floor plan 600. It should be appreciated that the signal sources may be located in any location from which wireless signals emitted may be measured by a mobile device in accordance with aspects of the present disclosure.

[0094] A. Measurement of sensor position

[0095] Within floor plan 600, multiple sensor locations may be measured by the same mobile device. Fig. 6A As shown, sensor values ​​may be measured by the mobile device at physical location 602 at time T0, while other sensor values ​​may be measured by the mobile device at physical location 604 at time T1, where T0 and T1 are not equal. For example, when the mobile device is determining its sensor location when the first triggering event is detected, the mobile device may be located at physical location 602 in the afternoon, and when the mobile device is determining its sensor location when the second triggering event is detected, the mobile device may be located at physical location 604 in the evening.

[0096] Physical location 602 may be defined by a sensor location that includes sensor values ​​measured based on signals transmitted from signal sources 601, 603, and 605. The sensor values ​​may represent one or more signal characteristics of the signals transmitted from signal sources 601, 603, and 605. Fig. 6A As shown, physical location 602 may be defined by characteristics of signals 606, 608, and 610 measured from signal sources 601, 603, and 605, respectively. Similarly, physical location 604 may be defined by characteristics of signals 612, 614, and 616 measured from signal sources 601, 603, and 605, respectively. For example, the sensor value may be RSSI and / or TOF (e.g., RTT) of the signals transmitted from signal sources 601, 603, and 605.

[0097] In addition to the sensor values, the mobile device may also receive and record the identification of the signal source. The signal source identification may be any suitable form of identification for the signal source, such as a media access control (MAC) address, an Internet Protocol (IP) address, etc. The identification of the signal source may be appended to the corresponding sensor value so that the mobile device can identify which signal source emitted the measured signal. Other information may also be appended to the measured sensor value. For example, information indicating the time interval over which the sensor value was measured, the signal payload (e.g., a packet) may also be appended to the measured sensor value.

[0098] The sensor value may be measured by one or more sensors of the mobile device. Once the signal is measured, the one or more sensors may send the measurement results to the sensor location module to generate a sensor location corresponding to the physical location 602. The sensor location may be a multi-dimensional data point, which may be represented as a feature vector x including the measured signal characteristics. k .

[0099] For example, the feature vector x k Can be defined as:

[0100]

[0101] For M number of RSSI values ​​and N number of RTT values, where each integer of M and N corresponds to an identifier of the source signal for the associated sensor value (e.g., a media access control (MAC) address, a universal unique identifier (UUID), a shortened UUID, a Bluetooth device address, or an IP address of an access point), and where k represents the time interval over which the signal value is measured. It should be understood that one or more RSSI and RTT values ​​may be measured from the same signal source and therefore have the same identifier. Although the feature vector x k Includes RSSI and RTT sensor values, but the feature vector x k Other types of sensor values ​​(in addition to or in lieu of RSSI and RTT sensor values) may be included for determining sensor location

[0102] B. Create multidimensional data points

[0103] The sensor values ​​may be measured and stored in a database, such as a sensor location database for generating multi-dimensional data points. In some cases, a filtering step may be performed to avoid storing sensor value measurements that may be distorted or unreliable.

[0104] 1. Data Measurement

[0105] Multiple sensor values ​​can be measured across predetermined time intervals to create multi-dimensional data points. Figure 6Bis a graph illustrating exemplary measurements of sensor values ​​(eg, RSSI signal values) at physical locations 602 and 604 at times T0 and T1, respectively, across time interval 620. The vertical axis can represent signal strength in decibels (dB), and the horizontal axis can represent time (t).

[0106] T0 can be a time instance when a triggering event is detected that causes the mobile device to measure the current sensor position. At time T0, the sensor values ​​of signals 606, 608, and 610 can be measured at the physical position 602. The sensor values ​​can be measured within a duration (e.g., interval 620). In some embodiments, multiple measurements of signals 606, 608, and 610 can be obtained across a time interval 620. The time interval 620 can be a sufficient amount of time for the mobile device to accurately measure the sensor value. In some cases, the length of the time interval 620 can be based on two factors: measurement accuracy and power consumption (e.g., the time interval 620 can be limited to reduce the power drawn from a power source such as a battery). In some cases, the time interval 620 can be less than one second.

[0107] After T0 and after the mobile device has moved to physical location 604, the mobile device can detect another trigger event and begin measuring its sensor location again at time T1. At T1, the mobile device can measure sensor values ​​of signals 612, 614, and 616 from signal sources 601, 603, and 605, respectively, across time interval 620.

[0108] like Figure 6B As shown, some sensor values ​​may have a higher dB level than other signals at each sensor location. This may be because the signal strength is inversely proportional to the separation distance between the sensor and the signal origin point (e.g., the signal source), which means that a shorter separation distance can result in a higher signal strength. Each sensor location may have its own unique signal strength arrangement. In addition, depending on the position of the mobile device when measuring the sensor values, the mobile device may not detect some signals emitted from certain signal sources. Therefore, each sensor location may include sensor values ​​from a set of unique signal sources. Therefore, some sensor locations may have different sensor values, and other sensor locations may have similar sensor values. Similarities and differences in the arrangement of signal strengths and signal sources can be analyzed to define a cluster of sensor locations that include similar characteristics.

[0109] Measuring sensor values ​​across predetermined time intervals may generate trends in sensor values. For example, each sensor value measured at physical location 602 and physical location 604 may have a substantially horizontal trend in sensor values. A horizontal trend indicates that the mobile device was not substantially moving when the sensor values ​​were measured. A horizontal trend may indicate an accurate sensor value measurement. A trend in sensor values ​​that is not substantially horizontal may indicate that the mobile device has been substantially moved during the measurement of the sensor values ​​and that the measurement may be inaccurate. Inaccurate measurements may be filtered out. Figure 6B Other signal characteristics other than signal intensity as shown in , such as TOF measurements, are filtered.

[0110] Figure 7 An exemplary cluster map 700 is illustrated. Figure 7 Three clusters are illustrated (eg, Cluster A 702, Cluster B 704, and Cluster C 706). The clusters may present possible locations of a mobile device. Figure 7 Various targets are illustrated (eg, target X 708, target Y 710, and target Z 712). Each of the targets may indicate the location of a different mobile device. Figure 7 Various fingerprint signatures are also illustrated (e.g., fingerprint 1 (FP1) 714, fingerprint 2 (FP2) 716, fingerprint 3 (FP3) 718, fingerprint 4 (FP4) 720, fingerprint 5 (FP5) 722, fingerprint 6 (FP6) 724, fingerprint 7 (FP7) 726, fingerprint 8 (FP8) 728). The fingerprint signature can be a location based in part on the received signal strength of the received wireless signal. Each fingerprint can include measurements from all surrounding routers, Bluetooth sources, and UWB sources. These fingerprint values ​​can form a high-dimensional vector, where some values ​​are Wi-Fi RSSI, some values ​​are Bluetooth RSSI, and some values ​​are UWB ranges.

[0111] For example, a device may be represented by target Z 712 in cluster C. Not only is the system able to predict that the device is in a particular cluster, but the mobile device is also able to predict which other devices are also in the same cluster without receiving and measuring information from other devices. If data orientation of the mobile device is available, the mobile device can point to one or more playback devices to resolve ambiguity.

[0112] If orientation information is available, there is no ambiguity. But if pointing is not available, the mobile device can use distance (e.g., UWB ranging) to generate the list. But if pointing and ranging are not available, micro-positioning can be used to generate a heat map to predict which cluster the mobile device is in relative to the various playback devices.

[0113] In various embodiments, mixed clusters may exist with devices that have ranging capabilities and devices that do not have ranging capabilities. For example, if target Z 712 does not have UWB capabilities, it may use Bluetooth signals for range estimation, or it may use micro-positioning information to determine whether target Z 712 is in cluster C 706. Instantaneous measurements of wireless signals (e.g., Bluetooth) may be used, but they may not be as stable for precise measurements as micro-positioning.

[0114] In various embodiments, the one or more signals may be transmitted from a router or entry point in the room. Thus, the one or more signals may be stable. In various embodiments, the mobile device may average received signal strength indications from routers, entry points, other mobile devices, or one or more playback devices. In various embodiments, only the receipt or presence of a signal may be used to determine a cluster.

[0115] A given measurement of one or more wireless signals obtained at a physical location may be obtained at one or more times within a time interval to obtain a set of sensor values. Two measurements at two different times may correspond to the same micro-positioning (e.g., when the two measurements are obtained at the same physical location at two different times). A micro-positioning may have a value of zero for a given dimension. For example, when the micro-positioning of a particular wireless signal is not measured, the micro-positioning may have a value of zero for a given dimension, or may have a nominal value, such as low signal power (-100 dB received signal strength indication (RSSI)), a large distance between the mobile device and the signal source, or too high an uncertainty.

[0116] A micro-location or the proximity of a micro-location to a cluster (e.g., the cluster location) can be used to form a prediction of whether playback of the selected media should occur locally (e.g., on a mobile device) or on one or more remote devices. For example, if playback of the selected media occurs in a micro-location that is too far from a remote device, playback may occur locally. If the micro-location is only near one remote device, the probability that the user may intend to stream media to the remote device may be high, and a media stream may be automatically initiated. If there is more than one remote device near the micro-location, the likelihood that any one of the remote devices will be the intended target of the media stream may not be sufficient to automatically route the media stream. In this case, the user may be prompted to select from the possible remote devices.

[0117] In various embodiments, each of the playback devices may have a signature emission fingerprint. For example, a media device (e.g., AppleTV) may have a very short UWB range and a very strong UWB signal strength. This type of signal characteristic may be used to identify the playback device and ultimately which cluster of multiple clusters the playback device is in.

[0118] In various embodiments, various weights may be used to combine locations determined via UWB ranging, Bluetooth instantaneous measurements, and RSSI from one or more wireless signals.

[0119] In various embodiments, the mobile device may calculate a proximity ranking of anchor devices based on fingerprint (FP) information from the model. For this calculation, it is assumed that all anchor devices are BLE transmitters and a subset of anchor devices are both BLE transmitters and UWB transmitters. The mobile device may calculate a probability score for each of the micro-cluster locations. The probability scores may be used to rank playback devices based on the location of the mobile device. For the proximity score algorithm:

[0120] R is a set of radio frequency fingerprints.

[0121] M is a set of microlocations (cluster IDs), each M is a subset of R, such that M is a partition of R.

[0122] A is a set of anchors, and each anchor in A can appear in multiple fingerprints.

[0123] The process may include computing aggregate measurements for each anchor device in each cluster during model learning (before selecting a representative FP for m:M, for r:R, for a:r).

[0124] SumofPerAnchorPerClusterMeasValue+=a.measValue

[0125] anchorMeasValue2dMap[m][a]=sumofPerClusterMeasValue / count;

[0126] The map can be saved to memory. The mobile device can return the aggregated per-cluster measurements to the NI upon SPI request. The NI can trigger an anchor positioning scan or absorb positioning results, and can calculate a proximity score for each anchor based on the 2D map. The 2D map can be updated periodically (e.g., daily), and the positioning probability vector can be calculated using the following formula:

[0127] totalScore[a] = instantaneousTestFPScore + locationRelevanceScore, where instantaneousTestFPScore is the instantaneous Bluetooth measurement score from the user mobile device to the target device, and locationRelevanceScore is based on a micro-positioning calculation, which is the probability of the possibility that the user mobile device and the playback device are in the same cluster.

[0128] instantaneousTestFPScore[a] = testFPWeight*(testFPAnchorMeasValue-weightBaseLineValue), where testFPWeight is a weighted value that can be adjusted based on the trust in the micro-positioning determination based on the micro-positioning probability vector characteristics. For example, there may be very significant cluster predictions that the mobile device can calculate with a high confidence level that can be more trusted than the instantaneous Bluetooth measurement score. Machine learning can be used to optimize testFPAnchorMeasValue. For example, testFPAnchorMeasValue can depend on what the RSSI is, and a table using different weights can depend on what the RSSI value is or it can also depend on locationRelevanceScore[a]. testFPAnchorMeasValue can depend on the confidence of the micro-positioning at this time. If the micro-positioning confidence is low, such as if the technology predicts two clusters, for example, predicting one cluster with a probability of 51% and predicting another cluster with a probability of 49%, this means that micro-positioning is not sure which cluster the mobile device is in, and perhaps the technology should trust the instantaneous score more. If the micro-location prediction is 90% in one cluster and 10% in another, this means that micro-location is very confident that the mobile device is only in one of these clusters, and the technology can put more weight on the micro-location information.

[0129] locationRelevanceScore[a]=∑probabilityVector[m]*(anchorMeasValue2Dmap[m][a]–weightBaseLineValue)

[0130] Where locationRelevanceScore[a] is the RSSI difference based on a probability vector of M clusters, which can be learned through one or more wireless signals from routers, Bluetooth static sources, and UWB static sources. When micro-positioning is used with the probability vector and this mapping, the mobile device can use information from other routers and UWB sources. weightBaseLineValue can be the background of the signal. anchorMeasValue2Dmap[m][a] can be a typical measurement of the value of a specific device in the cluster, where m is the cluster identifier and a is the source identifier of each potential playback device. In other words, anchorMeasValue2Dmap[m][a] can be an actual RSSI measurement. The difference term of (anchorMeasValue2Dmap[m][a]-weightBaseLineValue) can be the average signal value of the cluster or the typical strength of the specific target. Since multiple targets can be in a cluster, locationRelevanceScore[a] can be the score of a specific target in the cluster. locationRelevanceScore[a] can be used in combination with UWB to rank the relevance of specific playback devices. The term probabilityVector[m] may be a formula for calculating the probability of being in a particular cluster based on the learned clusters.

[0131] In various embodiments, targets in the same cluster may be ranked together. For example, if a first device in a particular cluster has UWB ranging capability, then if it is determined that the first device and the second device are in the same cluster, this information may be used to rank the second device without UWB ranging capability.

[0132] exist Figure 7 In the illustrated example, three cluster locations (e.g., Cluster A 702, Cluster B 704, and Cluster C 706) have been learned. Therefore, the micro-positioning calculation will determine the probability of being in each cluster (e.g., Cluster A 702, Cluster B 704, and Cluster C 706).

[0133] In various embodiments, if the location relevance score is low enough for a particular playback device, the playback device will not be included on the list of playback devices.

[0134] V. Exemplary Home Environment with Playback Device

[0135] More and more electronic devices may include the ability to receive streaming media content. A user may be watching a video on a smartphone, but may desire to watch the content on a larger device (e.g., a smart TV). A home environment may have multiple devices that are capable of receiving media content. For example, a home may include a smart TV in the living room and a smart TV in the bedroom. By determining the relevant media devices for streaming content, a user can easily select from the devices relevant to the current location, rather than possibly selecting from a long list of devices for a residence or business.

[0136] A. Equipment Layout

[0137] Figure 8 An exemplary environment 800 (e.g., a home) in which multiple playback devices are distributed is illustrated. A user 802 can operate a mobile device 804 to play media content (e.g., video content, audio content, or screen data). For example, the playback devices may include a television 806 (e.g., a smart TV), a smart speaker 808, and a media player 810. The first television 806a and the first smart speaker 808a may be in the same room as the user 802. The second television 806b and the second smart speaker 808b may be present in the second room. The third television 806c and the media player 810 may be in the third room. The fourth television 806d may be present in the fourth room. The fifth television 806e may be present outside a certain location. Figure 8 The number and types of devices shown are exemplary and not limiting.

[0138] User 802 may desire to play media content from mobile device 804 on a playback device. In various embodiments, the software of mobile device 804 will automatically suggest wireless streaming routes based on a combination of usage history, App usage, and micro-positioning. For example, mobile device 804 will use micro-positioning to record the history of interactions with the App and the location of mobile device 804 to establish patterns over time. Specifically, if a particular user always streams media content from a media streaming App (e.g., YouTube) to a smart TV in the bedroom, the mobile device will suggest the bedroom smart TV when being promoted to select a playback device to stream media content.

[0139] Modern environment can be made up of many different playback devices in the home or workplace. In addition, many playback devices may include ranging capabilities (e.g., UWB ranging), which allows the mobile device 804 to quickly and accurately determine the position and / or orientation of the mobile device relative to various playback devices. Therefore, the software of the mobile device 804 can use ranging capabilities to determine which playback devices are most relevant to the user 802 when streaming is required. In various technologies, a list of playback devices can be presented on the user interface of the mobile device 804 for the user 802 to select. The list can be an alphabetical list of devices. As the number of smart devices continues to grow, the list may include dozens of playback devices.

[0140] While micro-location information can be used, the data used for micro-location determination can take time to establish. Micro-location is not an actual location, but rather is similar to an electromagnetic fingerprint that needs to be associated with something in order to provide useful information. Furthermore, micro-location requires learning and can only be enabled at home locations. Ranging technology can provide additional capabilities to help users determine relevant playback devices.

[0141] A composite approach combining one or more of three different techniques can be used to place the most relevant playback devices at the top of the list. Mobile device 804 can use UWB ranging, RSSI determination, and the orientation of mobile device 804 to determine the priority on the list and whether the playback device should even be included in the list of relevant playback devices.

[0142] B. Determine the capabilities of the device

[0143] Fig. 9 is an exemplary flow chart of a process 900 according to an example of the present disclosure. According to an example, the process may be performed by the mobile device 1300 Fig. 9 One or more process boxes.

[0144] At block 902, process 900 may include receiving one or more wireless signals. The wireless signal may be an advertising signal. The wireless signal may be Bluetooth, Bluetooth low energy, Wi-Fi, UWB, or one or more of various wireless signal protocols.

[0145] At block 904, process 900 may include determining the capabilities of the device based on the one or more wireless signals. In various embodiments, the playback device may include ranging capabilities (e.g., UWB ranging). The determining capabilities of the device may be accomplished by analyzing the one or more signals received. In various embodiments, the received signal may include an identifier for the playback device. In various embodiments, the received signal may include an information packet indicating the capabilities of the playback device.

[0146] In various embodiments, capability information may be received from the playback device itself via different techniques. For example, if a mobile device detects a UWB signal, a BLE signal, and a Wi-Fi signal at the same location, the mobile device may correlate the signals via the identifiers of the various signals. The mobile device may determine that all three signals may originate from the same device. Another way to correlate signals is to determine how the signals interfere with each other.

[0147] In various embodiments, the determined capabilities of the playback device may be accomplished through other protocols (e.g., Bonjour or many other different discovery type challenges). These techniques may be able to detect the type of device (and therefore determine its capabilities) based on the number and / or type of wireless signals being transmitted from the device.

[0148] At block 906, process 900 may include determining whether a particular playback device associated with one or more wireless signals is capable of TOF calculations (eg, UWB ranging).

[0149] At block 908, process 900 may include performing a distance measurement with one or more playback devices. The distance measurement may include transmitting and receiving one or more wireless signals, as described above. The distance measurement process may determine the distance between the mobile device 804 and the one or more playback devices. The distance between the mobile device 804 and the one or more playback devices may be stored in a memory of the mobile device 804.

[0150] At box 910, process 900 may include calculating an estimated location based on the signal strength of the one or more signals. Although ranging can provide very accurate measurements, not all playback devices have ranging capabilities. Although using RSSI to determine location is not as accurate as UWB ranging, it is still a header-based communication technology. Mobile device 804 can determine a received signal strength indication of one or more wireless signals. The received signal strength indication can be used to determine the location of the mobile device by generating a heat map of a space (e.g., a room, an office, an area). The mobile device can know the location of various playback devices in the heat map. Therefore, when determining the location of the mobile device within the heat map, the mobile device can determine the relevant playback device based on the location of the mobile device relative to one or more playback devices.

[0151] In various embodiments, these techniques may not strictly rank all playback devices (e.g., in order of 1 to 10), but rather determine which devices should be listed as part of a group of related devices. It may not be important for these techniques to allow the mobile device to determine the numerical ordering, but in the presence of some ambiguity, i.e., without a very clear direction, these techniques should allow the mobile device to basically distinguish between binary classifications that are worthy of display and binary classifications that are not worthy of display.

[0152] In various embodiments, one or more routers or access points may generate one or more wireless signals for generating a heat map. The heat map may be used to determine one or more micro-locations. Micro-locations may provide two scenarios where a mobile device is mapped at a location. A user may be at a mobile device at a certain moment in the heat map, but may also be at other Bluetooth anchors and UWB anchors at that moment in the heat map.

[0153] At block 912, process 900 can include determining an orientation of the mobile device based on the one or more wireless signals. In various embodiments, the one or more wireless signals can be Bluetooth, Bluetooth Low Energy, Wi-Fi, or UWB protocols.

[0154] The received signal strength information may be used to generate a heat map to determine the location of the mobile device 804 on the heat map.

[0155] At box 914, process 900 may include determining the location of one or more playback devices. If ranging (e.g., UWB ranging) is available, ranging can be used to determine the location of one or more playback devices relative to the mobile device. If ranging is not available, the mobile device can determine the location of one or more playback devices by measuring the received signal strength indication (RSSI) and generating a heat map. The heat map can indicate the location of the mobile device relative to the one or more playback devices. In various embodiments, the orientation of the mobile device can be determined based on the time at which one or more wireless signals are received at various antennas on the mobile device. The orientation of the mobile device can be used alone or in combination with the location of the mobile device to determine whether the user is pointing the mobile device at a specific playback device.

[0156] At block 916, process 900 may include generating a list of related playback devices. The mobile device may use the location information to determine related playback devices. The related devices may be devices closest to the mobile device, playback devices within a threshold distance from the mobile device, or playback devices in the same room as the mobile device. Additionally or alternatively, the related devices may be playback devices that the mobile device is pointing at or playback devices in front of a user with the mobile device.

[0157] It should be noted that although Fig. 9 An example block diagram of process 900 is shown, but in some implementations, Fig. 9 Process 900 may include additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted. Additionally or alternatively, two or more of the blocks of process 900 may be performed in parallel.

[0158] C. Example Equipment List

[0159] After executing one of the techniques for determining the position of one or more playback devices, the mobile device can generate a list to allow the user to select a playback device for streaming media content. The list can be presented on the display of the mobile device. The list can be a graphical user interface that allows the user to select a desired device for playback media content. Various playback devices can be detected by the mobile device, but if there are various conditions (e.g., the playback device is on another floor (e.g., in an upstairs apartment)), then it can be excluded from the list.

[0160] Fig.10 An exemplary list 1000 of potential playback devices is illustrated. In various embodiments, the list 1000 may include icons indicating the type of media device and the location of the media device. For example, a living room device 1004 may include icons of a smart speaker (e.g., HomePod) and a location (e.g., living room). In various embodiments, the list 1000 of playback devices may be a graphical user interface that allows a user to select a playback device in the listed playback devices to guide media streaming. In various embodiments, the list 1000 may list a device 1002 (e.g., iPhone) from which the user is attempting to stream. In various embodiments, the user may also stream from a laptop computer, a tablet computer, or a wearable device.

[0161] Fig.10 A list 1000 is shown including a living room device 1004 (e.g., a smart speaker), a bedroom device 1006 (e.g., a smart speaker), a first bedroom device 1008 (e.g., a smart speaker), a second bedroom device 1010 (e.g., a media player), a kitchen device 1012 (e.g., a smart speaker), a living room device 1014 (e.g., a smart television), and a spare bedroom device 1016 (e.g., a smart television).

[0162] VI. Exemplary Processes

[0163] Fig.11 1100 is a flow chart of a process 1100 according to an example of the present disclosure. According to an example, the process 1100 may be performed by the mobile device 1300. Fig.11 One or more process boxes.

[0164] At block 1110, process 1100 may include performing ranging with one or more playback devices to determine ranging information between the mobile device and each of the one or more playback devices, wherein the one or more playback devices are configured to play the streaming data when the streaming data is received from the mobile device, and wherein the ranging information provides at least one of a distance and an orientation between the mobile device and each of the one or more playback devices. For example, mobile device 1300 may perform ranging with one or more playback devices to determine ranging information between the mobile device and each of the one or more playback devices, wherein the one or more playback devices are configured to play the streaming data when the streaming data is received from the mobile device, and wherein the ranging information provides at least one of a distance and an orientation between the mobile device and each of the one or more playback devices, as described above.

[0165] At block 1120, process 1100 may include detecting a selection of a media item. For example, mobile device 1300 may detect a selection of a media item, as described above. For example, an application may present a graphical user interface for selecting a streaming option. In various embodiments, a media application may display an icon indicating an expectation that a media item is streamed to one or more playback devices.

[0166] In box 1130, process 1100 may include identifying a specific playback device for playing the selected media item from one or more playback devices based on the ranging information of the mobile device relative to each playback device in one or more playback devices. For example, mobile device 1300 may identify a specific playback device for playing the selected media item from one or more playback devices based on the ranging information of the mobile device relative to each playback device in one or more playback devices, as described above. In various embodiments, playback devices may be indicated on a list. Any one or a combination of the above-mentioned technologies (e.g., UWB ranging, instantaneous Bluetooth, wireless RSSI, or orientation of a mobile device) may be used to perform this identification.

[0167] Process 1100 may include additional implementations, such as any single implementation or any combination of implementations described below and / or in combination with one or more other processes described elsewhere herein. In a first implementation, process 1100 also includes measuring one or more sensor values ​​at one or more times, the one or more sensor values ​​measured using one or more sensors of a mobile device, wherein the one or more sensor values ​​are determined based on one or more signals emitted by corresponding one or more signal sources; determining a relative position of the mobile device relative to one or more playback devices based on the one or more sensor values; and identifying a specific playback device from the one or more playback devices in the list for playing the selected media item based on the relative position of the mobile device relative to the one or more playback devices.

[0168] In a second specific implementation, alone or in combination with the first specific implementation, the one or more signal sources may include the one or more playback devices. The one or more playback devices may be smart TVs, media devices (e.g., AppleTV), smart speakers (e.g., HomePod), etc.

[0169] In various aspects, a mobile device may include one or more memories; and one or more processors in communication with the one or more memories and configured to execute instructions stored in the one or more memories to perform any one or a combination of the above operations.

[0170] In various embodiments, a non-transitory computer-readable medium may store instructions that, when executed by one or more processors of a computing device, cause the one or more processors to perform the operations of a method of any one or a combination of the operations described above.

[0171] In various embodiments, determining the relative position of a mobile device relative to one or more playback devices may include generating a heat map of one or more signals at a location. The heat map may identify the location of one or more playback devices at the location. The process may include determining multiple clusters at the location based on the heat map. Each cluster may be physically separated at the location. The process may include determining the probability that the mobile device is within one of the multiple clusters based on the received strength of the one or more signals and the heat map.

[0172] In various embodiments, process 1100 also includes determining a probability of detecting a particular signal in the one or more signals within a time period; and determining whether the mobile device is within a particular cluster based in part on the probability.

[0173] In various embodiments, process 1100 also includes determining the orientation of the mobile device relative to the one or more playback devices. The process may include identifying a specific playback device for playing the selected media item from one or more playback devices in a list of one or more playback devices based on the orientation of the mobile device relative to the one or more playback devices.

[0174] In various embodiments, process 1100 also includes receiving a notification signal from one or more playback devices. The notification signal may provide information about the communication capabilities of each playback device in the one or more playback devices. The notification signal may include an authentication tag of a specific playback device in the one or more playback devices. The method may also include authenticating a specific playback device based at least in part on the authentication tag.

[0175] In various embodiments, process 1100 may include displaying an icon corresponding to a particular device on a screen of a mobile device, wherein the icon is displayed at a location on the screen based on one or more ranges or relative positions of the mobile device.

[0176] In various embodiments, process 1100 also includes receiving a gesture on a display of the mobile device; and identifying a specific playback device for playing the selected media item from one or more playback devices in a list of one or more playback devices based on the received gesture.

[0177] In various embodiments, process 1100 also includes routing information to a specific playback device for playing the media item.

[0178] It should be noted that although Fig.11 An example block diagram of process 1100 is shown, but in some implementations, Fig.11 The process 1100 may include additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted in the process 1100. Additionally or alternatively, two or more of the blocks in the process 1100 may be executed in parallel.

[0179] VII. Mobile device for performing ranging

[0180] Fig.12 1 is a block diagram of components of a mobile device 1200 operable to perform ranging according to an embodiment of the present disclosure. The mobile device 1200 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.

[0181] As shown, mobile device 1200 includes a UWB antenna 1210 for performing ranging. UWB antenna 1210 is connected to UWB circuit 1215, which is used to analyze detected messages from UWB antenna 1210. In some embodiments, mobile device 1200 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. For example, the field of view can span 120 degrees. Such provisions can allow determination of which direction the user is pointing the device relative to one or more other nearby devices. The field of view may include any one or more of the pitch angle, yaw angle, or roll angle.

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

[0183] As shown, the mobile device 1200 also includes a Bluetooth (BT) / Wi-Fi antenna 1220 for transmitting data with other devices. The BT / Wi-Fi antenna 1220 is connected to a BT / Wi-Fi circuit 1225 for analyzing detected messages from the BT / Wi-Fi antenna 1220. For example, the BT / Wi-Fi circuit 1225 can parse the message to obtain data (e.g., an authentication tag), which can be sent to the AOP 1230. In some embodiments, the AOP 1230 can use the authentication tag to perform authentication. Therefore, the AOP 1230 can store or retrieve a list of authentication tags to which the received tags are compared as part of the authentication process. In some specific implementations, such functionality can be implemented by the BT / Wi-Fi circuit 1225.

[0184] In other embodiments, the UWB circuitry 1215 and the BT / Wi-Fi circuitry 1225 may alternatively or additionally be connected to an application processor 1240, which may perform functionality similar to that of the AOP 1230. The application processor 1240 typically requires more power than the AOP 1230, and thus power may be saved by having certain functionality handled by the AOP 1230, such that the application processor 1240 may remain in a sleep state, such as a disconnected state. For example, the application processor 1240 may be used to transmit audio or video using BT / Wi-Fi, and the AOP 1230 may coordinate the transmission of such content and the communication between the UWB circuitry 1215 and the BT / Wi-Fi circuitry 1225. For example, the AOP 1230 may coordinate the timing of UWB messages relative to BT advertisements.

[0185] To perform ranging, the BT / Wi-Fi circuit 1225 may analyze the announcement message 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 / Wi-Fi circuit 1225 may communicate the notification to the AOP 1230, which may schedule the UWB circuit 1215 to be ready to detect a UWB message from the other device.

[0186] 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 1230 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 may be a situation where a parent expects to receive an alert when the child (and most likely the child's device) is too far away. An example of the latter may 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.

[0187] VIII. Example Equipment

[0188] Fig.131 is a block diagram of an example electronic device 1300. Device 1300 generally includes computer-readable media 1302, a processing system 1304, an input / output (I / O) subsystem 1306, wireless circuitry 1308, and audio circuitry 1310 including a speaker 1312 and a microphone 1314. These components may be coupled via one or more communication buses or signal lines 1303. Device 1300 may be any portable electronic device, including a handheld computer, a tablet computer, a mobile phone, a laptop, 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.

[0189] Obviously, Fig.13 The architecture shown is only one example of an architecture for device 1300 , and device 1300 may have more or fewer components or a different configuration of components than shown. Fig.13 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.

[0190] The wireless circuit 1308 is used to send and receive information over a wireless link or network to conventional circuits of one or more other devices (such as an antenna system, a radio frequency (RF) transceiver, one or more amplifiers, a tuner, one or more oscillators, a digital signal processor, a codec (CODEC) chipset, memory, etc.) Wireless circuit 1308 can use various protocols, such as the protocols described herein. In various embodiments, the wireless circuit 1308 is capable of establishing and maintaining communications with other devices using one or more communication 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), advanced long term evolution, Wi-Fi (such as Institute of Electrical and Electronics Engineers (IEEE) 802.11a, IEEE802.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 communication protocol, including communication protocols that have not been developed as of the filing date of this document.

[0191] The wireless circuit 1308 is coupled to the processing system 1304 via the peripheral device interface 1316. The peripheral device interface 1316 may include conventional components for establishing and maintaining communications between peripheral devices and the processing system 1304. Voice information and data information received by the wireless circuit 1308 (e.g., in speech recognition or voice command applications) is sent to the one or more processors 1318 via the peripheral device interface 1316. The one or more processors 1318 may be configured to process various data formats of the one or more application programs 1334 stored on the medium 1302.

[0192] The peripheral device interface 1316 couples the input peripheral devices and output peripheral devices of the device 1300 to one or more processors 1318 and the computer-readable medium 1302. The one or more processors 1318 communicate with the computer-readable medium 1302 via the controller 1320. The computer-readable medium 1302 may be any device or medium capable of storing code and / or data for use by one or more processors 1318. The computer-readable medium 1302 may include a memory hierarchy, including cache, main memory, and auxiliary memory. The memory hierarchy may be implemented using any combination of random access memory (RAM) (e.g., static random access memory (SRAM), dynamic random access memory (DRAM), double data random access memory (DDRAM)), read-only memory (ROM), flash memory, magnetic storage devices, and / or optical storage devices (such as disk drives, tapes, CDs (optical disks), and DVDs (digital video disks)). In some embodiments, the peripheral device interface 1316, one or more processors 1318, and the controller 1320 may be implemented on a single chip such as the processing system 1304. In some other embodiments, they may be implemented on separate chips.

[0193] The processor 1318 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 1318 may be implemented as one or more hardware processors, microprocessors, microcontrollers, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), etc.

[0194] Device 1300 also includes a power system 1342 for powering the various hardware components. Power system 1342 may include a power management system, one or more power sources (e.g., batteries, alternating current (AC)), a recharging system, a power failure detection circuit, a power converter or inverter, a power status indicator (e.g., a light emitting diode (LED)), and any other components typically associated with the generation, management, and distribution of electricity in a mobile device.

[0195] In some embodiments, device 1300 includes camera 1344. In some embodiments, device 1300 includes sensor 1346. Sensors may include accelerometers, compasses, gyroscopes, pressure sensors, audio sensors, light sensors, barometers, etc. Sensor 1346 may be used to sense aspects of a location, such as an auditory marker or a light marker of a location.

[0196] In some embodiments, the device 1300 may include a GPS receiver, sometimes referred to as a GPS unit 1348. 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 orbiting 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.

[0197] The one or more processors 1318 execute various software components stored in the medium 1302 to perform various functions of the device 1300. In some embodiments, the software components include an operating system 1322, a communication module 1324 (or an instruction set), a location module 1326 (or an instruction set), a ranging module 1328 used as part of the ranging operations described herein, and other applications 1334 (or an instruction set).

[0198] The operating system 1322 may be any suitable operating system, including iOS, Mac OS, Darwin, a real-time operating system (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.

[0199] Communications module 1324 facilitates communication with other devices through one or more external ports 1336 or via wireless circuitry 1308, and includes various software components for processing data received from wireless circuitry 1308 and / or external ports 1336. External ports 1336 (e.g., Universal Serial Bus (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, a wireless local area network (LAN), etc.).

[0200] The location / motion module 1326 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 1326 receives data from the GPS unit 1348 and analyzes the signals to determine the current location of the mobile device. In some embodiments, the location / motion module 1326 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 sites 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 1308 and transmitted to the location / motion module 1326. 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 1300 is calculated. Regardless of the particular positioning technology used, the position / motion module 1326 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.

[0201] The ranging module 1328 can send / receive ranging messages to / from, for example, an antenna connected to the wireless circuit 1308. 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 1300 and another device. The ranging module 1328 can exist 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 1328 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 1328 can also interact with a reminder module, which can provide an alert based on the distance from another mobile device.

[0202] The one or more applications 1334 on the device 1300 may include any application installed on the device 1300, including but not limited to a browser, an address book, a contact list, email, instant messaging, social networking, word processing, keyboard emulation, widgets, 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.

[0203] There may be other modules or instruction sets (not shown), such as a graphics module, a timing 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 timing module may maintain various timers for any number of events.

[0204] The I / O subsystem 1306 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 a graphical user interface (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), LCD (liquid crystal display) technology, or LPD (light emitting polymer display) technology, other display technologies may be used in other embodiments.

[0205] In some embodiments, I / O subsystem 1306 may include a display and user input devices such as a keyboard, a mouse and / or a touchpad. In some embodiments, I / O subsystem 1306 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 1302) 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 may use any suitable touch-sensitive technology to detect contact and any movement or release thereof, including capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with the touch-sensitive display.

[0206] In addition, the I / O subsystem 1306 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 1300 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.

[0207] 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.

[0208] Any software component or function described in this patent application can be implemented as a software code to be executed by a processor using any suitable computer language such as Java, C++ or Perl, using, for example, conventional or object-oriented techniques. The software code can be stored as a series of instructions or commands on a computer-readable medium for storage and / or transmission, and suitable media include random access memory (RAM), read-only memory (ROM), magnetic media such as hard disk drives or floppy disks, or optical media such as compact disks (CDs) or DVDs (digital versatile disks), flash memory, etc. The computer-readable medium can be any combination of such storage devices or transmission devices.

[0209] Such programs can also be encoded and transmitted using carrier signals, which are suitable for transmitting via wired networks, optical networks and / or wireless networks (including the Internet) that meet various protocols. Therefore, the computer-readable medium according to an embodiment of the present invention can be created using data signals encoded by such programs. The computer-readable medium encoded with program code can be encapsulated with compatible devices or provide (for example, downloading via the Internet) independently of other devices. Any such computer-readable medium can reside in or be located in a single computer program product (for example, a hard drive or an entire computer system), and can be present in or located in different computer program products in a system or network. The computer system may include a monitor, a printer or other suitable displays for providing any result mentioned herein to a user.

[0210] 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 independently of 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 within 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 within 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.

[0211] As described above, one aspect of the present technology is to collect, share and use data, including authentication tags and data derived from them. 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.

[0212] 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.

[0213] The disclosure anticipates that entities responsible for the collection, analysis, disclosure, transmission, storage or other uses of such personal information data will comply with sound privacy policies and / or privacy measures. 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 can be easily accessed by users and should be updated as the collection and / or use of data changes. Personal information from users should be collected for legal and reasonable entity purposes and should not be shared or sold outside these legal purposes. In addition, such collection / sharing should be carried out after receiving the user's informed consent. In addition, such entities should consider taking any necessary steps to protect and safeguard access to such personal information data and ensure that other entities with access to personal information data comply with their privacy policies and procedures. In addition, such entities can subject themselves to third-party assessments to prove that they comply with widely accepted privacy policies and practices. In addition, policies and practices should be adapted to specific types of personal information data collected and / or accessed, and to applicable laws and standards including considerations of special jurisdictions. For example, in the United States, the collection or acquisition 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 measures should be advocated for different types of personal data in each country.

[0214] Regardless of the foregoing, the present disclosure also contemplates implementation schemes in which users selectively block the use or access of personal information data. That is, the present disclosure contemplates hardware elements and / or software elements 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 a user 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 also 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.

[0215] In addition, it is the intention of the present disclosure that personal information data should be managed and processed in a manner that minimizes the risk of unintentional or unauthorized access or use. Once the data is no longer needed, the risk can be minimized by limiting the collection of data and deleting the data. 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 the data is stored (e.g., aggregating data between users), and / or other methods when appropriate.

[0216] 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.

[0217] 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.

[0218] 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.

[0219] Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the present disclosure as set forth in the claims.

[0220] Other variations are within the spirit of the present disclosure. Thus, while the disclosed technology is susceptible to various modifications and alternative constructions, certain illustrative embodiments thereof are shown in the drawings and have been described in detail above. However, it should be understood that it is not intended to limit the present disclosure to the particular forms disclosed, but on the contrary, it is intended to cover all modifications, alternative constructions, and equivalent forms that fall within the spirit and scope of the present disclosure as defined by the appended claims.

[0221] The use of the terms "one" and "an" and "the" and similar indicators in the context of describing the disclosed embodiments (particularly in the context of the following claims) will be interpreted as covering both the singular and the plural, unless otherwise specified herein or clearly contradicted by the context. Unless otherwise specified, the terms "comprise", "have", "include" and "contain" should be interpreted as open terms (i.e., meaning "including but not limited to"). The term "connection" is interpreted as being partially or completely included, attached or joined together even if there is something intervening. The phrase "based on" should be understood as open, and is not limited in any way, and is intended to be interpreted or otherwise understood as "based at least in part" where appropriate. Unless otherwise specified herein, the description of the numerical range herein is intended only to be used as an abbreviation for individually referring to each individual value falling within the range, and each individual value is incorporated into the specification, as if quoted separately herein. All methods described herein can be performed in any suitable order, unless otherwise specified herein or otherwise clearly contradicted by the context. Unless otherwise stated, the use of any and all examples or exemplary language (e.g., "such as") provided herein is intended only to better illustrate the embodiments of the present disclosure and does not limit the scope of the present disclosure. Any language in the specification should not be interpreted as indicating that any undeclared element is essential to the practice of the present disclosure. Unless explicitly indicated to the contrary, the use of "or" is intended to mean "inclusive or" rather than "exclusive or". Mentioning a "first" component does not necessarily require the provision of a second component. In addition, unless explicitly stated, mentioning a "first" component or a "second" component does not limit the components mentioned to a specific location. The term "based on" is intended to mean "based at least in part on".

[0222] Unless otherwise specifically stated, disjunctive language such as the phrase "at least one of X, Y, or Z" is understood in context to be generally used to present an item, term, etc., which can be X, Y, or Z, or any combination thereof (e.g., X, Y, and / or Z). Thus, such disjunctive language is generally not intended to, and should not, imply that certain embodiments require that at least one of X, at least one of Y, or at least one of Z each be present. Additionally, unless otherwise specifically stated, conjunctive language such as the phrase "at least one of X, Y, and Z" should also be understood to mean X, Y, Z, or any combination thereof, including "X, Y, and / or Z."

[0223] Preferred embodiments of the present disclosure are described herein, including the best mode known to the inventor for carrying out the present disclosure. After reading the foregoing description, variations of those preferred embodiments may become apparent to those of ordinary skill in the art. The inventor expects that the technical staff will appropriately adopt such variations, and the inventor intends to practice the present disclosure in a manner different from that specifically described herein. Therefore, as permitted by applicable law, the present disclosure includes all modifications and equivalents of the subject matter recorded in the claims attached to the present disclosure. In addition, unless otherwise specified herein or obviously contradictory to the context, the present disclosure includes any combination of all possible variations of the above-mentioned elements.

[0224] The specific details of particular embodiments may be combined in any suitable manner or varied from those shown and described herein without departing from the spirit and scope of embodiments of the invention.

[0225] The above description of exemplary embodiments of the present invention is provided for the purpose of illustration and description. It is not intended to be exhaustive, nor is it intended to limit the present invention to the precise form described, and many modifications and variations are possible in accordance with the above teachings. The embodiment is selected and described to fully illustrate the principles of the present invention and its practical application, so as to enable others skilled in the art to take full advantage of the present invention in various embodiments and in various modifications suitable for the specific purpose contemplated.

[0226] All references, including publications, patent applications, and patents, cited herein are hereby incorporated by reference to the same extent as if each reference were individually and specifically indicated to be incorporated by reference and were set forth in its entirety herein.

Claims

1. A method for routing streaming data on a mobile device, the method comprising: performing ranging with one or more playback devices to determine ranging information between the mobile device and each of the one or more playback devices, wherein the one or more playback devices are configured to play streaming data upon receiving the streaming data from the mobile device, and wherein the ranging information provides at least one of a distance and an orientation between the mobile device and each of the one or more playback devices; detecting selection of a media item; as well as A specific playback device for playing the selected media item is identified from the one or more playback devices based on the ranging information of the mobile device relative to each of the one or more playback devices.

2. The method according to claim 1, further comprising: measuring one or more sensor values ​​at one or more times, the one or more sensor values ​​being measured using one or more sensors of the mobile device, wherein the one or more sensor values ​​are determined based on one or more signals transmitted by corresponding one or more signal sources; determining a relative position of the mobile device with respect to the one or more playback devices based on the one or more sensor values; as well as Based on the relative positioning of the mobile device with respect to the one or more playback devices, a particular playback device is identified from the one or more playback devices in the list for playing the selected media item.

3. The method of claim 2, wherein the one or more signal sources include the one or more playback devices.

4. The method of claim 2, wherein said determining the relative position of said mobile device with respect to said one or more playback devices comprises: generating a heat map of the one or more signals at a location, the heat map identifying the positioning of the one or more playback devices at the location; determining a plurality of clusters at the location based on the heat map, wherein each cluster is physically separated at the location; as well as A probability that the mobile device is within one of the plurality of clusters is determined based on the received strengths of the one or more signals and the heat map.

5. The method according to claim 4, further comprising: determining a probability of detecting a particular signal of the one or more signals within a time period; as well as A determination is made whether the mobile device is within a particular cluster based in part on the probability.

6. The method according to any one of claims 1 to 5, further comprising: determining an orientation of the mobile device relative to the one or more playback devices; as well as Based on the orientation of the mobile device relative to the one or more playback devices, the particular playback device is identified from the one or more playback devices in the list of one or more playback devices for playing the selected media item.

7. The method according to any one of claims 1 to 6, further comprising: receiving an announcement signal from the one or more playback devices, the announcement signal providing information regarding communication capabilities of each of the one or more playback devices, wherein the announcement signal includes an authentication tag for a particular playback device of the one or more playback devices; as well as The particular playback device is authenticated based at least in part on the authentication tag.

8. The method according to any one of claims 1 to 7 further comprises displaying an icon corresponding to the specific device on the screen of the mobile device, wherein the icon is displayed at a position on the screen based on the one or more ranging or the relative positioning of the mobile device.

9. The method according to any one of claims 1 to 8, further comprising: receiving a gesture on a display of the mobile device; as well as A particular playback device for playing the selected media item is identified from the one or more playback devices in the list of one or more playback devices based on the received gesture.

10. The method according to any one of claims 1 to 8, further comprising: Information is routed to the particular playback device for playing the media item.

11. A computing device, the computing device comprising: one or more memories; as well as One or more processors in communication with the one or more memories and configured to execute instructions stored in the one or more memories to perform operations including: performing ranging with one or more playback devices to determine ranging information between the computing device and each of the one or more playback devices, wherein the one or more playback devices are configured to play the streaming data upon receiving the streaming data from the computing device, and wherein the ranging information provides at least one of a distance and an orientation between the computing device and each of the one or more playback devices; detecting selection of a media item; as well as A particular playback device is identified from the one or more playback devices for playing the selected media item based on the ranging information of the computing device relative to each of the one or more playback devices.

12. The computing device of claim 11, wherein the operations further comprise: measuring one or more sensor values ​​at one or more times, the one or more sensor values ​​measured using one or more sensors of the computing device, wherein the one or more sensor values ​​are determined based on one or more signals emitted by corresponding one or more signal sources; determining a relative positioning of the computing device with respect to the one or more playback devices based on the one or more sensor values; as well as Based on the relative positioning of the computing device with respect to the one or more playback devices, a particular playback device is identified from the one or more playback devices in the list for playing the selected media item.

13. The computing device of claim 12, wherein the one or more signal sources include the one or more playback devices.

14. The computing device of claim 13, wherein the determining the relative position of the computing device with respect to the one or more playback devices comprises: generating a heat map of the one or more signals at a location, the heat map identifying the positioning of the one or more playback devices at the location; determining a plurality of clusters at the location based on the heat map, wherein each cluster is physically separated at the location; as well as A probability that the computing device is within one of the plurality of clusters is determined based on the received strengths of the one or more signals and the heat map.

15. The computing device of claim 14, wherein the operations further comprise: determining a probability of detecting a particular signal of the one or more signals within a time period; as well as A determination is made whether the computing device is within a particular cluster based in part on the probability.

16. The computing device of any one of claims 11 to 15, wherein the operations further comprise: determining an orientation of the computing device relative to the one or more playback devices; as well as Based on the orientation of the computing device relative to the one or more playback devices, the particular playback device is identified from the one or more playback devices in the list of one or more playback devices for playing the selected media item.

17. The computing device of any one of claims 11 to 15, wherein the operations further comprise: receiving an announcement signal from the one or more playback devices, the announcement signal providing information regarding communication capabilities of each of the one or more playback devices, wherein the announcement signal includes an authentication tag for a particular playback device of the one or more playback devices; as well as The particular playback device is authenticated based at least in part on the authentication tag.

18. A computing device according to any one of claims 11 to 17, further comprising displaying an icon corresponding to the specific device on a screen of the computing device, wherein the icon is displayed at a position on the screen based on the one or more ranging or the relative positioning of the computing device.

19. The computing device of any one of claims 11 to 18, wherein the operations further comprise: receiving a gesture on a display of the computing device; as well as A particular playback device for playing the selected media item is identified from the one or more playback devices in the list of one or more playback devices based on the received gesture.

20. A non-transitory computer readable medium storing a plurality of instructions that, when executed by one or more processors of a computing device, cause the one or more processors to perform operations comprising: performing ranging with one or more playback devices to determine ranging information between the computing device and each of the one or more playback devices, wherein the one or more playback devices are configured to play the streaming data upon receiving the streaming data from the computing device, and wherein the ranging information provides at least one of a distance and an orientation between the computing device and each of the one or more playback devices; detecting selection of a media item; as well as A particular playback device is identified from the one or more playback devices for playing the selected media item based on the ranging information of the computing device relative to each of the one or more playback devices.

21. The non-transitory computer readable medium of claim 20, wherein the operations further comprise: measuring one or more sensor values ​​at one or more times, the one or more sensor values ​​measured using one or more sensors of the computing device, wherein the one or more sensor values ​​are determined based on one or more signals emitted by corresponding one or more signal sources; determining a relative positioning of the computing device with respect to the one or more playback devices based on the one or more sensor values; as well as Based on the relative positioning of the computing device with respect to the one or more playback devices, a particular playback device is identified from the one or more playback devices in the list for playing the selected media item.

22. The non-transitory computer readable medium of any one of claims 20 to 21, wherein the determining the relative positioning of the computing device with respect to the one or more playback devices comprises: generating a heat map of one or more signals at a location, the heat map identifying the positioning of the one or more playback devices at the location; determining a plurality of clusters at the location based on the heat map, wherein each cluster is physically separated at the location; as well as A probability that the computing device is within one of the plurality of clusters is determined based on the received strengths of the one or more signals and the heat map.

23. The non-transitory computer readable medium of any one of claims 20 to 22, wherein the operations further comprise: determining a probability of detecting a particular signal of the one or more signals within a time period; as well as A determination is made whether the computing device is within a particular cluster based in part on the probability.

24. The non-transitory computer readable medium of any one of claims 20 to 23, wherein the operations further comprise: determining an orientation of the computing device relative to the one or more playback devices; as well as Based on the orientation of the computing device relative to the one or more playback devices, the particular playback device is identified from the one or more playback devices in the list of one or more playback devices for playing the selected media item.

25. The non-transitory computer readable medium of any one of claims 20 to 24, wherein the operations further comprise: receiving an announcement signal from the one or more playback devices, the announcement signal providing information regarding the communication capabilities of each of the one or more playback devices, wherein the announcement signal includes an authentication tag for a particular playback device of the one or more playback devices; as well as The particular playback device is authenticated based at least in part on the authentication tag.

26. The non-transitory computer-readable medium of any one of claims 20 to 25, further comprising displaying an icon corresponding to the specific device on a screen of the computing device, wherein the icon is displayed at a position on the screen based on the one or more ranging or the relative positioning of the computing device.

27. The computing device of any one of claims 20 to 26, wherein the operations further comprise: receiving a gesture on a display of the computing device; as well as A particular playback device for playing the selected media item is identified from the one or more playback devices in the list of one or more playback devices based on the received gesture.