Pairing groups of accessories
The method allows for the creation of device groups through pairing and beacon signals to efficiently track and locate misplaced devices within a group, addressing the lack of collective location services in existing technologies.
Patent Information
- Application Number
- JP2025134479
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-10-22
- Filing Date
- 2025-08-12
- Publication Date
- 2025-12-09
- Estimated Expiration
- 2042-06-01
AI Technical Summary
Existing device locator services do not provide meaningful location services for sets of related devices, requiring a need for location services that can track groups of devices collectively.
A method for pairing and creating a device group profile by receiving pairing status, sending requests for information about proximate devices, and selectively continuing pairing to form a device group profile, using beacon signals and location data to track group members.
Enables efficient tracking and locating of misplaced accessory devices within a group by pairing devices to establish a device group and providing location services for sets of related devices.
Smart Images

Figure 2025179075000001_ABST
Abstract
Description
[Technical Field]
[0001] (CROSS-REFERENCE TO RELATED APPLICATIONS) CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of priority to U.S. Patent Application No. 17 / 508,334, entitled "Pairing Groups of Accessories," filed October 22, 2021, and U.S. Provisional Application No. 63 / 197,293, entitled "Pairing Groups of Accessories," filed June 4, 2021, both of which are incorporated herein by reference. (Technical field)
[0002] The embodiments described herein relate to pairing and discovering groups of accessory devices. [Background technology]
[0003] Previous device locator services provide services for individual devices and do not provide meaningful location services for sets of related devices. Therefore, there is a need to provide location services for sets of related devices. Summary of the Invention
[0004] In one embodiment, a method for pairing with a device group is provided, the method including: receiving a pairing status from a first accessory device in the device group; selectively pairing with the first accessory device based on the pairing status; sending a request to the first accessory device for information about the accessory devices in the device group, the information including information about at least one accessory device in proximity to the first accessory device in the device group; receiving information about a second accessory device in the device group; and if the second accessory device is in proximity, selectively sending a pairing continuation message to the second accessory device; and creating a device group profile having the information about the accessory devices in the device group and the received information about the second accessory device. In some embodiments, the method may include sending a request for status information to the first accessory device, the status information including a pairing status and an indication that the first accessory is part of the device group. In some embodiments, a method may provide: sending a request for status information to a first accessory device, the status information including verifiable information of the first accessory device; sending a verification request along with received information about the first accessory device; and, if the devices are not paired, selectively performing pairing with a second accessory device, the pairing including having access to at least one key associated with the second accessory device for a user account. In some embodiments, the first accessory device is a wireless beacon peripheral device. In one embodiment, the method may include sending a verification request along with received information about the second accessory device; and selectively sending a pairing continuation message to the second accessory device based on a verification result received in response to the verification request.In some embodiments, the method provides for sending a request to a first accessory device requesting information regarding the number of accessory devices in the device group and the number of accessory devices in proximity to the first accessory device in the device group.
[0005] In one embodiment, a method for facilitating pairing of a device group is provided, the method including: determining, by a first accessory device, a proximity status of a second accessory device in the device group; transmitting the proximity status of the second accessory device in the device group to a host device; transmitting a handshake message to the second accessory device; receiving verifiable information from the second accessory device; and transmitting the verifiable information to the host device.
[0006] In one embodiment, a non-transitory machine-readable medium storing instructions for causing one or more processors of an electronic device to perform operations includes receiving a pairing status from a first accessory device in a device group; selectively pairing with the first accessory device based on the pairing status; sending a request to the first accessory device for information about the accessory devices in the device group, the information including information about at least one accessory device in proximity to the first accessory device in the device group; receiving information about a second accessory device in the device group; and, if the second accessory device is in proximity, selectively sending a pairing continuation message to the second accessory device; and creating a device group profile having information about the accessory devices in the device group and the received information about the second accessory device.
[0007] In a data processing system having a memory storing instructions for execution and one or more processors that execute the instructions stored in the memory, the instructions, when executed, cause the one or more processors to receive a pairing status from a first accessory device in a device group, selectively pair with the first accessory device based on the pairing status, send a request to the first accessory device for information about the accessory devices in the device group, the information including information about at least one accessory device that is in proximity to the first accessory device in the device group, receive information about a second accessory device in the device group, and if the second accessory device is in proximity, selectively send a pairing continuation message to the second accessory device, and create a device group profile that includes information about the accessory devices in the device group and the received information about the second accessory device. In one embodiment, a method for finding a device group includes receiving an indication that a first accessory device is part of the device group, the first accessory device having a physical connection to a second accessory device in the device group; receiving a beacon signal from the first accessory device in the device group, the beacon signal including status information about the second accessory device; and storing location data from the beacon signal on the device group. In some embodiments, multiple accessory devices in the device group are physically connected to a case. In some embodiments, RSSI information is determined from the beacon signal, and the beacon signal includes an advertisement including the RSSI information. In some embodiments, the method includes presenting the location data on the device group in a user interface. In some embodiments, the method includes requesting storage of the location data on the device group using a device locator service.In some embodiments, the method provides for generating at least one key for at least one accessory device in a device group, requesting a device locator service to transmit location data corresponding to the at least one key, and receiving and presenting the location data on the device group.
[0008] In one embodiment, a method for finding a device group includes receiving an indication that a first accessory device is part of the device group, the first accessory device being wirelessly connected to a second accessory device in the device group; receiving a beacon signal from the first accessory device in the device group, the beacon signal including status information about the second accessory device; and storing location data from the beacon signal on the device group. In some embodiments, the method includes presenting the location data on the device group in a user interface. In some embodiments, the method includes requesting storage of the location data on the device group using a device locator service.
[0009] In one embodiment, a method for presenting a user interface for discovering a group of devices includes receiving a request to launch an application; initiating a connection to at least one accessory device from the device group; presenting a user interface having a status on at least one device from the device group; upon receiving an indication that at least one device from the device group is connected to another device from the device group, presenting a selectable element having a query regarding whether to continue discovering devices from the group of devices; and presenting the status of the other devices based on a response to the query. [Brief explanation of the drawings]
[0010] [Figure 1] FIG. 1 is a block diagram of a network operating environment for a mobile device, according to one embodiment.
[0011] [Figure 2] 1 illustrates a system for locating a wireless accessory, according to one embodiment.
[0012] [Figure 3] 1 illustrates a system for pairing and locating wireless accessories according to embodiments described herein.
[0013] [Figure 4] FIG. 1 is a flow diagram illustrating a method for pairing a group of accessory devices according to embodiments herein.
[0014] [Figure 5] FIG. 1 is a flow diagram illustrating a method for use with the device locator system described herein.
[0015] [Figure 6] FIG. 1 is a flow diagram illustrating a method for pairing a group of accessory devices according to embodiments herein.
[0016] [Figure 7] FIG. 10 is a sequence diagram illustrating a method for presenting a device locator user interface for use with the device locator system described herein.
[0017] [Figure 8] FIG. 10 is a flow diagram illustrating a method for presenting a device locator user interface for use with the device locator system described herein.
[0018] [Figure 9A]1 is a flow diagram illustrating a method for discovering accessory devices within a device group. [Figure 9B] 1 is a flow diagram illustrating a method for discovering accessory devices within a device group. [Figure 9C] 1 is a flow diagram illustrating a method for discovering accessory devices within a device group. [Figure 9D] 1 is a flow diagram illustrating a method for discovering accessory devices within a device group.
[0019] [Figure 10] 1 illustrates a method for determining the location of a wireless accessory via a device locator server.
[0020] [Figure 11] An additional method for determining the location of a wireless accessory via a device locator server is shown.
[0021] [Figure 12] 1 is a flow diagram illustrating a method for broadcasting a signal beacon in a wireless accessory, according to one embodiment.
[0022] [Figure 13] 10 illustrates method operations that may be performed by a finder device according to embodiments described herein. [Figure 14] 10 illustrates method operations that may be performed by a finder device according to embodiments described herein.
[0023] [Figure 15] 1 illustrates the collection of signal and ranging data by a finder device, according to one embodiment.
[0024] [Figure 16] 1 illustrates a device locator user interface, according to one embodiment. [Figure 17]1 illustrates a device locator user interface, according to one embodiment. [Figure 18] 1 illustrates a device locator user interface, according to one embodiment. [Figure 19] 1 illustrates a device locator user interface, according to one embodiment. [Figure 20] 1 illustrates a device locator user interface, according to one embodiment. [Figure 21] 1 illustrates a device locator user interface, according to one embodiment.
[0025] [Figure 22] FIG. 1 is a block diagram illustrating an exemplary API architecture that may be used in some embodiments of the present invention.
[0026] [Figure 23] FIG. 1 is a block diagram of a device architecture for a mobile or embedded device, according to one embodiment.
[0027] [Figure 24] FIG. 1 is a block diagram of a computing system, according to one embodiment.
[0028] [Figure 25] 1 is a flow diagram illustrating a method for requesting a lost accessory device or device group to play a sound, according to one embodiment.
[0029] [Figure 26] 1 is a sequence diagram illustrating a method for requesting one or more accessory devices missing from a device group to play a sound, according to embodiments described herein. [Figure 27] 1 is a sequence diagram illustrating a method for requesting one or more accessory devices missing from a device group to play a sound, according to embodiments described herein. [Figure 28] 1 is a sequence diagram illustrating a method for requesting one or more accessory devices missing from a device group to play a sound, according to embodiments described herein. DETAILED DESCRIPTION OF THE INVENTION
[0030] The embodiments described herein provide techniques that enable pairing of a set of accessory devices to establish a device group and a locator service for locating lost or misplaced accessory devices within the device group. A device group is a set of accessory devices (e.g., a pair of earbuds, such as Apple AirPods®), each of which can be separately and independently verified and paired with another device. The association of accessory devices within a device group can enable the accessory devices to access information to facilitate pairing with other accessory devices within the device group and to locate accessories within the device group. Various embodiments are described with reference to figures. However, some embodiments may be implemented without one or more of these specific details and in combination with other known methods and configurations. In the following description, numerous specific details are set forth, such as specific configurations, dimensions, and processes, to provide a thorough understanding of the embodiments. In other instances, well-known semiconductor processes and manufacturing techniques are not described in particular detail so as not to unnecessarily obscure the embodiments. Throughout this specification, a reference to "one embodiment" means that a particular feature, structure, configuration, or characteristic described in connection with that embodiment is included in at least one embodiment. Thus, the appearances of the phrase "in one embodiment" in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, configurations or characteristics may be combined in any suitable manner in one or more embodiments.
[0031] In the following description, a computing device including a touch-sensitive display is described. However, it should be understood that the computing device may include one or more other physical user interface devices. Various applications that may be executed on the device may use at least one common physical user interface device, such as a touch-sensitive surface. One or more functions of the touch-sensitive surface and corresponding information displayed on the device may be adjusted and / or changed from one application to the next and / or within each application. In this way, a common physical architecture of the device (such as a touch-sensitive surface) may support a variety of applications with intuitive and transparent user interfaces.
[0032] Some processes are described below with respect to some sequential operations. However, it should be understood that some of the described operations may be performed in a different order. Furthermore, some operations may be performed in parallel rather than sequentially.
[0033] FIG. 1 is a block diagram of a network operating environment 100 for mobile devices, according to one embodiment. The network operating environment 100 includes multiple mobile devices, such as accessory devices 101A and 101B (collectively 101), and a mobile device 102. In one embodiment, the mobile devices 101A and 101B may be accessory devices that can be paired as a device group 105. Optionally, the device group with the accessory device 101 may be stored within a mobile device with a wired connection, such as a case 103 that holds the accessory device 101. The case 103 may also be an accessory device that can be paired with the mobile device 102 in some embodiments. By way of example, the accessory device 101 may be a device such as Apple AirPods®, EarPods®, and / or PowerBeats®. In some embodiments, the accessory device 101 may not be able to communicate over a wide area network. In other embodiments, the mobile devices 101 and 102 may each be any electronic device capable of communicating with a wireless network and wireless accessory devices. Some exemplary mobile devices 101 include, but are not limited to, smartphones, tablet computers, notebook computers, wearable computers (e.g., smart watches or other wearable computing accessories), mobile media players, personal digital assistants, EarPods, AirPods®, EarPods®, PowerBeats®, locator tags, headphones, head-mounted displays, health devices, speakers, and other similar devices. Mobile device 101 and mobile device 102 may each optionally include a user interface, such as user interface 104 of mobile device 102. In other embodiments, mobile device 101, as an accessory device, may not have a user interface.Mobile devices 101 and 102 may be third-party devices that utilize an application programming interface to access a device locator service. The third-party devices may be provided by a different device manufacturer or may be part of a different ecosystem (e.g., operating system) than mobile devices 101 and 102. Mobile devices 101 and 102 may communicate via one or more wired and / or wireless networks 110 to perform data communications. For example, wireless network 112 (e.g., cellular network, Wi-Fi network) may communicate with wide area network 114, such as the Internet, by using gateway 116. Similarly, access device 118, such as a mobile hotspot wireless access device, may provide communication access to wide area network 114. Gateway 116 and access device 118 may then communicate with wide area network 114 via a combination of wired and / or wireless networks.
[0034] In some implementations, both voice and data communications may be established via wireless network 112 and / or access device 118. For example, mobile device 102 may make and receive telephone calls (e.g., using a VoIP protocol), send and receive email messages (e.g., using a POP3 protocol), and retrieve electronic documents and / or streams, such as web pages, photos, and videos, via wireless network 112, gateway 116, and wide area network 114 (e.g., using a TCP / IP or UDP protocol). In some implementations, mobile device 102 may make and receive telephone calls, send and receive email messages, and retrieve electronic documents via access device 118 and wide area network 114. In some implementations, mobile device 101 and / or mobile device 102 may be physically connected to access device 118 using one or more cables, for example, if access device 118 is a personal computer. In this configuration, mobile device 101 or mobile device 102 may be referred to as a “tethered” device. In one embodiment, mobile device 101 can communicate with mobile device 102 via a wireless peer-to-peer connection 120. Wireless peer-to-peer connection 120 can be used to synchronize data between the devices.
[0035] Mobile device 101 or mobile device 102 can communicate with one or more services, such as telephony service 130, messaging service 140, media service 150, storage service 160, and device locator service 170, over one or more wired and / or wireless networks 110. For example, telephony service 130 can enable telephone communications between mobile devices or between mobile devices and wired telephone devices. Telephony service 130 can route Voice over IP (VoIP) calls over wide area network 114 or can access a cellular voice network (e.g., wireless network 112). Messaging service 140 can provide, for example, email and / or other messaging services. Media service 150 can provide access to media files, such as, for example, song files, audiobooks, movie files, video clips, and other media data. Storage service 160 can provide network storage capabilities for mobile device 101 and mobile device 102 to store documents and media files. Device locator service 170 may enable a user to locate a lost or misplaced device that was, at least at some point, connected to one or more wired and / or wireless networks 110. Other services may also be provided, including a software update service for updating operating system or client software on the mobile device. In one embodiment, messaging service 140, media service 150, storage service 160, and device locator service 170 may each be associated with a cloud service provider, and the various services are facilitated via cloud service accounts associated with mobile devices 101 and 102.
[0036] In some embodiments, accessory device 101A, accessory device 101B, mobile device 102, case 103, and / or device group 105 may be registered with certificate authority 106. In some embodiments, certificate authority 106 is an entity that issues digital certificates, and the service may be implemented using a set of servers managed by a device manufacturer, a service provider, or a registration service. The certificate provided by certificate authority 106 may attest to the validity of received verifiable information about the device, such as the device's specific manufacturer, serial number, device group identifier or other identifier, an indicator that the device is part of device group 105, and / or any other verifiable information. In some embodiments, device manufacturers may establish device groups 105 by grouping serial numbers of accessory devices within device group 105. In further embodiments, the certificate may be encrypted by device 101, 102, or 103 before being sent to the third party and may be decrypted at an authentication service (e.g., a certificate authority or another attestation service) when the third party requests verification of information provided by accessory device 101, mobile device 102, case 103, and / or devices in device group 105. In some embodiments, the secure token may be provided in a pairing request by accessory device 101. Further examples of paired devices using location services may be found in U.S. Patent Application No. 17 / 219,595, filed March 21, 2021, entitled "Secure Pairing and Pairing Lock for Accessory Devices," which is incorporated herein by reference in its entirety.
[0037] Mobile devices 101 and 102 may have locally accessible applications, services, and features on the device, including location services 180. Mobile device 102 may have a device locator application (e.g., a "Find my" application) 190 for locating accessory device 101 using device locator service 170 and location services 180. Locally accessible data may be stored in known locations 182 and secure or trusted locations 184. In some cases, machine learning algorithms 186 may be used to identify known locations 182 and / or trusted locations 184. Cluster analysis is provided as an example of a machine learning algorithm that may be used, but those skilled in the art will recognize that other algorithms may be used to identify potential known or trusted locations. By way of example, cluster data analysis may be used to identify, classify, and provide semantic labels for locations, such as locations frequently visited by a user. Secure or trusted locations 184 may be explicitly designated or confirmed as such by users of devices 102A-B after data analysis. In other examples, known locations 182 or trusted locations 184 may be classified offline and provided by the device locator service 170 or a third party (eg, a database with map information).
[0038] On-device heuristics and / or machine learning models may be used to infer relationships between users and locations based on analysis of locally stored data on frequently visited locations, including locations frequently visited by the user, known locations, and / or any other locations. For example, frequently visited locations such as home, vehicle, workplace, any locations frequently visited by a user with a mobile device (e.g., accessory device 101 and mobile device 102), and / or any other locations designated by the user as trusted locations 184. Known locations 182 may be business locations, public spaces, parks, museums, and / or any other locations that the user may frequently visit. Boundary information for each stored location may be stored along with a classification type for the location and any semantic labels assigned to the location. The stored information may include a defined set of boundaries or a radius distance around a point location to enable creation of a geofence for the location. A geofence is a virtual boundary of a real-world geographic area. A global positioning system (GPS) can be used to create a virtual fence around a location and track the physical location of mobile devices 101 and 102 within the geofence boundary as well as their entry and exit into the bounded area.
[0039] The machine learning algorithm 186 may include on-device heuristics, machine learning algorithms, or a combination thereof, to analyze and assign a label related to the device's movement or motion, such that it is designated as being in an “in motion” or “stable” state at a particular location for a period of time. The analysis may be performed using various signals from data sources available to the mobile device 102, including, but not limited to, sensor data, positioning data, calendar data, transit card usage data, application data, historical data related to travel patterns / routines, and / or any other data accessible to the mobile device 102. In some embodiments, the mobile device 102 may be classified with a “stable” semantic label after remaining within the geographic boundaries defining a location (e.g., trusted location 184) for a defined period of time. In the simplest case, positioning data for the mobile device 102 may remain within the boundaries of a geofence for a particular location for a certain duration (e.g., five minutes). Sensor data, such as accelerometer data, may indicate that the mobile device 102 is stationary, supporting the inference that it is stable. Application data can support an inference that the mobile device 102 is in a steady state, such as the mobile device being located at a calendar appointment location. Application data indicating the type of application in use may also provide an inference that the device is in a steady state, such as using a media application. A user's historical data regarding on-the-go routines or patterns may be used to determine whether the mobile device 102 is in a steady state, such as a bedtime routine at home or a hotel location. A mobile device 102 may be classified as having an "on-the-go" label based on previous behavior, patterns, or routines for the user and analyzed on the mobile device 102. For example, a user may have a routine of going to work at the same time every day, and if data on the device supports that the pattern is repeating, an "on-the-go" state may be assigned.In the simplest case, the speed at which a mobile device is moving or entering or leaving a known geographic area (e.g., using a geofence) may allow for the inference that the mobile device 102 is in motion. If the mobile device 102 is detected accelerating in a known transit area (e.g., a road, highway, railroad line, etc.), the mobile device 102 may be given an "in motion" status. Similarly, if a transit application / card is used / in use, the mobile device 102 may be designated as "in motion."
[0040] 2 illustrates a system 200 for locating wireless accessories 201A and / or 201B, according to one embodiment. In one embodiment, wireless accessories 201A and 201B (collectively 201) are alternative embodiments of accessory devices 101A and 101B (and optionally case 103), which may be paired as part of device group 105 and may be used interchangeably throughout this specification. Each accessory device includes one or more wireless transceivers and can communicate with a companion device (e.g., mobile device 102) either directly or indirectly (e.g., through another device or computer) over a wireless network or peer-to-peer communication link. Accessory device 101A is shown within case 103 and can provide a beacon signal to case 103 and any accessories within case 103. Accessory device 101B is separate from case 103 and can be found independently and separately by providing a beacon signal. Some examples of additional wireless accessory devices 101 include, but are not limited to, wireless earbuds, EarPods, AirPods®, input devices, charging devices, accessory cases, headphones, headsets, fitness equipment, health equipment, display devices, external hard drives, other wearable device (e.g., smart watches, fitness bands, optical head-mounted displays), adapters, speakers, and / or other devices. A paired group of accessories may be devices of the same type (e.g., speakers, AirPods®, fitness weights, etc.) or devices of different types (e.g., smartphones and credit card readers, etc.). Wireless accessories 201 may also include other wireless devices, such as input devices, including, but not limited to, credit card reading devices, stylus devices, mice, keyboards, game controllers, or remote controls.In one embodiment, the wireless accessory 201 also includes a smartphone, tablet computer, laptop computer, smart speaker device, television, or television set-top box that is at least temporarily unable to access a wide area network such as the Internet (e.g., wide area network 114 of FIG. 1 ). The wireless accessory 201 may also be any other wireless device, including a beacon or locator tag that can be attached to other devices to enable tracking or locating the other devices. In one embodiment, the wireless accessory 201 may be from a device group of accessory devices that are paired with the mobile device 102 using a wireless technology standard such as, but not limited to, Bluetooth®. The wireless accessory 201 may also communicate with the mobile device 102 via wireless technologies, including implementations of any wireless standards and protocols, such as Wi-Fi Direct, Zigbee®, or AirPlay. The companion device with which the wireless accessory 201 is paired is generally referred to as the mobile device 102, although companion devices are not limited to mobile devices. Companion devices may also include, in some embodiments, laptop or desktop devices, as well as some wearable accessories, such as, but not limited to, smartwatch devices or wearable displays.
[0041] In one embodiment, the wireless accessory 201 may periodically transmit a wireless beacon signal. The wireless accessory 201 may transmit the beacon signal using one of the various wireless technologies described herein (e.g., Bluetooth, Wi-Fi, etc.), and in one embodiment, may also transmit the beacon using ultra-wideband (UWB) wireless technology. The beacon signal may be transmitted using a single wireless technology, one of multiple selectable wireless technologies, or multiple simultaneous wireless technologies. The beacon signal may transmit a beacon identifier that includes information to specifically identify the individual wireless accessory 201A or 201B and / or the device group 105. In one embodiment, the beacon identifier is a public encryption key associated with the device.
[0042] The beacon signal may also convey information about the wireless accessory 201, such as device status information and / or verifiable information. The device status information in the beacon signal may include, but is not limited to, a beacon type, a device classification, a battery level, any predefined device status, a device state, a lost status, an alarm status, a status away from owner, a status near owner, a status in proximity to one or more accessory devices 101 in a device group status, a wired or wireless connection status, a status physically connected to one or more accessory devices 101 in a device group status, a pairing status indicating whether the accessory device is paired or unpaired, a pairing pending status, a battery life status, a charging status, and / or any other status information. The lost status or “away from owner” status may indicate that the wireless accessory 201 has determined itself lost or has been placed in a lost state by the device owner. The alarm status may indicate that the wireless accessory 201 has been placed in a status that should trigger an alarm if the device moves from its current location. The near owner status may indicate that the wireless accessory 201 has detected the nearby presence of a mobile device 102 associated with the accessory owner.
[0043] In some embodiments, the verifiable information may include any information that may be needed to establish trust or authority that the pairing and / or discovery process may proceed with the device presenting the verifiable information. By way of example, the verifiable information may include information established by a device manufacturer, such as a serial number or set of serial numbers within a device group 105. In some embodiments, the verifiable information may include status or state information of the device. The verifiable information may include, but is not limited to, the device type, membership in a device group, the serial number, the device group, the serial numbers, state or status information, software version, and / or any other verifiable information. The verifiable information may be transmitted to a certificate authority 106 or other attestation service to verify received information presented by the device to another device. The verifiable information may be encrypted and / or transmitted with a token to enable further verification of the device.
[0044] In some embodiments, the beacon signal can be detected by a finder device 202 in local proximity to the wireless accessory 201A or 201B to use crowdsourcing to locate the lost wireless accessory 201. The finder device 202 can be a device similar to the mobile device 102 and can transmit and receive data over the wide area network 114, and can transmit and receive using similar wireless technologies (e.g., Bluetooth, etc.) as the wireless accessory 201. In particular, the finder device 202 can receive data using the wireless protocol over which the beacon signal is transmitted. The finder device 202 can determine its location using one or more location and / or positioning services, including, but not limited to, satellite positioning services 206 or terrestrial positioning systems using RF signals received from wireless base stations 205, such as Wi-Fi access points or cell tower transmitters of a cellular telephone network. In one embodiment, the finder device 202 periodically stores its location determined based on one or more location and / or positioning services. The stored location can be associated with a timestamp at which the location was determined. When the finder device 202 receives a beacon signal from the wireless accessory 201, the finder device 202 may transmit the location of the finder device 202 to the device locator server 203 over the wide area network 114. A timestamp of the determined location of the finder device 202 may be correlated with the timestamp at which the beacon signal was received to associate a geographic location with the received beacon signal.
[0045] If the wireless accessory 201 provides a public key in the beacon signal, the finder device 202 can encrypt the determined location data and transmit the encrypted location data to the device locator server 203 over the wide area network 114. In one embodiment, additional data can be encrypted and transmitted with the location data, or transmitted unencrypted to the device locator server 203. For example, a received signal strength indicator (RSSI) of the beacon signal can be transmitted with the location data. The RSSI data can then be used to determine the distance of the wireless accessory 201 from the finder device 202 and assist in triangulation on the owner device. If the RSSI data is transmitted unencrypted, in one embodiment, the server can use the RSSI information to reduce noise by discarding very weak signals in the presence of other stronger signals. In one embodiment, UWB ranging data can also be provided, where such data is available.
[0046] In one embodiment, when the finder device 202 receives a beacon signal from the wireless accessory 201, it can behave differently depending on the device status communicated by the wireless accessory 201. For a standard beacon signal, the finder device 202 can queue encrypted location data and transmit the location data to the device locator server 203 during a periodic transmission window. However, if the wireless accessory 201 indicates an alarm condition, the finder device 202 can immediately transmit the location data to the device locator server 203.
[0047] Additionally, if the beacon signal of the wireless accessory 201 indicates that the accessory is near the accessory's owner, the finder device 202 may not transmit location data to the device locator server 203. Alternatively, the finder device 202 may delay transmitting the encrypted location data. If the owner of the wireless accessory 201 wishes to locate the wireless accessory, the owner may access a device locator user interface 204 on the mobile device 102. The device locator user interface 204 may be associated with a device locator application used to locate electronic devices and accessories registered to a user's online account, such as a cloud service account or another type of online account. The device owner can use the device locator UI 204 to query the device locator server 203 for location data that may have been transmitted to the device locator server by the finder device 202 of the wireless accessory 201. In one embodiment, the mobile device 102 may transmit a public encryption key associated with the wireless accessory 201 to the device locator server 203. The device locator server 203 can then return any stored location data that corresponds to the public encryption key. The location data returned to the mobile device 102 can be encrypted data that was encrypted by the finder device 202 using the public encryption key. The mobile device 102 can decrypt the encrypted location data using the associated private key. The decrypted location data can then be processed by the mobile device 102 to determine the most likely location of the wireless accessory 201. In various embodiments, the most likely location of the wireless accessory 201 can be determined by triangulation from multiple received locations and using other data, such as beacon signal RSSI associated with each location and timestamps or UWB ranging data included within the location data.
[0048] 3 illustrates a system 300 for pairing and locating a wireless accessory according to embodiments described herein. In one embodiment, a mobile device 102 (e.g., device 101A, 101B, or 103) of a user of a wireless accessory 201 can present an accessory pairing UI 302 that allows the user to pair the mobile device 102 with the wireless accessory 201. During the initial pairing (305) between the mobile device 102 and the wireless accessory 201, a public key exchange (310) can be performed between the mobile device and the wireless accessory 201. In one embodiment, during the public key exchange (310), the mobile device 102 and the accessory 201 exchange public keys of a public key pair generated by the device and the wireless accessory 201. In one embodiment, the public key exchange (310) is a one-way transfer in which the mobile device 102 sends the public key of a public / private key pair to the wireless accessory 201. Alternatively or additionally, the public key exchange (310) may be a Diffie-Hellman key exchange in which the device and accessory establish a shared secret between the two parties. In one embodiment, the public key exchange (310) also establishes the shared secret using elliptic curve cryptography. For example, elliptic curve Diffie-Hellman (ECDH) may be used to enable the establishment of a public key pair and one or more shared secrets. In one embodiment, the one or more shared secrets include an anti-tracking secret from which the wireless accessory 201 can periodically derive additional public keys.
[0049] After the wireless accessory 201 is paired with the mobile device 102, the wireless accessory 201 can periodically broadcast a beacon signal 301 that includes device status information and a beacon identifier. In one embodiment, the beacon identifier is a public key derived from a shared secret established during a public key exchange (310). Additionally, the wireless accessory 201 can periodically perform a public key derivation (315) to generate a new public key and begin broadcasting the new public key as a beacon identifier. The public key is a K-byte key, and a new K-byte key is generated every M minutes. The values K and M can vary between embodiments. In one embodiment, a K value of 28 bytes is used. In one embodiment, a K value of 27 bytes is used. The value K can be determined based at least in part on a beacon length associated with a wireless protocol used to transmit the beacon signal 301. In one embodiment, the beacon signal can transmit a variant of a beacon advertisement packet associated with a low energy wireless protocol, such as Bluetooth® Low Energy.
[0050] In one embodiment, the value M is 15 minutes, and a new K-byte key is generated every 15 minutes. The public key can be derived deterministically based on the timestamp and the anti-tracking secret generated during public key exchange 310. The public key derivation (315) process allows wireless accessory 201 to use different keys over time, preventing long-term association of a particular key with a particular device. The key can be derived based on the anti-tracking secret known only to mobile device 102 and wireless accessory 201, allowing only mobile device 102 and wireless accessory 201 to determine which public key is broadcast by wireless accessory 201 at any given timestamp. The anti-tracking secret can be generated along with the ECDH public key and transferred to wireless accessory 201. The anti-tracking secret can then be used by wireless accessory 201 to derive the sequence of public keys P iIn one embodiment, the sequence of public keys P i =λ i ·P is a scalar or exponential value λ i We define a group operation between a scalar or exponent value λ=KDF(AT,i), where KDF is a key derivation function, AT is an anti-tracking secret, and i is a counter or timestamp.
[0051] In one embodiment, backtracking resistance can be enabled to protect the anti-tracking secret if wireless accessory 201 is compromised. When backtracking resistance is enabled, the anti-tracking secret is transferred to wireless accessory 201 but is not retained by the wireless accessory. Instead, the accessory uses the value λ i+1 =H(λ i ||time), where λ = A T and H is a cryptographic hash function. The wireless accessory 201 then calculates λ over a given period i. i If the wireless accessory 201 is damaged, λ for the current and future values of i is stored. i In one embodiment, only the backtracking resistance λ is exposed, and the anti-tracking secret AT is not exposed. i to the non-volatile memory of the wireless accessory 201.
[0052] In one embodiment, the wireless accessory 201 may transmit a beacon signal 301 every two seconds, although other beacon rates may be used, and the beacon rate may change under certain circumstances. For example, the wireless accessory 201 may decrease its beacon rate when in close proximity to its owner. The beacon rate may also change based on an event triggered by an accelerometer. For example, the wireless accessory 201 may increase its beacon rate when in an alarm state, which may be triggered by an accelerometer on the wireless accessory 201.
[0053] The wireless accessory 201 may enter the near-owner state if, after transmitting the beacon signal 301, the wireless accessory 201 receives a response from the mobile device 102 associated with the accessory's user indicating that the mobile device 102 is within range of the wireless accessory. Additionally, while the wireless accessory is in the near-owner state, the amount of data transmitted by the beacon signal 301 may be reduced. In one embodiment, the rate at which new public keys are generated may also be reduced while the wireless accessory is in the near-owner state.
[0054] The wireless accessory 201 can enter an alarm state upon receiving a message from the mobile device 102 indicating that the wireless accessory 201 should enter an alarm state. When in the alarm state, the wireless accessory can first enter an armed state in which the wireless accessory 201 can reduce or stop transmitting locator beacon signals, although other types of wireless signaling can continue. The wireless accessory 201 can remain in the armed state until the state is deactivated by the mobile device 102 or an alarm is triggered. In one embodiment, the alarm can be triggered when movement is detected, for example, via an accelerometer within the wireless accessory 201. In one embodiment, the alarm can also be triggered when the wireless accessory detects that it has moved out of range of the mobile device and is no longer in proximity to its owner. When an alarm is triggered, the rate of the beacon signal 301 can be increased to increase the speed at which the wireless accessory 201 can be located.
[0055] The beacon signal 301 transmitted by the wireless accessory 201 can be detected by a set of finder devices 303 (the finder devices can be finder devices 202) and / or mobile devices 102, which are other electronic devices that can receive the beacon signal transmitted by the wireless accessory and transmit location and other data associated with the beacon signal 301 to the device locator server 203 over the wide area network 114. In one embodiment, the set of finder devices 303 can include variations of mobile devices 102 or can be other types of electronic devices. For example, the set of finder devices 303 can perform an operation (320) to correlate the beacon signal 301 received from the wireless accessory 201 with a device location associated with the finder devices 303. As described with respect to FIG. 2 , device location can be determined via a satellite positioning service or a terrestrial positioning system using RF signals received from wireless base stations (e.g., Wi-Fi access points or cell tower transmitters). In one embodiment, the set of finder devices 303 may also include fixed devices such as smart speaker devices, televisions, or television set-top boxes that are capable of receiving the beacon signals 301 .
[0056] The set of finder devices 303 may encrypt the location data using the beacon identifier (e.g., public key) received in the beacon signal 301 and transmit the location data (325) to the device locator server 203. The data transmitted by the set of finder devices 303 is transmitted anonymously, and the identification information of the finder devices is not stored with the data transmitted by the finder devices.
[0057] The device locator server 203 can store the encrypted location data in a data store 304, which in one embodiment can be a distributed database having multiple nodes. A hash of the accessory's beacon identifier / public key can be transmitted along with the encrypted location data. The encrypted location data can be stored in a database node based on the hash of the beacon identifier. The encrypted location data can be indexed by the device locator server 203 using the hash of the beacon identifier. Transmitting the hash of the beacon identifier instead of the full beacon identifier prevents storage of the full beacon identifier in the server. Other information, either encrypted or unencrypted, can also be transmitted and stored along with the location data. The other information can include a timestamp of when the beacon signal 301 was received, RSSI information of the received beacon, and / or ranging information determined, for example, via UWB ranging.
[0058] When a user or owner of the wireless accessory 201 wishes to locate the accessory, the user or owner can access a device locator UI 204 on the mobile device 102. The device locator UI 204 may be associated with the locator application 190 or a feature of the mobile device 102. The device locator UI 204 may also have a web-based interface that can be accessed from the mobile device 102 or another type of electronic device, such as a laptop or desktop device. Once the mobile device 102 loads the device locator UI 204, the mobile device 102 can send a request (330) for location data to the device locator server 203. The request 330 can include a set of public keys or public key hashes that can serve as beacon identifiers for the beacon data. The mobile device 102 can generate a set of public keys based on secret information maintained by the mobile device 102 and the wireless accessory 201 and a timestamp at which the mobile device 102 wishes to receive location data. In one embodiment, the set of public keys is generated based on a sequence P of public keys generated based on a tracking prevention secret. i The public key P i The sequence of j The mobile device 102 receives the sequence of public keys and the corresponding sequence of public keys d j where i is a counter or a timestamp. In one embodiment, the mobile device 102 may generate a public key for the previous 24 hours (or a hash of the 24 hour public key) and send it in the request 330. If no data is found for the 24 hour public key, the mobile device 102 may send a generated key for an earlier period to revert to the predetermined location data retention limit.
[0059] In one embodiment, the encrypted location data is stored and indexed based on a hash of the public key instead of the public key to prevent location service data providers from storing data that can be used to tie the encrypted location data to a particular device and therefore a particular user or user account. A finder device can transmit a hash of the public key broadcast in a beacon signal 301 associated with the observed location. The device owner can query the device locator server 203 using the hash of the public key determined for the query period.
[0060] In some embodiments, when a location query is performed via a web-based interface from an electronic device such as a laptop or desktop device, a key to enable decryption of the location data may be required to be sent to the electronic device. In one embodiment, a location data decryption key may be sent to a server providing the web-based interface to enable the server to decrypt the location data, at least while the location data is being viewed via the web-based interface. Before the location data is displayed via the web-based interface, a notice may be presented to inform the user that a location decryption key has been temporarily shared with the web-based interface server to enable the location data to be decrypted and presented. In one embodiment, the sharing of the location decryption key may be performed via automatic and temporary delegation of location query rights by a proxy account associated with the web-based interface.
[0061] In one embodiment, the wireless accessory 201 can be placed in simple lost mode. In simple lost mode, a set of future public keys can be generated for the wireless accessory and sent to the device locator server 203. The device locator server 203 can then notify the mobile device 102 whether any location data corresponding to a key in the set of future public keys has been received. In one embodiment, a finder device transmitting the location of a wireless accessory in simple lost mode can instruct the device locator server 203 to relay a message to the wireless accessory 201 informing the wireless accessory that it is in simple lost mode. A similar mechanism can be used to relay a message to the wireless accessory 201 to place the accessory in explicit lost mode. Explicit lost mode can be enabled by the user via the device locator UI 204. In explicit lost mode, the wireless accessory 201 cannot be paired with another device unless it is unlocked by the owner. Further examples of paired devices using location services can be found in U.S. Patent Application No. 16 / 543,227, entitled "A System and Method for Locating Wireless Accessories," filed August 16, 2019, which is incorporated herein by reference in its entirety.
[0062] 4 is a flow diagram 400 illustrating a method for pairing a group of accessory devices according to embodiments herein. The mobile device 102 may receive a pairing status from a first accessory device 101A indicating whether the first accessory device 101A is paired (402). Pairing between the devices exists when the mobile device 102 has access to at least one key associated with the first accessory device for the mobile device 102's user account (e.g., a cloud-based account). The pairing status, status information, and / or verifiable information may be provided in a beacon signal indicating whether the first accessory device 101A is currently paired, pending pairing, or unpaired.
[0063] If the first accessory device 101A is not currently paired with the mobile device 102 according to the pairing status, a pairing process can be selectively initiated (404), as shown in FIG. 5 . In some embodiments, the pairing status may indicate that pairing is pending for the first accessory device 101A, and a device group profile for the device group 105 can be retrieved from the device locator server 203 database. The device group profile can be part of a data model for a device group with location data crowdsourced using the device locator service 170. The device group profile can be stored on the mobile device 102 and synchronized among devices linked to a cloud-based account. Additionally, the device group profile can be stored in databases on the mobile device 102 and the device locator server 203. The device group profile can record, by way of example, relationships between accessory devices, status information, and verifiable information received from the accessory device and / or device manufacturer. The device group profile can be updated with information received from the accessory device 101 via the mobile device. The device group profile may include, but is not limited to, the following information: the number of accessory devices in the device group, the number of paired devices, the serial numbers of the accessory devices in the device group, the pairing status of the accessory devices, and any other information for providing device location services 170. Thus, any status and / or verifiable information previously stored in the device group profile may be received from a device in device group 105 and compared to the status and / or verifiable information stored in the device profile of device group 105.In some embodiments, the pairing process may be stopped if there is a mismatch in information between the information received from the first accessory device 101A and the device profile and / or if the verifiable information received from the first accessory device 101A cannot be verified. Each member device or accessory device 101 that is part of a device group 105 may be a separately identifiable beacon transmitting peripheral device to allow all accessory devices 101 in the device group 105 to be found and verified.
[0064] The first accessory device 101A can provide verifiable information in the beacon signal that can be verified by a certificate authority or other attestation service that the first accessory device 101A has a serial number that matches a device from the device group 105 as expected from the device manufacturer or a user-defined device group. Further, the certificate authority or other attestation service can use the verifiable information to certify the first accessory device 101A as having a particular device manufacturer. Those skilled in the art will recognize that there are various methods for verification of the information provided by the first accessory device that can be performed before proceeding with the pairing process to ensure that the first accessory device can be trusted.
[0065] Alternatively, if the first accessory device 101A does not provide the verifiable information, the pairing process may not proceed. Embodiments may require the first accessory device 101A to provide verifiable information (e.g., cryptographically verifiable information such as a certificate and / or token) including, but not limited to, a serial number, a manufacturer identifier, a software version, an indication that the accessory device is part of a device group of accessory devices, an expected accessory device identifier relative to other accessory devices in the device group, an expected number of accessory devices in the device group, and / or any other information in order for the first accessory device 101A to initiate pairing. In one embodiment, the verifiable information may be cryptographically verifiable and authenticated by the certificate authority 106.
[0066] A request for information about the accessory devices in the device group may be sent to the first accessory device 101A (406). For example, the requested information may include an indication that the accessory device 101A is part of another device or device group 105, the number of devices in the device group 105, and the number of devices in proximity to the first accessory device 101A in the device group (406). The accessory device information received on the device group 105 may be stored in a device group profile and referenced for the pairing process by the mobile device 102.
[0067] The information may be received (408) on a second accessory device 101B in the device group 105. The information received on the second accessory device 101B from the first accessory device 101A can assist in further pairing of the remaining unpaired accessory devices in the device group 105. In one embodiment, if the second accessory device 101B is in proximity to the first accessory device 101A, the first accessory device 101A can transmit verifiable information about the second accessory device 101B. If the second accessory device is in proximity (410), a pairing continuation message can be sent to the second accessory device to attempt to pair the second accessory device 101B. If the second accessory device is not in proximity and / or the pairing fails, the verifiable information of the second accessory device may be stored in the corresponding device group profile. The information of the second accessory device 101B may be stored in the device group profile so as to be accessible to the mobile device 102 for a later attempt to pair the second accessory device 101B, and the pairing status of the second accessory device may be set to "pairing pending." Alternatively, if the information received from the second accessory device 101B matches the verifiable information from the first accessory device 101A, the pairing process may proceed to FIG. 5 to pair the second accessory device 101B. For ease of explanation, only the pairing of two accessory devices is described, but one skilled in the art will recognize that pairing may continue for any number of accessory devices if the accessory devices in the device group provide verifiable information to the mobile device 102.
[0068] Information about the device group 105 regarding the number of parts, the received information about the second accessory device, and any other status and / or verifiable information may be stored (412). If a device profile for the device group 105 does not exist, a device group profile for the device group 105 may be created. The device profile may be updated to store information about the device group 105 received from the accessory device 101 and / or the mobile device 102. Information that may be stored in the device group profile may include, but is not limited to, verifiable information received on devices in the device group 105, the last received beacon signal (e.g., status, advertisement, proximity information, location data, etc.) received from any device in the device group 105, and any other information for pairing and / or using devices in the device group 105. Optionally, pairing may continue with other devices in proximity to either the first and / or second accessory device 101 (414). The next device to pair with may be considered the first accessory device, and the process may continue (402).
[0069] Figure 5 is a flow diagram illustrating a method for use with the device locator system described herein. Figure 5 illustrates a method 500 for pairing a mobile device with a wireless accessory. Aspects of method 500 are also illustrated in Figures 2 and 3, as discussed above. For example, the following operational description refers to a mobile device 102, a wireless accessory 201, and a device locator server 203.
[0070] As shown in FIG. 5, method 500 includes an act of performing (502) initial pairing with a wireless accessory. The initial pairing can be Bluetooth® pairing or another type of pairing using other wireless technologies. During initial pairing, the mobile device and wireless accessory can exchange identifiers, passkeys, or other authentication information that enables wireless data exchange to occur between the mobile or other electronic device and the wireless accessory. In one embodiment, the initial pairing with the wireless accessory can include an exchange of authentication information associated with the wireless protocol over which pairing is being performed, allowing all data exchanged wirelessly to have at least a first layer of encryption.
[0071] The mobile device may then generate a public / private key pair and one or more additional shared secrets (504). The device may then send the public key and one or more additional shared secrets to the wireless accessory (506). Various key generation techniques may be used. In one embodiment, a variant of ECDH is used to generate the public key pair for encryption. In one embodiment, the one or more additional shared secrets may include an anti-tracking secret that allows the wireless accessory to derive a new public key based on an existing public key.
[0072] After generating the public / private key pair and one or more additional shared secrets, the mobile device may store the public / private key pair in a key store (508). In one embodiment, the key store is a cloud-based key store that can be synchronized with other devices associated with the same cloud service account or family of cloud service accounts with which the mobile device and wireless accessory are associated. The cloud-based key store allows the wireless accessory to be located by other synchronized devices. The mobile device may then register the wireless accessory with a device management server (510). Registering the wireless accessory with the device management server may form an association between the wireless accessory and the cloud service account with which the mobile device is associated. In some embodiments, the mobile device may register the wireless accessory and a device group 105. Information stored in a device group profile for the device group 105 may also be synchronized among devices bound to the cloud service account (e.g., a user account). The device management server may be associated with other cloud-based servers used to facilitate cloud-based services accessible to mobile devices, such as the device locator server 203 of FIGS. 2 and 3 .
[0073] 6 is a flow diagram 600 illustrating a method for pairing a device group of accessory devices according to embodiments herein. A first accessory device 101A can transmit a status regarding its pairing status to a host device (e.g., a mobile device 102) and verifiable information regarding the first accessory device 101A to the host mobile device 102. If the first accessory device 101A is not paired with the host mobile device 102, the pairing process of FIG. 5 can be selectively performed at the discretion of the mobile device 102, as described in FIG. 4. The first accessory device 101A can determine a status regarding the proximity of a second accessory device 101A in the device group 105 (602), and the status is transmitted to the host mobile device 102 (604). For example, a first accessory device 101A may be in proximity to a second accessory device 101 if the devices are within the same case 103, if the devices are wirelessly connected, and / or if the first accessory device 101A can discover or receive a beacon signal from the second accessory device 101B.
[0074] A handshake message is then sent to the second accessory device 101B (606). The handshake message is a message for establishing communication between the accessory devices 101. In response to the message, the first accessory device 101A can receive verifiable information from the second accessory device 101B (608). The host mobile device 102 is sent verifiable information (610), which can be stored in a profile and used for pairing with the second accessory device 101B.
[0075] 7 is a sequence diagram 700 illustrating a method of presenting a device locator user interface for use with the device locator system described herein. The accessory devices 101 of a device group 105 can be found separately and independently in a discovery experience. When the accessory devices 101 of a device group are physically connected, at least one accessory device 101A from the device group that is physically connected to another accessory device 101B can provide a beacon signal to find the device group 101. For example, a beacon signal for a single AirPod 101A can be used to find all of the AirPods® in the case 103.
[0076] In one embodiment, the accessory devices 101 may be within range of a wireless connection (e.g., a Bluetooth connection) but may not be currently connected. The accessory devices 101 may be in the same location or in different locations within a location, such as a first accessory device 101A in a bedroom and a second accessory device 101B in a garage at home. The mobile device 102 may launch (706) the device locator application 204. The device locator application 204 may request a connection to at least one accessory device (708) in the device group 105. For example, the device locator application 204 may pre-empt the connection by initiating or attempting to establish a wireless connection to accessory devices 101A and / or 101B in the device group 105. In some embodiments, there is a delay period, such as six seconds, before the wireless connection is established. In some embodiments, whether attempting to establish a wireless connection in parallel or sequentially, the device locator application 204 can request information about the last known location of the accessory device 101 from the device locator service 170.
[0077] The mobile device 102 can establish a connection with the accessory device 101A, or the mobile device 102 can request the last known location of the accessory device 101A, determined from a previously received advertisement. After the user finds the accessory device 101A (710), a connection between the device 102 and the accessory device 101A is established (712). In some embodiments, if the user places the accessory device 101A inside the case 103, the accessory device 101A and / or the case 103 can detect a physical connection with the accessory device 101A and communicate that the accessory device 101A was recently placed inside the case 103. In response to detecting that the accessory device 101A has been placed inside the case 103, the discovery experience can continue to find the next accessory device 101B. The user interface 204 can be presented (714) with information regarding the location of the discovered accessory device 101A (716). The selectable user interface element may be presented with a user interface querying the user whether to continue discovering accessory devices in the group 105 (718), and the discovery experience may continue with the next accessory device 101B if the next accessory device 101B needs to be located as determined by the user using the selectable user interface element. If the user chooses to continue searching by selecting the selectable user interface element, the mobile device 102 may connect to at least one accessory device 101B that needs to be discovered (720). Location information received in the beacon signals may be presented in the user interface 204 (722) to guide the user to find the remaining accessory devices (e.g., 101B) until the accessory device 101B is found (724). The user interface 204 may indicate that the accessory device has been discovered (726).
[0078] FIG. 8 is a flow diagram illustrating a method for presenting a device locator user interface for use with the device locator system described herein. A request to launch an application may be received (802). A connection to at least one accessory device from a group of devices may be initiated (804). In some embodiments, a previously received beacon signal may indicate status information, such as whether accessory devices in the device group are separated or joined while a connection is attempted. A user interface may be presented with the status on at least one device from the device group (806). Upon receiving an indication that at least one device is connected to another device from the device group, a selectable element may be presented with a query regarding whether to continue to find devices from the group of devices (808). In some embodiments, an indication that at least one device is physically connected to the case 103 is a good indicator that other devices may also have been found. The status of the other devices may be presented based on a response to the query (810). For example, if a selectable element is selected to continue discovering devices from the device group 105, the mobile device may initiate a discovery experience to locate the second accessory device 101B.
[0079] 9A is a flow diagram 900 illustrating a method for finding accessory devices 101 in a device group 105. The discovery technique may be performed to provide a discovery experience for accessory devices in a device group 105, which in some embodiments may be performed by an owner mobile device 102 paired with at least one accessory device in the device group 105. The discovery technique may also be performed by a mobile device 102 used as a finder device 202 to crowdsource location data for the device group 105. Optionally, when the mobile device 102 receives a request to find the device group 105 of an accessory device 101 by an owner of the device group 105, the mobile device 102 may display the status of the accessory devices 101 in the device group 105 (902). For example, the user interface 204 may provide location information for each of the accessory devices 101 in the device group 105. The beacon signal received by the mobile device 102 from the first accessory device 101A can indicate the status of other accessory devices 101 in the device group 105, including, but not limited to, whether the accessory device is in proximity to the mobile device and / or another accessory device in the device group 105, and whether it is connected to another device wired and / or wirelessly. The accessory device status information provided in the received beacon signal can determine the approach taken to find the accessory device in the device group 105. Although the discovery description is provided for a pair of devices, one skilled in the art will recognize that a similar approach can be taken with any number of devices in a device group 105 with any number of accessory devices.
[0080] An indication that the accessory device 101A is part of the device group 105 may be received (904). The mobile device 102 may receive the indication in a beacon signal from the accessory device 101A. In some embodiments, the beacon signal may be any type of advertisement transmitted by the accessory device 101A, including advertisements transmitted to and / or before forming a connection with the mobile device 102. The status information provided in the beacon signal may indicate whether the devices are physically separated (906). If the accessory devices are not physically separated (906), the beacon signal from at least one accessory device in the device group may provide location information regarding a second accessory device from the device group (910). As an example, if the accessory device 101 is in a case and has a wired connection to the case 103, the beacon signal received from the accessory device 101A may provide location data such as RSSI data (e.g., measurements determined from the beacon signal) to help locate the accessory device 101 within the device group. The beacon signal may provide status and / or verifiable information about the coupled accessory device 101B, such as the accessory device's 101B serial number, paired status, etc. RSSI data determined from the beacon signal from accessory device 101A may be attributed to accessory device 101B since device 101A is within case 103.
[0081] 9A , if at least one accessory device in the device group 105 is physically separated (906), a determination is made as to whether the accessory device 101 is wirelessly connected (908). If the first accessory device 101A and the second accessory device 101B are wirelessly connected (908), a beacon signal from the first accessory device in the device group can provide location information for the device group (910). By way of example, if the accessory device 101 has a wireless connection, a beacon signal received from the first accessory device 101A can provide location data, such as RSSI data determined from the beacon signal, to help locate the accessory device 101 in the device group. While the exemplary embodiment is described for a device group having two accessory devices, those skilled in the art will recognize that any number of accessory devices may be connected and / or separated from a given accessory device, and that the beacon signal for a given accessory device may represent any number of accessory devices in the device group connected to the accessory device. In one embodiment, a set of bits in a beacon signal received from a given accessory device may be designated to indicate which devices are connected to and / or disconnected from the accessory device. The beacon signal may provide status information about the coupled accessory device 101B, such as the serial number of the first accessory device 101B, paired status, and whether the second accessory device 101B is in proximity to the first accessory device 101A. RSSI data determined from the beacon signal from accessory device 101A (e.g., measurements determined by a mobile device upon receiving a Bluetooth advertisement) may be attributed to accessory device 101B as device 101.
[0082] Alternatively, if the accessory devices are not wirelessly connected (908), beacon signals from the first accessory device 101A and the second accessory device 101B are used to locate the device 101 (912). By way of example, the beacon signal received from the first accessory device 101A can provide location data, such as RSSI data determined from the advertisement, to help locate the accessory device 101 within the device group 105. The beacon signal can provide last known status information about the coupled accessory device 101B, such as the first accessory device's 101B serial number, paired status, and whether the second accessory device 101B is or was in proximity to the first accessory device 101A. If there are other devices to find within the device group (914), the process continues (902).
[0083] Alternatively, RSSI data (916) may optionally be used to present the status of the device, such as up-to-date location information. Location data for accessory device 101 may also be stored (916) for each device and / or device group profile. The location data may be stored for use with discovery user interface 204, such as shown in Figures 16-21, and / or may be stored with locator service 170.
[0084] 9B is a flow diagram 920 illustrating a method for discovering an accessory device 101 in a device group 105. In one embodiment, an owner uses a discoverer mobile device 102 to request a discovery experience through user interface 204 to find a device group 105 for an AirPod accessory device 101 with an AirPod case 103. In another embodiment, the discoverer mobile device 102 can execute a discovery method that uses the AirPod case 103 to provide location data of the AirPod accessory device 101 to a device locator service 170 to crowdsource the location data. An indication that the first accessory device is part of the device group 105 can be received by the mobile device (921). Status and / or verifiable information provided in the beacon signal can indicate that the first accessory device 101A is part of the device group 105. In some embodiments, the indication that the first accessory device 101A is part of the device group 105 can be verified using a certificate authority or attestation service.
[0085] The status information received in the beacon signal from the first accessory device 101A may indicate that the first accessory device 101A (e.g., the right or left AirPod) has a physical connection to a second accessory device 101B (e.g., the remaining AirPod) in the device group 105 (922). By way of example, the AirPods® 101 may be stored in a case 103, and the AirPods® 101 may be physically coupled. In some embodiments, the primary AirPod 101A providing the beacon signal is the last AirPod 101A placed in the case 103, and the beacon signal may include advertisements, status information (including proximity information about the second accessory device 101B), and RSSI data.
[0086] A beacon signal from a first accessory device 101A in device group 105 may be received (923) by mobile device 102. The beacon signal includes status information about a second accessory device 101B (924) and location data from the beacon signal for device group 105 (924). The location data may be presented on AirPods® 101 using user interface 204 and / or stored on a location server.
[0087] 9C is a flow diagram 930 illustrating a method for discovering accessory devices in a device group. In one embodiment, an owner uses a discoverer mobile device 102 to request a discovery experience through user interface 204 to find a device group 105 for an AirPod accessory device 101 with an AirPod case 103. In another embodiment, the discoverer mobile device 102 can execute a discovery method that uses the AirPod case 103 to provide location data of the AirPod accessory device 101 to a device locator service 170 to crowdsource the location data. An indication that a first accessory device is part of a device group is received (931). Status and / or verifiable information provided in the beacon signal can indicate that the first accessory device 101A is part of the device group 105. In some embodiments, the indication that the first accessory device 101A is part of the device group 105 can be verified using a certificate authority or attestation service.
[0088] The status information received in the beacon signal from the first accessory device 101A may indicate that the first accessory device 101A (e.g., the right or left AirPod) has a wireless connection to a second accessory device 101B (e.g., the remaining AirPod) in the device group 105 (932). Thus, an inference can be made that the first accessory device is in proximity to and / or has access to location information of the second accessory device 101B, and the beacon signal from the first accessory device 101A may depend on the location information of the coupled accessory device.
[0089] A beacon signal from a first accessory device 101A in the device group 105 may be received by the mobile device 102 (933). The beacon signal includes status information regarding a second accessory device 101B (933) and location data from the beacon signal for the device group 105 (933). The status information may also include information regarding whether the first accessory device 101A is in proximity to the second accessory device 101B. The location data may be presented on the AirPods® 101 using the user interface 204 and / or stored in a location server (934).
[0090] 9D is a flow diagram 940 illustrating a method for discovering accessory devices in a device group. In one embodiment, an owner uses a discoverer mobile device 102 to request a discovery experience through user interface 204 to find a device group 105 for an AirPod accessory device 101 with an AirPod case 103. In another embodiment, the discoverer mobile device 102 can execute a discovery method that uses the AirPod case 103 to provide location data of the AirPod accessory device 101 to a device locator service 170 to crowdsource the location data. An indication that a first accessory device is part of a device group is received (941). Status and / or verifiable information provided in the beacon signal can indicate that the first accessory device 101A is part of the device group 105. In some embodiments, the indication that the first accessory device 101A is part of the device group 105 can be verified using a certificate authority or attestation service.
[0091] The status information received in the beacon signal from the first accessory device 101A may indicate that the first accessory device 101A (e.g., the right or left AirPod) is not connected to another accessory device in the device group 105 (e.g., 101B remains an AirPod) (942). A first beacon signal from the first accessory device 101A in the device group 105 (943) and a second beacon signal from the second accessory device 101B in the device group 105 may be received sequentially or in parallel (944). In some embodiments, if an AirPod (either 101A or 101B) is in the case 103, proximity information may not be provided in the status information in the beacon signal. Location data from the first and second beacon signals may be presented on the AirPods® 101 using the user interface 204 and / or stored in a location server (945).
[0092] FIG. 10 illustrates a method 1000 for determining the location of a wireless accessory via the device locator server 203. FIG. 11 illustrates an additional method 1100 for determining the location of a wireless accessory via the device locator server 203. In one embodiment, the location data retrieved using the methods illustrated in FIGS. 10 and / or 11 may include data for the accessory device 101 in the device group 105. In another embodiment, the methods illustrated in FIGS. 10 and / or 11 may be performed for each accessory in the device group 105. As illustrated in FIG. 10, the method 1000 includes an operation in which an electronic device launches a device locator UI (1001). In response to launching the device locator UI, the electronic device, which may be a mobile device 102 described herein or another electronic device associated with the same cloud service account as the mobile electronic device 102, may perform an operation to generate a set of public keys that were included in beacon signals broadcast by the wireless accessory during a first time period (1002). The first time period may be, for example, the past 24 hours. The electronic device, knowing the frequency at which the wireless accessory generates new public keys, can use the shared secret key generated by the wireless accessory to generate a set of public keys corresponding to the keys generated by the wireless accessory over a first period of time. The electronic device can then transmit the set of public keys in a request for the device locator server 203 to transmit location data corresponding to the set of public keys (1003). In one embodiment, the location data transmitted by the server in response to the request is encrypted using the public key transmitted as the beacon identifier of the wireless accessory. The electronic device can decrypt the encrypted location data received by the server using the secret key generated during initial pairing with the wireless accessory (1004). The electronic device can then process the location data to determine the most probable location of the wireless accessory (1005).
[0093] Processing the location data can include a variety of different operations. In one embodiment, the location data includes latitude and longitude information along with a timestamp at which the location was determined. The electronic device can triangulate based on the timestamp to remove noise or outlier locations. In one embodiment, the location data specifies the location of the finder device that detected the beacon. The location data can further include UWB ranging information and / or RSSI information for the beacon detected by the finder device. The electronic device can analyze the UWB ranging information and / or RSSI information in conjunction with the device location to reveal a more precise location of the wireless accessory. Data transmitted by the finder device and that can be used for location processing is shown in FIG. 12 and described below.
[0094] As shown in FIG. 11 , method 1100 includes operations that can be performed when a device locator server does not have location data to provide to an electronic device in response to a request. In the case of a device group 105, an electronic device (e.g., mobile device 102) can provide location data for devices in the device group. The electronic device can generate a first set of public keys that were included in beacon signals broadcast by the wireless accessory during a first period of time (1101). The first period of time can be, for example, 24 hours, although other initial search periods can also be used. The electronic device can perform a subsequent operation of requesting the device locator server to send location data corresponding to the first set of public keys (1102). If data is returned by the server (1103, “Yes”), the electronic device can decrypt the location data received from the server using a private key corresponding to the set of public keys (block 1109).
[0095] If no data is returned by the server (1103, “No”), the electronic device may generate a second set of public keys that were included in beacon signals broadcast by the wireless accessory during a second period of time (1104). The second period of time may be 24 hours, 48 hours, or another time before the first period of time. The electronic device may then request the device locator server to send data corresponding to the second set of public keys (1105). If data is returned by the server in response to the request (1106, “Yes”), method 1100 may proceed to block 1109, where the electronic device decrypts the received data. If data is not returned by the server (1106, “No”) or the server sends a response indicating that the data is not available, method 1100 includes the electronic device extending the search time by requesting successively older periods until a maximum period is reached (1107).
[0096] FIG. 12 is a flow diagram illustrating a method 1200 of broadcasting a signal beacon in a wireless accessory, according to one embodiment. Aspects of method 1200 are also shown in FIGS. 2 and 3. Method 1200 includes the wireless accessory deriving a public key (block 1202). The public key may be derived based on a shared secret and a timestamp determined based on a clock or timing device of the wireless accessory. Optionally, a determination is made as to whether the wireless accessory is part of a device group (1204). If the wireless accessory is part of the device group (1204), status and / or verifiable information about other accessory devices 101 in the device group 105 is provided in the beacon signal (1206). The wireless accessory may indicate status and / or verifiable information, such as whether any other wireless accessories in the device group are in proximity or connected (physically or wirelessly), and / or any other information about the other wireless accessories in the device group 105. In one embodiment, a set of bits included in the beacon signal can represent each accessory in the device group, and setting a Boolean value (e.g., true (1) or false (0)) can indicate whether the individual accessory is in proximity to and / or connected to the accessory device transmitting the beacon signal. Alternatively, if the wireless accessory is not part of a device group, no information about the device group is provided (1204). The wireless accessory can then transmit a beacon signal at a first frequency, where the beacon signal includes the public key (1208). The first frequency can vary, and in one embodiment is one beacon every two seconds.
[0097] After transmitting the beacon signal, the wireless accessory may listen for a response from the owner device (1210). If the wireless signal receives a response from the owner device (1210, "yes"), the wireless accessory may enter a near-owner state (1212) and begin transmitting a beacon signal at a second, lower frequency (1216). If the wireless accessory does not receive a response from the owner device (1210, "no"), the wireless accessory may continue transmitting beacons at the first frequency (1214).
[0098] Method 1200 additionally includes, for the wireless device, rotating the public key every M minutes during beacon transmission, where the value of M may vary across embodiments and / or based on device state. Based on a timer expiration, a counter, or another mechanism, the wireless accessory may determine whether the accessory has entered a new key period (1218). While the wireless accessory has not entered a new key period (1218, “No”), the accessory may continue beacon transmission using the current public key (1222). Upon detecting that the wireless accessory has entered a new key period (1218, “Yes”), the accessory may derive a new public key using the current timestamp (block 1220). In one embodiment, the new public key may be derived using the existing public key, timestamp, and anti-tracking secret.
[0099] 13-14 illustrate operations of a method 1300 that may be performed by a finder device according to embodiments described herein. Aspects of the method 1300 are also illustrated in FIGS.
[0100] 13, method 1300 includes a finder device performing periodic beacon scans using a wireless baseband processor while an application processor of the finder device is in a low power mode (1301). While beacon scans may also be performed when the application processor is active, beacon scans may be performed by the wireless processor and wireless receiver as a low power operation while the finder device is idle, inactive, or otherwise in a low power state. The finder device may store a timestamp and a beacon identifier in a beacon scan buffer for any beacon data received by the finder device (1302). The beacon identifier in one embodiment is a public key generated by the wireless device based on the timestamp and a shared secret generated at the owner's mobile device.
[0101] Method 1300 further includes the finder device performing periodic Wi-Fi scans using the radio processor while the application processor is in a low power mode (1303). The Wi-Fi scans may also be performed when the application processor is active, but the Wi-Fi scans may be performed by the radio processor and radio receiver as a low power operation while the finder device is idle, inactive, or otherwise in a low power state. The device may then store the Wi-Fi service set identifier (SSID) and scan timestamp in a Wi-Fi scan buffer on the finder device (1304).
[0102] In one embodiment, the Wi-Fi scan buffer is a rolling buffer that stores the most recently detected SSIDs while overwriting older detected SSIDs. In one embodiment, the beacon scan buffer may be a fixed-size buffer with space for a predetermined number of entries. The finder device may wake up the application processor when the beacon scan buffer is full (1305) and correlate those beacon scans with the most recently detected SSIDs in the Wi-Fi scan buffer. If the beacon indicates that the beacon signal was received from a device group (1306), a set of device locations corresponding to the received beacon based on the Wi-Fi scan buffer data may be performed for the beacon signal from the device group 105 (1310). For example, if a beacon signal is received from a first accessory device in the device group 105 and includes information about a set of nearby devices physically or wirelessly connected to the first accessory device, the last known location of the first accessory device may be attributed / stored to the first accessory device and each of the nearby devices in the device group 105. Alternatively, the correlation may enable the finder device to determine a set of device locations corresponding to the received beacons based on the Wi-Fi scan buffer data (1308).
[0103] Method 1300 continues with FIG. 14 and includes the finder device correlating 1407 the device location from the Wi-Fi scan buffer data with other location data, if other location data is available, to generate a refined device location. If a refined device location is generated, the finder device may optionally combine 1408 beacon data with the refined device location. The finder device may also add 1409 signal strength (RSSI) and / or ranging data to the location data. Signal strength and ranging data (e.g., UWB ranging data) may be collected as beacon signals are received by the finder device. The finder device may then encrypt 1410 the location data using one or more public keys received in the beacon data. The signal and ranging data may be encrypted along with the location data or may be transmitted unencrypted along with the encrypted location data. The finder device may enqueue 1411 the encrypted location data for transmission to a device locator server. The device locator server may be one of multiple cloud services servers, to which communication is typically performed in a batch and throttled manner. Batches of encrypted data may be collected and placed in a transmission queue until a transmission interval arrives, during which the finder device may transmit the data to the cloud services server (1412).
[0104] FIG. 15 illustrates the collection of signal and ranging data by a finder device, according to one embodiment. In one embodiment, the finder device 202 can collect signal strength information (e.g., RSSI 1504A-1504N) of beacon signals 301 received from the wireless accessory 201 across multiple locations 1502A-1502N. The finder device 202 can also represent multiple finder devices, such as the set of finder devices 303 of FIG. 3, with each finder device detecting a beacon signal at a different location. Each finder device 202 can transmit a different location and signal strength, and the location and signal strength data received from the multiple finder devices is aggregated by a device locator server. In one embodiment, the finder device and wireless device each include a UWB radio, UWB ranging 1506 can be performed when the finder device and wireless device are within range of a UWB transmission. The UWB ranging and signal strength data can be transmitted to the device locator server along with the finder device's location data.
[0105] The owner device can retrieve RSSI and / or UWB information from the device locator server along with location data, which in one embodiment is provided in the form of latitude and longitude information along with a timestamp at which the location was determined. The owner device can then use the location data, timestamp, and signal information to triangulate the most likely location of the wireless accessory 201.
[0106] 16-21 illustrate a device locator UI 204, according to one embodiment. FIG. 16 illustrates a first graphical user interface of the device locator UI 204, according to one embodiment, showing notifications for a user's various wireless accessories. The device locator UI 204 can cause a separation notification 1602 to be presented on the home screen 1601 of the electronic device 1600. FIG. 17 illustrates a second graphical user interface of the device locator UI 204, according to one embodiment, which allows a user to request that a left-behind accessory device be seen on a map, add a trusted location, or stop notifications for the item. FIG. 18 illustrates a third graphical user interface of the device locator UI 204, according to one embodiment, which allows a user to locate an accessory device 101 within a device group 105. As shown, electronic devices 1500, including mobile devices 102, can be used to scan for any accessory devices (as indicated by the "L" left and "R" right options in 1804) in device group 105 using location data from beacon signals and using discovery methods described herein. Selectable element 1805 can be selected to continue finding accessory devices in device group 105.
[0107] Figure 19 shows a fourth graphical user interface of the device locator UI 204, according to one embodiment, that allows for locating accessory devices 101 in a map, including devices in a device group 105. Figure 20 shows a fifth graphical user interface of the device locator UI 204, according to one embodiment, that allows for notification when a wireless accessory is set to lost mode or is found. The device locator UI 204 can be displayed on an electronic device, which can be a mobile device 102 or any other type of electronic device described herein. Figure 21 shows a sixth graphical user interface of the device locator UI 204, according to one embodiment, that allows for a wireless accessory to add a trusted location.
[0108] As shown in FIG. 17 , the device locator UI 204 can present a unified graphical interface on the electronic device 1700 through which multiple different types of devices and accessories can be located, including wireless devices with network or cellular access and wireless accessories without native network access. The device locator UI 204 can include a map 1704 with a marker 1505 indicating the current or last known location of the wireless device or accessory. The marker 1505 can be an icon, image, graphic, or any other user interface element that identifies the accessory and conveys the accessory's location. Selectable elements 1706 within the device locator UI 204 can present a description or name of the wireless device or accessory and can indicate the estimated distance between the wireless device or accessory and the current location of the electronic device 1900, as shown in FIG. 19 .
[0109] 19, the device locator UI 204 may present a fourth user interface that allows the wireless accessory to view the distance from the item 1903 and the electronic device 1900. In one embodiment, in response to selection of the selectable element 1706 shown in FIG. 17, a second user interface may be displayed. The second user interface may present user interface elements 1902 that represent and / or describe the wireless accessory in question, as well as a map 1901 and a marker 1902 that indicate the current or last known location of the wireless accessory.
[0110] As shown in FIG. 20 , the device locator UI 204 can present a fifth graphical user interface that allows the wireless accessory to be placed in lost mode. In one embodiment, if the wireless accessory cannot be located via the device locator UI 204, the map 2001 does not display a marker indicating the accessory's location. The device locator UI 204 can present user interface elements 2004 that represent and / or describe the wireless accessory in question and a set of selectable user interface elements. One selectable user interface element 2006 can present an option to notify the user when the accessory is found. When found notification is enabled, in one embodiment, the wireless accessory can be placed in simplified lost mode. An electronic device associated with the device locator UI 204 can generate a set of public keys that the wireless accessory will broadcast with its beacon signal during a future period (e.g., the next 24 hours, the next 48 hours, etc.). If a signal is detected by a finder device using one of the future keys, the device locator server can notify one or more electronic devices associated with the user. The device locator UI 204 may present a selectable user interface element 2005 to allow the user the option to request that the lost device play a sound. If a connection is established with the lost device from the device group 105, a request to play a sound may be sent to the lost device. If a connection cannot be established, the user may be given the option, via a selectable user interface element (not shown), to queue the play sound request to be sent to the lost device if a connection can be formed within a defined period of time. If the user chooses to queue the request at the mobile device 102, the status of the queued request may be provided on the user interface, such as with a selectable user interface element 2008 indicating that the request is on hold with "sound pending."
[0111] Another selectable user interface element 2007 can place the wireless accessory in explicit lost mode. When explicitly placed in lost mode, the wireless accessory cannot be paired with other devices until the accessory is unlocked by the user or owner who places the device in lost mode. When sending a request to place the wireless accessory in lost mode, the requesting user may be required to enter authentication information to ensure that the requesting user is authorized to request that lost mode be initiated on the lost accessory. The authentication information may include a username or password associated with the user, the electronic device, and the user's account, such as a cloud service account with which the wireless accessory is associated. The authentication information may also include biometric information, such as fingerprint or facial recognition data.
[0112] In one embodiment, a message and contact information provided by the requesting user may be displayed on the user device to alert the finder of the lost wireless accessory on how to contact the requesting user. In one embodiment, the message and contact information may be displayed when another user attempts to pair another electronic device with the lost accessory.
[0113] 21 , the device locator UI 204 can present a sixth graphical user interface within the electronic device 100 that allows for the designation of a known location 2106 shown on the map with 2104 to become a trusted location upon selection of a selectable element 2103. The device locator UI 204 can present a user interface element 2105 that represents and / or describes the wireless accessory in question.
[0114] FIG. 22 is a block diagram illustrating an exemplary API architecture that may be used in some embodiments of the present invention. As shown in FIG. 22, the API architecture 2200 includes an API implementation component 110 (e.g., an operating system, library, device driver, API, application program, software, or other module) that implements an API 1120. The API 2220 specifies one or more functions, methods, classes, objects, protocols, data structures, formats, and / or other features of the API implementation component that may be used by an API calling component 2230. The API 2220 may specify at least one calling convention that specifies how functions of the API implementation component receive parameters from the API calling component and how the functions return results to the API calling component. The API calling component 2230 (e.g., an operating system, library, device driver, API, application program, software, or other module) makes API calls through the API 2220 to access and use the functionality of the API implementation component 2210 as specified by the API 2220. The API implementation component 2210 may return a value to the API calling component 2230 through the API 2220 in response to the API call.
[0115] It will be understood that API implementation component 2210 may include additional functions, methods, classes, data structures, and / or other functionality not specified through API 2220 and not available to API invocation component 2230. It should be understood that API invocation component 2230 may be on the same system as API implementation component 2210 or may be located remotely and may access API implementation component 2210 using API 2220 over a network. While Figure 22 shows a single API invocation component 2230 interacting with API 2220, it should be understood that other API invocation components, which may be written in a different language (or the same language) as API invocation component 2230, may use API 2220.
[0116] The API implementation component 2210, the API 2220, and the API calling component 2230 can be stored on a machine-readable medium, which includes any mechanism for storing information in a form readable by a machine (e.g., a computer or other data processing system). For example, machine-readable media include magnetic disks, optical disks, random access memory, read-only memory, flash memory devices, and the like.
[0117] 23 is a block diagram of a device architecture 2300 for a mobile or embedded device, according to one embodiment. The device architecture 2300 includes a memory interface 2302, a processing system 2304 including one or more data processors, image processors, and / or graphics processing units, and a peripherals interface 2306. The various components may be coupled by one or more communication buses or signal lines. The various components may be separate logic components or devices, or may be integrated into one or more integrated circuits, such as a system on a chip integrated circuit.
[0118] The memory interface 2302 can be coupled to memory 2350, which can include high-speed random access memory, such as static random access memory (SRAM) or dynamic random access memory (DRAM), and / or non-volatile memory, such as, but not limited to, flash memory (e.g., NAND flash, NOR flash, etc.).
[0119] Sensors, devices, and subsystems can be coupled to the peripherals interface 2306 to facilitate multiple functions. For example, a motion sensor 2310, a light sensor 2312, and a proximity sensor 2314 can be coupled to the peripherals interface 2306 to facilitate mobile device functions. One or more biometric sensor(s) 2315, such as a fingerprint scanner for fingerprint authentication or an image sensor for facial recognition, may also be present. Other sensors 2316 can also be connected to the peripherals interface 2306, such as a positioning system (e.g., a GPS receiver), a temperature sensor, or other detection devices, to facilitate related functions. A camera subsystem 2320 and an optical sensor 2322 (e.g., a charge-coupled device (CCD) or complementary metal-oxide semiconductor (CMOS) optical sensor) can be utilized to facilitate camera functions such as recording pictures and video clips.
[0120] Communication functions may be facilitated via one or more wireless communication subsystems 2324, which may include radio frequency receivers and transmitters and / or optical (e.g., infrared) receivers and transmitters. The specific design and implementation of the wireless communication subsystem 2324 may depend on the communication network(s) over which the mobile device is intended to operate. For example, a mobile device including the illustrated device architecture 2300 may include a wireless communication subsystem 2324 designed to operate over a GSM network, a CDMA network, an LTE network, a Wi-Fi network, a Bluetooth network, or any other wireless network. In particular, the wireless communication subsystem 2324 may provide a communication mechanism by which a media playback application can retrieve resources from a remote media server or scheduled events from a remote calendar or event server.
[0121] The audio subsystem 2326 can be coupled to a speaker 2328 and a microphone 2330 to facilitate voice-enabled functions such as voice recognition, voice duplication, digital recording, and telephony functions. In the smart media devices described herein, the audio subsystem 2326 can be a high-quality audio system that includes support for virtual surround sound.
[0122] The I / O subsystem 2340 may include a touchscreen controller 2342 and / or other input controller(s) 2345. In the case of a computing device that includes a display device, the touchscreen controller 2342 may be coupled to a touch-sensitive display system 2346 (e.g., a touchscreen). The touch-sensitive display system 2346 and touchscreen controller 2342 may detect contact and movement and / or pressure using any of a number of touch and pressure sensing technologies, including, for example, but not limited to, 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 system 2346. Display output for the touch-sensitive display system 2346 may be generated by a display controller 2343. In one embodiment, the display controller 2343 may provide frame data to the touch-sensitive display system 2346 at a variable frame rate.
[0123] In one embodiment, a sensor controller 2344 is included to monitor, control, and / or process data received from one or more of the motion sensor 2310, light sensor 2312, proximity sensor 2314, or other sensors 2316. The sensor controller 2344 can include logic to interpret the sensor data and determine the occurrence of one of more motion events or activities through analysis of the sensor data from the sensors.
[0124] In one embodiment, I / O subsystem 2340 includes other input controller(s) 2345 that can be coupled to other input / control devices 2348 such as one or more buttons, rocker switches, thumbwheels, infrared ports, USB ports, and / or pointer devices such as a stylus, or control devices such as up / down buttons for volume control of speaker 2328 and / or microphone 2330.
[0125] In one embodiment, memory 2350 coupled to memory interface 2302 can store instructions for operating system 2352, including Portable Operating System Interface (POSIX) compliant and non-compliant operating systems or embedded operating systems. Operating system 2352 can include instructions for handling basic system services and performing hardware-dependent tasks. In some implementations, operating system 2352 can be a kernel.
[0126] Memory 2350 may also store communications instructions 2354 to facilitate communication with one or more additional devices, one or more computers, and / or one or more servers, for example, to retrieve web resources from a remote web server. Memory 2350 may also include user interface instructions 2356, including graphical user interface instructions that facilitate processing of a graphical user interface.
[0127] Additionally, memory 2350 may store sensor processing instructions 2358 to facilitate sensor-related processes and functions, telephone instructions 2360 to facilitate telephone-related processes and functions, messaging instructions 2362 to facilitate electronic messaging-related processes and functions, web browser instructions 2364 to facilitate web browsing-related processes and functions, media processing instructions 2366 to facilitate media processing-related processes and functions, location services instructions including GPS and / or navigation instructions 2368 and Wi-Fi-based location instructions to facilitate location-based functions, camera instructions 2370 to facilitate camera-related processes and functions, and / or other software instructions 2372 to facilitate other processes and functions, such as security processes and functions, and system-related processes and functions. Memory 2350 may also store other software instructions, such as web video instructions to facilitate web video-related processes and functions, and / or web shopping instructions to facilitate web shopping-related processes and functions. In some implementations, the media processing instructions 2366 are divided into audio processing instructions that facilitate audio processing related processes and functions and video processing instructions that facilitate video processing related processes and functions. A mobile device identifier, such as an International Mobile Equipment Identity (IMEI) 2374 or similar hardware identifier, can also be stored in memory 2350.
[0128] Each of the above-identified instructions and applications may correspond to a set of instructions that perform one or more of the functions described above. These instructions need not be implemented as separate software programs, procedures, or modules. Memory 2350 may include additional instructions or fewer instructions. Furthermore, various functions may be implemented in hardware and / or software, including one or more signal processing and / or application specific integrated circuits.
[0129] 24 is a block diagram of a computing system 2400, according to one embodiment. The computing system 2400 shown in the figure is intended to represent a variety of computing systems (wired or wireless), including, for example, one or more implementations of a desktop computer system, a laptop computer system, a tablet computer system, a cellular telephone, a personal digital assistant (PDA) including a cellular-enabled PDA, a set-top box, an entertainment system or other consumer electronic device, a smart home appliance device, or a smart media playback device. Alternative computing systems may include more, fewer, and / or different components. The computing system 2400 may be used to host a computing device and / or a server device to which a computing device may connect.
[0130] The computing system 2400 includes a bus 2435 or other communication device for communicating information, and processor(s) 2410 coupled to the bus 2435 that may process information. While the computing system 2400 is illustrated with a single processor, the computing system 2400 may include multiple processors and / or coprocessors. The computing system 2400 may further include memory 2420, such as a random access memory (RAM) or other dynamic storage device, coupled to the bus 2435. The memory 2420 may store information and instructions that may be executed by the processor(s) 2410. The memory 2420 may also be main memory, used for storing temporary variables or other intermediate information during execution of instructions by the processor(s) 2410.
[0131] Computing system 2400 may also include a read-only memory (ROM) 2430 and / or another data storage device 2440 coupled to bus 2435 that may store information and instructions for the processor(s) 2410. Data storage device 2440 may be or include a variety of storage devices such as a flash memory device, a magnetic disk, or an optical disk, and may be coupled to computing system 2400 via bus 2435 or via a remote peripheral interface.
[0132] Computing system 2400 may also be coupled to a display device 2450 via bus 2435 to display information to a user. Computing system 2400 may also include an alphanumeric input device 2460, including alphanumeric and other keys, that may be coupled to bus 2435 to communicate information and command selections to processor(s) 2410. Another type of user input device includes a cursor control device 2470, such as a touchpad, mouse, trackball, or cursor direction keys, that communicates directional information and command selections to processor(s) 2410 and controls cursor movement on display device 2450. Computing system 2400 may also receive user input from remote devices communicatively coupled via one or more network interface(s) 2480.
[0133] Computing system 2400 may further include one or more network interface(s) 2480 to provide access to a network, such as a local area network. Network interface(s) 2480 may include, for example, a wireless network interface having antenna(s) 2485, which may represent one or more antennas (e). Computing system 2400 may include multiple wireless network interfaces, such as a combination of Wi-Fi, Bluetooth, near field communication (NFC), and / or cellular telephone interfaces. For example, network interface(s) 2480 may also include a wired network interface for communicating with remote devices via network cable 2487, which may be, for example, an Ethernet cable, a coaxial cable, a fiber optic cable, a serial cable, or a parallel cable.
[0134] In one embodiment, the network interface(s) 2480 may provide access to a local area network, for example, by conforming to the IEEE 802.11 wireless standard, and / or the wireless network interface may provide access to a personal area network, for example, by conforming to the Bluetooth® standard. Other wireless network interfaces and / or protocols may also be supported. In addition to or instead of communicating via a wireless LAN standard, the network interface(s) 2480 may provide wireless communication using, for example, a time division multiple access (TDMA) protocol, a global system for mobile communications (GSM) protocol, a code division multiple access (CDMA) protocol, a long term evolution (LTE) protocol, and / or any other type of wireless communication protocol.
[0135] The computing system 2400 may further include one or more energy sources 2405 and one or more energy measurement systems 2445. The energy source 2405 may include an AC / DC adapter coupled to an external power source, one or more batteries, one or more charge storage devices, a USB charger, or other energy source. The energy measurement system includes at least one voltage or amperage measurement device capable of measuring energy consumed by the computing system 2400 over a predetermined period of time. The computing system 2400 may further include one or more energy measurement systems that measure energy consumed by, for example, a display device, a cooling subsystem, a Wi-Fi subsystem, or other frequently used or high energy consuming subsystems.
[0136] Figure 25 is a flow diagram 2500 illustrating a method for requesting a lost accessory device or device group to play a sound, according to one embodiment. The mobile device 102 may receive 2502 a request to play a sound on the accessory device 101A via the device locator application UI 204 as shown in Figure 20. If an initial attempt 2502 to establish a wireless connection with the accessory device 101A is successful, the request to play a sound may be sent to the accessory device 101A.
[0137] Optionally, if the initial attempt to establish a wireless connection is unsuccessful, status information about the device group 105 may be received (2504). The last known status information obtained from beacon signals from accessory devices 101 in the device group may provide information about the beacon rate of the accessory device 101. For example, the beacon rate may, in some embodiments, depend on whether the accessory device is in or out of the case 103. Optionally, a request to increase the beacon rate may be sent to accessory device 101A, if necessary. The timeout period for attempting to connect to accessory device 101A may be determined based on the beacon rate as determined by the state of accessory device 101 (e.g., a beacon rate of every minute if in the case or every two seconds if out of the case, etc.).
[0138] The user may be given the option to continue attempting to establish a connection with the accessory device 101A and to queue a request to play a sound on the accessory device 101A (2506) via the device locator UI 204. If the user chooses to queue a request on the mobile device 102 to request that a sound be played on the accessory device 101A (2506), then if a connection is established before a timeout period expires, the request is sent to the accessory device upon establishment of a wireless connection with the accessory device 101A (2508). The status of the play sound request (2510) indicating success or failure may be presented in the device locator application UI 204.
[0139] 26-28 are sequence diagrams illustrating a method for requesting one or more accessory devices lost from a device group to play a sound, according to embodiments described herein. FIG. 26 is a sequence diagram 2600 showing a method for requesting one or more accessory devices lost from a device group to play a sound, according to one embodiment. Sequence diagram 2600 illustrates a method for playing a sound on an accessory 101 in a device group 105 when the accessory device is outside of a case 103 to assist a user in locating the lost accessory. The mobile device 102 launches the device locator application 204 and requests that a sound be played on the lost accessory device 101 in the device group 105 (2606). An attempt is made to establish a wireless connection with the first accessory device 101A, and the connection status is presented in the user interface (2608). Optionally, a request is sent to the first and second accessories 101 to detect whether the accessories are on-body (e.g., in-ear, on-wrist, etc.) (2610). An alert may be presented on the user interface of the device locator application 204 to notify whether any of the accessories are currently attached (2610). The volume and / or type of sound may be changed if an accessory is detected on-body. Once a wireless connection with the first accessory device 101A is established, a request to play a sound is sent to the first accessory (2612). Optionally, the user interface of the device locator application 204 may display a message that a sound request is pending (2614). The attempt to establish a wireless connection with each of the accessory devices may be performed for a configurable duration (2614). If a wireless connection is established, a sound is played on the first accessory device 101A (2616). Once a wireless connection with the second accessory device 101B is established, a request to play a sound is sent to the second accessory device 101B (2618).If a wireless connection is established, a sound is played on the second accessory device 101B (2620). The status of the request to play the sound (e.g., success or failure) for each accessory may be presented in the user interface of the device locator application 204 (2622).
[0140] 27 is a sequence diagram 2700 illustrating a method for requesting one or more accessory devices lost from a device group to play a sound, according to one embodiment. The sequence diagram 2700 illustrates a method for playing a sound on both accessories 101 in a device group 105 when the accessory devices are in a case 103. The mobile device 102 launches the device locator application 204 and requests that a sound be played on the lost accessory device 101 in the device group 105 (2706). An attempt is made to establish a wireless connection with the first accessory device 101A, and the connection status is presented in the user interface (2708). Optionally, a request is sent to the first and second accessories 101 to detect whether the accessories are on-body (e.g., in the ear, on the wrist, etc.) (2710). An alert may be presented in the user interface of the device locator application 204 to inform whether any of the accessories are currently being worn (2710). The volume and / or type of sound may be changed if an accessory is detected on-body. Once a wireless connection with the first accessory device 101A is established, a request to play a sound is sent to the first accessory (2712). Optionally, the user interface of the device locator application 204 may display a message that a sound request is pending (2714). The attempt to establish a wireless connection with each of the accessory devices in the case 103 may be performed for a configurable duration (2714). If a wireless connection is established, a sound is played on the first accessory device 101A (2716). The device locator application 204 may receive an acknowledgment message from the first accessory device 101A that the sound has been played. The status of the request to play a sound (e.g., success or failure) for each accessory may be presented in the user interface of the device locator application 204 (2722).
[0141] 28 is a sequence diagram 2600 illustrating a method for requesting one or more accessory devices lost from a device group to play a sound, according to one embodiment. Sequence diagram 2800 illustrates a method for playing a sound on both accessories 101 in a device group 105 when a first accessory device 101A is outside of a case 103 and a second accessory device 101B is inside of the case 103. The mobile device 102 launches the device locator application 204 and requests that a sound be played on the lost accessory device 101 in the device group 105 (2806). An attempt is made to establish a wireless connection with the first accessory device 101A, and the connection status is presented in a user interface (2808). Optionally, a request is sent to the first and second accessories 101 to detect whether the accessories are on-body (e.g., in-ear, on the wrist, etc.) (2810). An alert may be presented on the user interface of the device locator application 204 to notify whether any of the accessories are currently attached (2810). The volume and / or type of sound may be changed if an accessory is detected on-body. Once a wireless connection with the first accessory device 101A is established, a request to play a sound is sent to the first accessory (2812). Optionally, the user interface of the device locator application 204 may display a message that a sound request is pending (2814). The attempt to establish a wireless connection with each of the accessory devices may be performed for a configurable duration (2814). If a wireless connection is established, a sound is played on the first accessory device 101A (2816). Once a wireless connection with the second accessory device 101B is established, a request to play a sound is sent to the second accessory device 101B (2818). Optionally, the user interface of the device locator application 204 may display a message that a sound request is pending (2821).An attempt to establish a wireless connection with each of the accessory devices may be performed for a configurable duration 2821. If a wireless connection is established, a sound is played on the second accessory device 101B 2820. The status (e.g., success or failure) of the request to play the sound for each accessory may be presented 2822 in the user interface of the device locator application 204.
[0142] Although the embodiments have been described in language specific to structural features and / or methodological acts, it should be understood that the appended claims are not necessarily limited to the specific features or acts described above. Rather, the specific features and acts disclosed should be understood as illustrative embodiments of the claims.
Claims
1. 1. A method for pairing with a device group, the method comprising: receiving a pairing status from a first accessory device in the device group; selectively pairing with the first accessory device based on the pairing status; sending a request to a first accessory device for information about accessory devices in the device group, the information including information about at least one accessory device in the device group that is proximate to the first accessory device; receiving information about a second accessory device in the device group; selectively transmitting a pairing continue message to the second accessory device if the second accessory device is in proximity; creating a device group profile having information about the accessory device in the device group and the received information about the second accessory device.
2. sending a request for status information to the first accessory device, the status information including the pairing status and an indication that the first accessory is part of the device group; The method of claim 1 further comprising:
3. sending a request for status information to the first accessory device, the status information including verifiable information of the first accessory device; sending a verification request along with the received information about the first accessory device; If the device is not paired, selectively performing pairing with the second accessory device, the pairing including having access to at least one key associated with the second accessory device for a user account; The method of claim 1 further comprising:
4. The method of claim 1 , wherein the first accessory device is a wireless beacon peripheral device.
5. sending a verification request along with the received information regarding the second accessory device; selectively transmitting a pairing continue message to the second accessory device based on a verification result received in response to the verification request; The method of claim 1 further comprising:
6. sending a request to a first accessory device for information regarding the number of accessory devices in the device group and the number of accessory devices in the device group that are proximate to the first accessory device; The method of claim 1 further comprising:
7. 1. A method for facilitating pairing of a group of devices, the method comprising: determining, by a first accessory device, a proximity status of a second accessory device in the device group; transmitting the status regarding the proximity of the second accessory device in the device group to a host device; sending a handshake message to the second accessory device; A method comprising: receiving verifiable information from the second accessory device; and transmitting the verifiable information to the host device.
8. A non-transitory machine-readable medium storing instructions for causing one or more processors of an electronic device to perform operations, the operations comprising: receiving a pairing status from a first accessory device in the device group; selectively pairing with the first accessory device based on the pairing status; sending a request to a first accessory device for information about accessory devices in the device group, the information including information about at least one accessory device in the device group that is proximate to the first accessory device; receiving information about a second accessory device in the device group; and selectively transmitting a pairing continuation message to the second accessory device if the second accessory device is in proximity; creating a device group profile having information about the accessory device in the device group and the received information about the second accessory device.
9. 1. A data processing system comprising: a memory for storing instructions for execution; and one or more processors that execute the instructions stored in memory, the instructions, when executed, causing the one or more processors to: receiving a pairing status from a first accessory device in the device group; selectively pairing with the first accessory device based on the pairing status; causing the first accessory device to send a request for information about accessory devices in the device group, the information including information about at least one accessory device in the device group that is proximate to the first accessory device; receiving information about a second accessory device in the device group and selectively transmitting a pairing continuation message to the second accessory device if the second accessory device is in proximity; A data processing system causes a device group profile to be created that includes information about the accessory device in the device group and the received information about the second accessory device.
10. 1. A method for discovering a device group, the method comprising: receiving an indication that a first accessory device is part of a device group, the first accessory device having a physical connection to a second accessory device in the device group; receiving a beacon signal from the first accessory device in the device group, the beacon signal including status information regarding the second accessory device; storing location data from the beacon signals on the device group.
11. The method of claim 10 , wherein a plurality of accessory devices in the device group are physically connected to a case.
12. The method of claim 10 , wherein RSSI information is determined from the beacon signal, the beacon signal including an advertisement that includes RSSI information.
13. presenting location data on the device group in a user interface; The method of claim 10 further comprising:
14. requesting storage of location data on said device group using a device locator service; The method of claim 10 further comprising:
15. generating at least one key for at least one accessory device in the device group; and requesting a device locator service to transmit location data corresponding to the at least one key; receiving and presenting location data on the group of devices; The method of claim 14 further comprising:
16. 1. A method for discovering a device group, the method comprising: receiving an indication that a first accessory device is part of a device group, the first accessory device being wirelessly connected to a second accessory device in the device group; receiving a beacon signal from the first accessory device in the device group, the beacon signal including status information regarding a second accessory device; storing location data from the beacon signals on the device group.
17. presenting location data on the device group in a user interface; 17. The method of claim 16, further comprising:
18. requesting storage of location data on said device group using a device locator service; 17. The method of claim 16, further comprising:
19. 1. A method for discovering a group of devices, the method comprising: receiving an indication that the first accessory device is part of a device group; receiving status information indicating that the first accessory device is not connected to another accessory device in the device group; receiving a first beacon signal from the first accessory device in the device group and receiving a second beacon signal from a second accessory device in the device group; storing location data from the first beacon signal and the second beacon signal for the device group.
20. presenting location data on the device group in a user interface; 20. The method of claim 19 further comprising:
21. requesting storage of location data on said device group using a device locator service; 20. The method of claim 19 further comprising:
22. 1. A method for presenting a user interface for discovering a group of devices, the method comprising: Receiving a request to launch an application; Initiating a connection to at least one accessory device from a device group and presenting a user interface having a status on the at least one device from the device group; upon receiving an indication that the at least one device from the device group is connected to another device from the device group, presenting a selectable element having a query as to whether to continue discovering devices from the group of devices; and presenting a status of other devices based on the responses to the queries.
Citation Information
Patent Citations
Device, method, and graphical user interface for wirelessly pairing with and displaying status information about peripheral devices
JP2019533329A
Mobile discovery via community self-naming conventions
US20160381726A1
Method, device, and system for device pairing for improved safety and security of first responders entering an incident scene area
US20180288599A1