Allocating computing device resources when determining location data

By obtaining location data from a nearby mobile device instead of relying on its own GNSS system, computing devices can conserve system resources and extend battery life while maintaining accurate location monitoring.

WO2025128488A1PCT designated stage expired Publication Date: 2025-06-19GOOGLE LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
PCT/US2024/059201
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-12-11
Filing Date
2024-12-09
Publication Date
2025-06-19

AI Technical Summary

Technical Problem

Computing devices, especially wearable devices, face challenges in conserving system resources such as battery power when determining location data, as operating global navigation satellite system (GNSS) location systems is resource-intensive.

Method used

The computing device can obtain location data from a nearby mobile device rather than relying solely on its own GNSS location system, allowing it to power down resource-intensive GNSS components and use lower power short-wave radio technologies like Bluetooth for location determination.

Benefits of technology

This approach enables more efficient allocation of system resources, allowing the computing device to monitor its location with high accuracy while prolonging battery life by reducing unnecessary power consumption.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure US2024059201_19062025_PF_FP_ABST
    Figure US2024059201_19062025_PF_FP_ABST
Patent Text Reader

Abstract

Techniques are disclosed for enhancing system resource efficiency, particularly battery power, in computing devices during location-dependent tasks. When facing resource depletion, computing devices may prioritize location data from a nearby mobile device, allowing them to power down a global navigation satellite system (GNSS) location system and determine location using a low-power short-wave radio like Bluetooth. This approach ensures accurate location monitoring without rapidly depleting system resources. The disclosed instructions for computing devices include operations such as receiving the mobile device's location, determining both device locations through GNSS, and choosing between the mobile device's location or GNSS based on proximity.
Need to check novelty before this filing date? Find Prior Art

Description

ALLOCATING COMPUTING DEVICE RESOURCES WHEN DETERMINING LOCATION DATABACKGROUND

[0001] Operating systems of computing devices, and applications installed on computing devices, often require location data to execute a task. For example, a fitness tracking application may automatically send a request to the operating system (OS) for a wearable computing device to track a user’s location in the background while the user goes for a run, so the user may track their route. Such background tasks may consume resources of the computing device, such as battery power, processor cycles, network bandwidth, and the like. In some instances, the user may not be aware that the computing device is performing such background tasks and the background tasks may consume more resources than desired (e.g., by prematurely depleting the battery).SUMMARY

[0002] The techniques of this disclosure are directed to enabling a computing device to conserve system resources, such as battery power, while performing tasks that require location data. In general, a computing device may obtain its location data from a global navigation satellite system (GNSS) location system including a GNSS receiver of the computing device. One well-known example of this is computing devices obtaining global positioning system (GPS) coordinates via GPS receivers. However, operating GNSS location systems may be resource-intensive, particularly for computing devices with a shorter battery life, like a wearable computing device (e.g., smart watch). In some cases, battery life or other resources may run out before all of a user’s desired tasks are completed. In such examples where a computing device requires location data to perform tasks, the computing device may instead obtain its location from location data received from a nearby mobile device. This allows the computing device to power down the resource-intensive GNSS location system and / or GNSS receiver and determine the computing device’s location using a low power short-wave radio, such as a Bluetooth radio.

[0003] In this way, various aspects of the techniques may enable the computing device to more efficiently allocate system resources when performing tasks that require location data. Prioritizing obtaining location data via lower power hardware components or other less resource-intensive methods allows the computing device to monitor its location with a high degree of accuracy while ensuring that system resources, such as battery power, are notdepleted too quickly.

[0004] In some examples, a method is presented that includes: receiving, by a processor of a wearable device and from a mobile device communicatively coupled to the wearable device, a location of the mobile device; determining, by the processor of the wearable device and based on a global navigation satellite system (GNSS) location system of the wearable device, a location of the wearable device; determining whether the location of the mobile device is within a threshold distance of the location of the wearable device; responsive to determining that the location of the mobile device is within the threshold distance of the location of the wearable device, determining, based on a subsequent location of the mobile device, a subsequent location of the wearable device; and responsive to determining that the location of the mobile device is not within a threshold distance of the location of the wearable device, determining the subsequent location of the wearable device based on the GNSS location system of the wearable device.

[0005] In some examples, a system is presented that includes one or more computer processors; and a memory including instructions that when executed by the one or more computer processors cause the one or more computer processors to perform operations including: receiving, from a mobile device communicatively coupled to the wearable device, a location of the mobile device; determining, based on a global navigation satellite system (GNSS) location system of the wearable device, a location of the wearable device; determining whether the location of the mobile device is within a threshold distance of the location of the wearable device; responsive to determining that the location of the mobile device is within the threshold distance of the location of the wearable device, determining, based on a subsequent location of the mobile device, a subsequent location of the wearable device; and responsive to determining that the location of the mobile device is not within a threshold distance of the location of the wearable device, determining the subsequent location of the wearable device based on the GNSS location system of the wearable device.

[0006] In some examples, a non-transitory computer-readable storage medium is encoded with instructions that, when executed by one or more processors of a computing device, cause the one or more processors to perform operations including: receiving, by a processor of a wearable device and from a mobile device communicatively coupled to the wearable device, a location of the mobile device; determining, by the processor of the wearable device and based on a global satellite navigation system of the wearable device, a location of the wearable device; determining whether the location of the mobile device is within a threshold distance of the location of the wearable device; responsive to determining that the location ofthe mobile device is within the threshold distance of the location of the wearable device, determining, based on a subsequent location of the mobile device, a subsequent location of the wearable device; and responsive to determining that the location of the mobile device is not within a threshold distance of the location of the wearable device, determining the subsequent location of the wearable device based on the global satellite navigation system of the wearable device.

[0007] The details of one or more examples are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the disclosure will be apparent from the description and drawings, and from the claims.BRIEF DESCRIPTION OF DRAWINGS

[0008] FIG. l is a conceptual diagram illustrating a system incorporating a wearable device that intelligently manages location and communication systems, in accordance with the techniques of this disclosure.

[0009] FIG. 2 is a conceptual diagram illustrating an example system in which a wearable device conserves system resources in determining location data in accordance with techniques of this disclosure.

[0010] FIG. 3 illustrates a particular example of using the system(s) of FIGS. 1 and 2 to efficiently track the location of a wearable device in accordance with techniques of this disclosure.

[0011] FIG. 4 is a conceptual diagram that exemplifies a system wherein a wearable computing device employs one or more techniques from this disclosure to conserve system resources.

[0012] FIG. 5 is a flowchart illustrating an example operation of a wearable computing device in accordance with techniques of this disclosure.DETAILED DESCRIPTION

[0013] FIG. l is a conceptual diagram illustrating a system incorporating a wearable device that intelligently manages location and communication systems, in accordance with the techniques of this disclosure. The system, as depicted in FIG. 1, includes three main components: wearable device 101, mobile device 102, and network 110. Wearable device 101 and mobile device 102 are designed to function as companion devices, both potentially associated with a single user. In this arrangement, wearable computing device 101 may optimize resource usage during location by leveraging connectivity with the other device,such as mobile device 102.

[0014] In the example of FIG. 1, wearable device 101 is a wearable computing device (e.g., a computerized watch or so-called smart watch device). However, in other examples, wearable computing device 101 may be any mobile computing device such as a mobile phone, a tablet computer, a laptop computer, a portable gaming device, a portable media player, an e-book reader, an automobile computing platform or system, a fitness tracker, or any other type of wearable or non-wearable mobile computing device capable of intelligently managing wireless communication radios and location systems in accordance with one or more of the techniques described herein.

[0015] In the example of FIG. 1, network 110 represents any public or private data transmission network, for instance, a cellular, WIFI, Global navigation Satellite Systems (GNSS), and / or other type of network for transmitting data between computing devices. Wearable device 101 and mobile device 102 may send and receive data across network 110 using any suitable communication techniques. For example, wearable device 101 may be operatively coupled to network 110 using network link 112 and mobile device 102 may be operatively coupled to network 110 by network link 114. Network 110 may include communication with WIFI or cellular communication networks. Network 110 may include satellite communication links, utilizing Global Navigation Satellite Systems (GNSS) for precise and efficient location-based data exchange. Network 110 may include communication with WIFI or cellular communication networks, or any other communication networks that provide for the exchange of information to and from wearable device 101 and / or mobile device 102. Wearable device 101 and mobile device 102 may also exchange information without traversing network 110 by, for example, using direct link 116. Direct link 116 may be any network communication protocol or mechanism capable of enabling two computing devices to communicate directly (i.e., without requiring a network switch, hub, or other intermediary network device), such as BLUETOOTH, BLUETOOTH LOW ENERGY (BLE), WIFI DIRECT, ANT+, near-field communication (NFC), ZIGBEE, Z-WAVE, THREAD, or any other short distance radio frequency communication protocol.

[0016] As shown in FIG. 1, wearable device 101 is a wearable mobile computing device (e.g., a headset device, watch device, eyewear device, a glove device, a chest wrap device). However, in other examples, wearable device 101 may be a smartphone, a tablet computer, a laptop computer, a portable gaming device, a portable media player, an e-book reader, a watch, an automobile location system, or other type of mobile computing device. Wearable device 101 may include display module 103, resource module 107, location module 105, andcommunications module 109.

[0017] As shown in FIG. 1, wearable computing device 101 may include display module 103, resource module 107, location module 105, and communications module 109. Modules 103, 105, 107, 109 may perform operations described herein using software, hardware, or a mixture of both hardware and software residing in and executing on wearable device 101. Wearable device 101 may execute modules 103, 105, 107, 109 with multiple processors. Wearable computing device 101 may execute modules 103, 105, 107, 109 as a virtual machine on underlying hardware.

[0018] Display module 103 of wearable device 101 may control the function of the input devices and / or output devices included in wearable device 101 using various technologies. In some examples, display module 103 may control an input device that includes a presencesensitive input component, such as a resistive touchscreen, a surface acoustic wave touchscreen, a capacitive touchscreen, a projective capacitance touchscreen, a pressure sensitive screen, an acoustic pulse recognition touchscreen, or another presence- sensitive display technology. In some examples, display module 103 may control an input device using microphone technologies, infrared sensor technologies, or other input device technology for use in receiving user input. Display module 103 may function as an output (e.g., display) device using any one or more display components, such as a liquid crystal display (LCD), dot matrix display, light emitting diode (LED) display, miniLED, microLED, organic lightemitting diode (OLED) display, e-ink, or similar monochrome or color display capable of outputting visible information to a user of wearable device 101. In some examples display module 103 may control an output device configured to present output to a user using any one or more display devices, speaker technologies, haptic feedback technologies, or other output device technology for use in outputting information to a user.

[0019] Communications module 109 may control any wireless communication devices included in wearable device 101 that are capable of transmitting and / or receiving communication signals, for example a GNSS receiver, an ANT+ radio, a cellular radio, a 3G radio, a BLUETOOTH radio, or a WIFI radio. In a default setting, communications module 109 of wearable device 101 may operate with all communication components activated (e.g., turned on and consuming electrical power). In accordance with techniques of the disclosure, wearable device 101 may automatically deactivate and / or activate individual communication components, which may preserve stored electrical energy. Wearable device 101 may determine which communication components to deactivate or activate and use based on a context of the wearable device 101. The context may include any combination of factors,such as whether wearable device 101 is still connected to mobile device 102 via one or more direct link(s) 116, a type of data being transferred between wearable device 101 and mobile device 102, a current time of day, an amount of charge remaining in a battery of wearable device 101, a predicted amount of future usage before a predicted recharge time, a monetary cost to transfer data, location data of wearable device 101 and / or mobile device 102, etc.

[0020] Location module 105 of wearable device 101 may monitor the location of wearable device 101. Location module may control various computing components included in wearable device 101 that are configured to process location data received via one or more location components or communication components of wearable device 101. For example, in some implementations, location module 105 may perform constant or periodic monitoring of the location of the wearable device 101 according to one or more protocols of location module 105 in order to assist the user in tracking their fitness or workout goals, for example, or to provide necessary location information to the operating system or various applications installed on the wearable device 101.

[0021] In some implementations, location module 105 may determine the location of the wearable device 101 based on location data received from the mobile device 102 via direct link(s) 116, location data received from satellites via the GNSS system via link(s) 112, or location data received from some other computing device over network 110 via network link 112. Location module 105 may use one or more location monitoring protocols to determine the location. For example, location module 105 may determine that the location of the mobile device 102 corresponds to the location of the wearable device 101 when the mobile device 102 and the wearable device 101 are connected via direct link 116 using a particular short- range communication protocol, such as BLE, but not when the wearable device 101 and mobile device 102 are only connected via direct link 116 over BLUETOOTH, because BLE may have a much lower connection range than BLUETOOTH. In some examples, location module 105 may direct communications module 109 to continually or periodically request the location of the mobile device 102 for as long as the wearable device 101 and mobile device 102 are connected over the one or more direct link(s) 116.

[0022] Resource module 107 monitors the computing resources of wearable device 101 in order to prioritize relatively lower power communication and location components over relatively higher power communication components. For example, BLE radios typically require less power to operate than BLUETOOTH radios, which, in turn, typically require less power to operate than WIFI radios or GNSS location systems. In such examples, resource module 107 may activate a BLE and / or BLUETOOTH radio (e.g., configure thecommunication component(s) to be active) and deactivate other communication or location components of wearable computing device (i.e., configure the other communication component s) to be inactive), including a WIFI radio, a cellular radio, or a GNSS location system.

[0023] However, in examples, where wearable device 101 is not paired with and / or otherwise communicatively connected to mobile device 102 (e.g., over direct link(s) 116), resource module 107 may activate a relatively higher power location or communication component so as to provide the necessary location data to location module 105 of wearable device 101. For example, if wearable device 101 is not communicatively coupled to mobile device 102 using BLUETOOTH (e.g., mobile device 102 is outside of the range of BLUETOOTH, the BLUETOOTH radio of wearable device 101 is turned off, etc.), resource module 107 may deactivate a BLE or BLUETOOTH radio communication component or protocol and activate a GNSS location system component or protocol, even though it typically uses more power than a BLUETOOTH or BLE radio. While this example describes deactivating the BLE or BLUETOOTH radio, in other examples, they may remain active and continue to monitor for available devices to connect with, including mobile device 102. In such examples, if wearable device 101 is able to establish a BLUETOOTH or BLE connection to mobile device 102, resource module 107 may deactivate other communication or location components (e.g., configure the other components to be inactive or power them off).

[0024] Resource module 107 may monitor various characteristics of wearable device 101 and the data being exchanged between wearable device 101 and mobile device 102 or network 110. For example, resource module 107 may monitor a current charge level of a battery or other power component of wearable device 101. If resource module 107 predicts that the battery will run out of power prior to a predicted time at which wearable device 101 will be done being used or will be connected to a charger, resource module 107 may cause communications module 109 to establish one or more direct link(s) 116 to mobile device 102 in order to process location data of the mobile device 102 in lieu of location data received from the resource-intensive GNSS location system of the wearable device 101. For example, resource module 107 may cause communications module 109 to disable all long-range communications, including WIFI and satellite communications, so as to enable wearable device 101 to continue to maintain enough charge to function until the predicted recharge time.

[0025] Resource module 107 may also configure a GNSS location scan protocol of location module 107 based on an amount of charge remaining in the battery and based on the currentconnection states of communication components. For example, if wearable device 101 is able to establish a BLUETOOTH or BLE connection to mobile device 102 and if wearable device 101 is running off of batter power (i.e., not currently plugged in or charging), resource module 107 may enable a GNSS location scan protocol for performing GNSS location scans at a reduced periodic interval, such as once every minutes a compared to if wearable device 101 were unable to connect to mobile device 102 (e.g., once every second). In some implementations, if wearable device 101 is connected to mobile device 102 via an additional communication protocol, for example if the two are connected by both BLE and BLUETOOTH connections, resource module 107 may further reduce the frequency of satellite navigation scans to, for example, once every three minutes.

[0026] Wearable device 101 and mobile device 102 may exchange location data as well as various other types of data, such as voice data (e.g., for a telephone call), audio data (e.g., music), video data (e.g., movies), image data (e.g., still pictures), application data, sensor data, etc. In various instances, wearable device 101 may send a request for location data based on any combination of one or more of the types of operation using the data, the predicted amount of data to be transferred, and the amount of power required to transmit the data between wearable device 101 and mobile device 102. For example, while BLE may require less power to maintain a connection to mobile device 102, BLE may require more power than BLUETOOTH to transmit relatively larger amount of data. That is, BLE may have a higher per megabyte power cost than BLUETOOTH. Similarly, cellular may have a higher per megabyte power cost than WIFI but may have a lower per megabyte power cost than BLUETOOTH. In some examples, the estimated power cost includes a predicted amount of power savings achieved by using the location data of the mobile device 102 rather than performing a satellite navigation scan or performing a scan for other devices to connect to. In this way, wearable device 101 may efficiently control communication and location components so as to minimize the total amount of power used to obtain the location data of the wearable device 101.

[0027] As shown in FIG. 1, mobile device 102 is a mobile computing device (e.g., a smartphone), in some implementations, mobile device 102 may be a smart watch, a laptop computer, a tablet computer, a portable gaming device, a portable media player, an e-book reader, a vehicle computing platform or system, a fitness tracker or another type of portable or mobile device. Mobile device 102 includes display module 104, location module 106, and communications module 108. The modules 104, 106, 108 of the mobile device 102 perform the functions described above herein for the mobile device. For example, the display module104 controls the input and output devices of the mobile device 102, which may include any of the input or output devices or techniques mentioned herein. As another example, the communications module 108 controls the communication components on the mobile device 102 as well as the exchange of data with the wearable device 101. As yet another example, the location module 106 of the mobile device 102 monitors the location of the mobile device 102, for example as determined based on a GNSS location system included in the mobile device 102 similarly to the wearable device 101.

[0028] The system of FIG. 1 alleviates the computational burden on wearable device 101 by offloading the resource-intensive task of continuous GNSS location data acquisition to a more capable and power-efficient paired mobile device 102. This symbiotic relationship optimizes energy consumption on wearable device 101, significantly extending its battery life. Moreover, by strategically utilizing the GNSS location system of the paired mobile device 102, wearable device 101 can maintain a high degree of location accuracy without compromising its own computational resources. The system further excels in enhancing the overall user experience, ensuring seamless location-based functionalities on wearable device while concurrently mitigating the inherent limitations of compact device form factors.

[0029] FIG. 2 is a conceptual diagram illustrating an example system in which a wearable device conserves system resources in determining location data in accordance with techniques of this disclosure. In the example of FIG. 2, wearable device 201 represents the wearable device 101 of FIG. 1. Thus, for example, wearable device 201 may include any type of wearable mobile computing device (e.g., a headset device, watch device, eyewear device, a glove device, a chest wrap device) configured to allocate resources in accordance with techniques of this disclosure. However, in other examples, wearable device 201 may be a smartphone, a tablet computer, a laptop computer, a portable gaming device, a portable media player, an e-book reader, a watch, an automobile location system, or other type of mobile computing device configured to allocate resources in accordance with techniques of this disclosure. The system of FIG. 2 also includes one or more mobile device(s) 102, which as depicted in FIG. 2 may include mobile device(s) 102 as described herein with respect to FIG. 1. The system of FIG. 2 further includes satellites 220 that communicate with GNSS location systems in wearable device 201 and mobile device(s) 202 to aid in location determination, as described herein.

[0030] Wearable device 201 includes a user interface component (“UIC”) 202, an operating system 213 (“OS 213”) that includes a location module 205, a resource module 207, one or and more applications 217. However, in some implementations, wearable device 201 mayadditionally include any of the applications, modules, or repositories mentioned with respect to wearable computing devices in this disclosure. OS 213 and applications 217 may perform the operations described herein using software, hardware, firmware, or a mixture of hardware, software, and firmware residing in and / or executing at wearable device 201. Wearable device 201 may execute OS 213 and applications 217 with multiple processors or multiple devices, as virtual machines executing on underlying hardware, as one or more services of an operating system or computing platform, and / or as one or more executable programs at an application layer of a computing platform of wearable device 201.

[0031] UIC 211 of wearable device 201 may function as an input and / or output device for wearable device 201. UIC 211 may be implemented using various technologies. For instance, UIC 211 may function as an input device using presence-sensitive input screens, microphone technologies, infrared sensor technologies, or other input device technology for use in receiving user input. UIC 211 may function as an output device configured to present output to a user using any one or more display devices, speaker technologies, haptic feedback technologies, or other output device technology for use in outputting information to a user.

[0032] UIC 211 may detect input (e.g., touch and non-touch input) from a user of wearable device 201. UIC 211 may detect indications of input by detecting one or more gestures performed by a user (e.g., the user touching, pointing, and / or swiping at or near one or more locations of UIC 211 with a finger or a stylus pen). UIC 211 may output information to a user in the form of a user interface, which may be associated with functionality provided by wearable device 201.

[0033] As shown in the example of FIG. 2, wearable device 201 includes OS 213. OS 213 may provide an execution environment for one or more modules, such as location module 205, resource module 207, and one or more applications, such as applications 217. OS 213 may represent a multi-threaded operating system or a single-threaded operating system with which location module 205, resource module 207, and applications 217 may interface to access hardware of wearable device 201. OS 213 may include a kernel that facilitates access to the underlying hardware of wearable device 201, where kernel may present a number of different interfaces (e.g., application programmer interfaces (APIs)) that location module 205, resource module 207, and applications 217 may invoke to access the underlying hardware of wearable device 201.

[0034] Location module 205 of OS 213 may perform functions associated with handling location data for OS 213 to perform one or more functions, such as relative location determination or location tracking, as well as to execute tasks generated by applications 217.Location module 205 may control various location components used according to certain location protocols to determine or track the location of the wearable device 201. In some implementations, location module 205 may perform location scans by requesting that OS 213 to operate one or more location or communication components of wearable device 201 according to one or more protocols of location module 205, such as requesting that OS 213 communicate with satellites 220 in order to determine a current location of the wearable device. For example, location module 205 may request that OS 213 control a GNSS receiver of wearable device 201 to detect signals transmitted by multiple satellites 220 in its line of sight, calculate the distance from wearable device 201 to each satellite by measuring the time it takes for signals to travel (trilateration), and then combine the information from multiple satellites to determine the precise location of wearable device 201. The determined location data may include the precise latitude, longitude, and altitude of wearable device 201. As another example, location module 205 may request that OS 213 perform location scans by polling the location of one or more nearby mobile device(s) 102, as described herein.

[0035] Resource module 207 of OS 213 may perform functions associated with handling OS requests for OS 213 to execute tasks generated by applications 217, resource module 207, and / or location module 205. For instance, resource module 207 may schedule tasks by allocating resources, such as processors, network links, expansion cards, central processing unit (CPU) time, battery drain, and memory usage, to perform the tasks. Resource module 207 may also schedule, disable (e.g., make inactive or power off), and / or enable (e.g., make active or turn on) certain components and processes of the wearable device 201 in order to conserve or more efficiently allocate resources, and / or in response to detecting one or more triggering events. Triggering events may include, for example, OS requests from location module 205 or applications 217, receiving data transmissions from mobile device(s) 202 or satellites 220, detecting sensor signals from one or more sensors of wearable device 201, available resources, currently scheduled tasks, expected tasks, and determining certain contextual data of wearable device 201 and / or the user of wearable device 201 (e.g., the user wearing or logged in to wearable device 201). Contextual data of wearable device 201 and / or the user may include any features of user context or device context that may be determined based on the data available to OS 213. Other trigger events may include a sensed value (e.g., an acceleration, a velocity, an ambient light level, a distance from a connected mobile device 202, etc.) satisfying a threshold, detecting a short-range communication from a mobile device 202 (e.g., over BLUETOOTH, BLE, ANT+, NFC, ZIGBEE, etc ), a predetermined geographical location, or a predetermined time of day.

[0036] For example, resource module 207 may disable GNSS components of wearable device 201 or a location scan protocol of location module 205 in response to determining a distance between wearable device 201 and one of the mobile device(s) 102 connected to wearable device 201. In such an example, resource module 207 may enable a tethered device location protocol of location module 205 that determines location data for wearable device 201 based on location data received from one or more of the connected mobile device(s) 102. In some examples, resource module 207 may disable GNSS components or a particular location protocol in response to determining that battery levels, battery usage history, and navigation data indicate that the battery of wearable device 201 will die before the user of wearable device 201 reaches a charging location.

[0037] In some examples, resource module 207 may periodically enable previously disabled location components or protocols in order to determine additional contextual data. For example, while wearable device 201 has a tethered device location protocol enabled, resource module 207 may periodically enable previously disabled GNSS components and location protocols of location module 205 in order to determine a subsequent distance between wearable device 201 and the connected mobile device 202 providing location data to wearable device 201. In such an example, when resource module 207 determines that wearable device 201 and the connected mobile device 202 are no longer within a threshold distance of one another, resource module 207 may then disable the tethered device location protocol of location module 205 and re-enable the GNSS components and location protocols.

[0038] Although examples in this disclosure include location data, it should be appreciated that the techniques described herein may be performed for any kind of task for OS 213 of wearable device 201 that could be performed based on data received from one or more connected mobile device(s) 102. For example, wearable device 201 may be a wearable fitness device that determines velocity based on sensor(s) of wearable device 201 or based on data received from a connected mobile device 202. In such an example, resource module 207 of the wearable fitness device may select which source to determine velocity from based on factors such as the accuracy of data required for certain applications 217 to function and the current or expected resources available to the wearable fitness device.

[0039] As used throughout this disclosure, the term “tasks” is used to describe instructions stored on a computer-readable storage medium that cause one or more processors of wearable device 201 to execute corresponding processes, threads, and / or data flows associated with applications 217. Typically, tasks may be foreground tasks or background tasks. Execution of a foreground task may require a user of wearable device 201 to interact with the foregroundtask (e.g., an application may require a user input to request execution of a foreground task). Conversely, execution of a background task may be independent of the user (e.g., an application may not require a user input to request execution of a background task).

[0040] Applications 217 may represent first party applications developed and provided as applications integrated into OS 213 and / or third-party applications that the user of wearable device 201 obtains via application store services provided by way of OS 213. Applications 217 may extend software functionality of wearable device 201, where applications 217 may execute within an execution environment presented by OS 213. Applications 217 may, for example, provide navigation services, fitness tracking services, gaming services (e.g., video games), email services, web browsing services, texting and / or chat services, web conferencing services, video conferencing services, music services (including streaming music services), video services (including video streaming services), location services, word processing services, spreadsheet services, slide and / or presentation services, assistant services, text entry services, or any other service commonly provided by applications. For purposes of this disclosure, applications 217 may include widgets.

[0041] Applications 217 of wearable device 201 have the capability to request task execution from location module 205 or resource module 207 of OS 213. For instance, consider a fitness application seeking location data pertinent to the user of wearable device 201. Given the continuous need for location updates in scenarios like navigation, resource module 207, in order to conserve resources of wearable device 201, strategically schedules and causes OS 213 to execute the task using the hardware of wearable device 201. If resource module 207 anticipates insufficient battery life until the next charge and determines that a connected mobile device 202 is within a threshold distance of wearable device 201, it intelligently manages certain location and communication components by enabling or disabling specific protocols related to location scans within location module 205 to efficiently handle location data requests, thereby potentially improving the performance and / or the user experience of wearable device 201.

[0042] While described as scheduling a task in response to sufficient resources being available, in other examples resource module 207 may schedule the task even when there are not sufficient resources. In these instances, OS 213 refrains from task execution until adequate resources become available. For example, resource module 207 may schedule the task regardless of the current resource sufficiency, considering the associated resource cost. Responsive to resource module 207 confirming that the available resources align with the task's associated costs, OS 213 may execute the task based on the schedule. The sufficiencyof resources for executing a task is determined by resource module 207 based on the requirements of the task, the current resources available to OS 213, and historical data associated with wearable device 201.

[0043] In some examples, wearable device 201 may output notifications via UIC 211 when a task is executed, or when a task is not executed due to insufficient resources. In some examples, the user may provide a user input to override resource module 207, causing resource module 207 to schedule and OS 213 to execute the task. In some examples, when the user overrides resource module 207, resource module 207 may adjust the resource cost associated with executing the task such that there are sufficient resources available to execute the task given the resource cost of the task.

[0044] In some implementations, wearable device 201 may receive a selection. The selection may be associated with wearable device 201 or mobile device 202. For instance, a user may select wearable device 201 or mobile device 202 via UIC 211. In response to receiving a selection associated with mobile device 202, wearable device 201 may determine a current location of wearable device 201 based on a location of mobile device 202. For example, location module 205 may request that OS 213 perform location scans by polling the location of mobile device 202. In response to receiving a selection associated with wearable device 201, wearable device 201 may determine a current location of wearable device 201 based on a global navigation satellite system location system of wearable device 201. For example, location module 205 may request that OS 213 control a GNSS receiver of wearable device 201 to determine the location of wearable device 201.

[0045] Wearable device 201 may determine its current location based on comparing signals received by wearable device 201 and mobile device 202. In some examples, wearable device 201 may receive a location of mobile device 202. For instance, mobile device 202 may transmit location information to wearable device 201. The location of mobile device 202 may be associated with one or more signal attributes, such as a received signal strength indicator value, a signal -to-noise ratio value, a bandwidth value, a latency value, or a packet loss value.

[0046] Wearable device 201 may compare one or more signal attributes of the location of mobile device 202 with one or more signal attribute of a location of wearable device 201. For instance, wearable device 201 may compare two packet loss values, one packet loss value associated with wearable device 201 and another packet loss value associated with mobile device 202. Based on the comparison, wearable device 201 may select the location of wearable device 201 or the location of mobile device 202 as a current location. In some examples, wearable device 201 may select the location of mobile device 202 as a currentlocation in response to the location of mobile device 202 being associated with a lower packet loss value than a packet loss value associated with the location of wearable device 201. In still some examples, wearable device 201 may select the location of wearable device 201 as a current location in response to the location of wearable device 201 being associated with a lower packet loss value than a packet loss value associated with the location of mobile device 202.

[0047] In some implementations, wearable device 201 may compare motion information with mobile device 202 to determine if wearable device 201 is within a threshold distance of mobile device 202. For instance, wearable device 201 may receive motion information of mobile device 202. The motion information may include, for example, a linear acceleration value or angular velocity value of mobile device 202. Additionally, wearable device 201 may determine motion information of wearable device 201 via an inertial measurement unit. The inertial measurement unit may use accelerometers, gyroscopes, or magnetometers to measure aspects of wearable device 201 such as acceleration, velocity, and orientation.

[0048] Wearable device 201 may select a location of mobile device 202 or wearable device 201 as a current location based on comparing the motion information of mobile device 202 with the motion information of wearable device 201. For instance, the motion information of mobile device 202 and the motion information of wearable device 201 may share substantially similar linear acceleration values. Because the motion information of both mobile device 202 and wearable device 201 share substantially similar linear acceleration values, wearable device 201 may determine that wearable device 201 is within a threshold distance of mobile device 202. Based on this determination, wearable device 201 may select a location of mobile device 202 as a current location of wearable device 201. In some examples, the motion information of mobile device 202 and the motion information of wearable device 201 may share substantially different linear acceleration values. Based on the substantially different linear acceleration values, wearable device 201 may determine that wearable device 201 is not within a threshold distance of mobile device 202 and may select a location of wearable device 201 as a current location.

[0049] FIG. 3 illustrates a particular example of using the system of FIGS. 1 and 2 to efficiently track the location of a wearable device in accordance with techniques of this disclosure. In the example shown in FIG. 3, a plurality of users are each wearing one of a plurality of wearable devices 301 A-N that track their location and provide them with navigation information as they participate in a triathlon. The wearable devices 301 A-N may be any of the wearable computing devices discussed elsewhere herein. The mobile devices312A-N may be any of the mobile devices discussed elsewhere herein. The network 310 may be any of the networks described herein. The satellites 320 include the satellites communicating with the GNSS location systems of wearable devices 301 A-N and mobile devices 312A-N, as described herein.

[0050] In the non-limiting example shown, the users of wearable devices 301 A-N may ride on bicycles that each contain one of the mobile devices 312 A-N. Each of the wearable devices 301A-N being worn by the users participating in the triathlon may be paired with a respective one of the mobile devices 312A-N that corresponds to the bicycle that user is riding. The wearable devices 312A-N may be communicatively connected to their corresponding mobile devices 312 A-N through one or more short range communication protocols, such as BLUETOOTH or BLE. Both the wearable devices 301 A-N and the mobile devices 312A-N may receive communications from satellites 320 via GNSS location system components of wearable devices 301A-N, as described herein. In some implementations, the wearable devices 301 A-N may additionally be connected to one another and / or a common server 330 via a long-range network 310. For example, both a user’s smart watch and smart bicycle may report location, speed, and other race data to a server controlled by the triathlon administrators.

[0051] The wearable devices 301 A-N of FIG. 3 may track and report race details to authorities administering the triathlon. In order to confirm that a user stayed within the geographic parameters of the race course, to provide navigation information to users who may not know where to go, and to confirm that users did not cheat for example by catching a car ride, the wearable devices 301 A-N may need to be constantly tracking the locations of the users. While this may be accomplished for some time with the wearable devices 301 A-N, often there is a worry that they will eventually run out of battery before certain users can finish the triathlon. In order to accomplish the necessary location tracking while conserving resources, the wearable devices 301 A-N may determine location based on location data received from corresponding connected mobile devices 312A-N, as described herein.

[0052] Wearable devices 302A-N may establish connections to mobile devices 312A-N over one or more short-range communication protocols upon the user entering a threshold distance of their bicycle. For example, the mobile devices 312A-N of the bicycles may automatically pair with their corresponding wearable devices 312 A-N over BLUETOOTH when the users are within a particular range of their bicycles, such as fifteen feet. In some examples, the mobile devices 312 A-N of the bicycles may additionally automatically pair with their corresponding wearable devices 312 A-N over BLE when the users are within a shorter rangeof their bicycles, such as five feet.

[0053] Wearable devices 301 A-N will initially determine corresponding user locations based on communicating with satellites 320 via their respective GNSS location systems. Once paired over the one or more short-range communication protocols, the wearable devices 301 A-N will also poll their connected mobile devices 312A-N for their locations, which the mobile devices 301 A-N will determine based on communicating with satellites 320 via their own respective GNSS location systems. Wearable devices 301 A-N will determine whether their respective connected mobile devices 312A-N are within a threshold distance. Wearable devices 301 A-N may determine whether mobile devices 312A-N are within a threshold distance based on one or more factors. For example, wearable devices 301 A-N may determine that their corresponding mobile devices 312A-N are within a threshold distance based on one or more connections over short-range communication protocol(s) and / or location data received by the respective devices from their GNSS location systems. For example, wearable devices 301 A-N may determine that corresponding mobile devices 312A- N are within a threshold distance based on them being paired via BLUETOOTH and BLE protocols. As another example, wearable devices 301A-N may determine that corresponding mobile devices 312A-N are within a threshold distance based on comparing the location data received from corresponding mobile devices 312 A-N to the location data received from the GNSS location systems of wearable devices 301A-N and determining a distance between the locations indicated by the respective instances of location data.

[0054] When the wearable devices 301 A-N determine that their corresponding mobile devices 312A-N are within a threshold distance, wearable devices 301 A-N may subsequently determine their locations based on location data received from their connected mobile devices 312A-N. This may allow wearable device 401 to conserve battery power over using their own internal GNSS location systems. Thus, wearable devices 301A-N may provide accurate location information to the fitness applications installed on wearable devices 301 A-N without running down the batteries of wearable devices 301 A-N before the users finish their triathlon.

[0055] FIG. 4 is a conceptual diagram that exemplifies a system wherein a wearable computing device employs one or more techniques from this disclosure to conserve system resources. Wearable device 401 of FIG. 4 is described below as an example of the wearable device illustrated in any of FIGS. 1-3. FIG. 4 illustrates only one particular example of wearable device 401, and many other examples of wearable device 401 may be used in other instances and may include a subset of the components included in example wearable device 401 or may include additional components not shown in FIG. 4.

[0056] As shown in the example of FIG. 4, wearable device 401 includes UIC 411, one or more processors 441, one or more input components 442, one or more output components 444, one or more communication units 446, one or more location units 448, and one or more storage components 450. Storage components 450 of wearable device 401 include OS 413, display module 403, location module 405, resource module 407, communications module 409, applications 417, location data repository 419, and resource history repository 421.

[0057] Communication channels 452 may interconnect each of the components 441, 411, 442, 444, 446, 448, 449 and / or 450 for inter-component communications (physically, communicatively, and / or operatively). In some examples, communication channels 452 may include a system bus, a network connection, an inter-process communication data structure, or any other method for communicating data.

[0058] One or more input components 442 of wearable device 401 may receive input. Examples of input are tactile, audio, and video input. Input components 442 of wearable device 401, in one example, includes a presence-sensitive display, touch-sensitive screen, mouse, keyboard, voice responsive system, video camera, microphone or any other type of device for detecting input from a human or machine.

[0059] One or more output components 444 of wearable device 401 may generate output. Examples of output are tactile, audio, and video output. Output components 444 of wearable device 401, in one example, includes a presence-sensitive display, sound card, video graphics adapter card, speaker, cathode ray tube (CRT) monitor, liquid crystal display (LCD), haptic motors, linear actuating devices, or any other type of device for generating output to a human or machine.

[0060] One or more communication units 446 of wearable device 401 may communicate with external devices via one or more wired and / or wireless networks by transmitting and / or receiving network signals on the one or more networks. Examples of communication units 446 include a network interface card (e.g., an Ethernet card), an optical transceiver, a radio frequency transceiver, a GNSS receiver, or any other type of device that may send and / or receive information. Other examples of communication units 446 may include short wave radios, cellular data radios, wireless network radios, as well as universal serial bus (USB) controllers.

[0061] One or more motion units 449 may provide data regarding the movement and orientation of wearable device 401 in three-dimensional space. Motion unit 449, also referred to as an inertial measurement unit, may include sensors such as accelerometers, gyroscopes,and magnetometers. Motion unit 449 may implement one or more of these sensors to measure a linear acceleration or angular velocity of wearable device 401.

[0062] UIC 411 of wearable device 401 may include one or more hardware components with input and / or output functionalities. For example, it may include a display component, functioning as a screen for presenting information. Additionally, the UIC 411 may include a presence-sensitive input component capable of detecting objects in the vicinity of the display component. UIC 411 may operate as both an input and output device for the wearable device 401.

[0063] One or more processors 441 may implement functionality and / or execute instructions within wearable device 401. For example, processors 441 on wearable device 401 may receive and execute instructions stored by storage components 450 that execute the functionality of modules 403-D and applications 417. The instructions executed by processors 441 may cause wearable device 401 to store information within storage components 450 during program execution. Examples of processors 441 include application processors, display controllers, sensor hubs, and any other hardware configured to function as a processing unit. Processors 441 may execute instructions of modules 403-D and applications 417 to perform various actions or functions of wearable device 401.

[0064] One or more storage components 450 within wearable device 401 may store information for processing during operation of wearable device 401 (e.g., wearable device 401 may store data accessed by modules 403-D and applications 417 during execution at wearable device 401). In some examples, storage components 450 may be configured for temporary memory, meaning that a primary purpose of storage components 450 is not longterm storage. Storage components 450 on wearable device 401 may be configured for shortterm storage of information as volatile memory and therefore not retain stored contents if powered off. Examples of volatile memories include random access memories (RAM), dynamic random access memories (DRAM), static random access memories (SRAM), and other forms of volatile memories known in the art.

[0065] Storage components 450, in some examples, also include one or more computer- readable storage media. Storage components 450 may be configured to store larger amounts of information than volatile memory. Storage components 450 may further be configured for long-term storage of information as non-volatile memory space and retain information after power on / off cycles. Examples of non-volatile memories include magnetic hard discs, optical discs, flash memories, or forms of electrically programmable memories (EPROM) or electrically erasable and programmable (EEPROM) memories. Storage components 450 maystore program instructions and / or information (e.g., data) associated with modules 403-D and applications 417. Modules 403-D and applications 417 may execute at processors 441 to perform functions similar to those of the modules and applications of one or more of the wearable device(s) described with respect to FIGS. 1-3.

[0066] Display module 403 of wearable device 401 may control the function of the input devices and / or output devices included in wearable device 401, such as UIC 411, input component s) 442, and / or output component(s) 444 using various technologies. In some examples, display module 403 may control an input device that includes a presence-sensitive input component, such as a resistive touchscreen, a surface acoustic wave touchscreen, a capacitive touchscreen, a projective capacitance touchscreen, a pressure sensitive screen, an acoustic pulse recognition touchscreen, or another presence-sensitive display technology. In some examples, display module 403 may control an input device using microphone technologies, infrared sensor technologies, or other input device technology for use in receiving user input. Display module 403 may function as an output (e.g., display) device using any one or more display components, such as a liquid crystal display (LCD), dot matrix display, light emitting diode (LED) display, organic light-emitting diode (OLED) display, e- ink, or similar monochrome or color display capable of outputting visible information to a user of wearable device 401. In some examples display module 403 may control an output device configured to present output to a user using any one or more display devices, speaker technologies, haptic feedback technologies, or other output device technology for use in outputting information to a user.

[0067] Location module 405 of wearable device 401 may monitor the location of the wearable device 401. Location module may control various computing components included in wearable device 401 that are configured to process and store location data received via one or more location components or communication components of the wearable device 401. For example, location module 405 may control location unit(s) 448 and location data repository 419 in order to obtain, store, and track over time location data of wearable device 401 according to one or more location determination protocols of location module 405, for use by OS 413 and / or applications 417 of wearable device 401 as described herein.

[0068] For example, in some implementations, location module 405 may perform constant or periodic monitoring of the location of the wearable device 401 in order to assist the user in tracking their fitness or workout goals, or to provide necessary location information to the operating system or various applications 417 installed on wearable device 401. In some implementations, location module 405 may determine the location of wearable device 401based on location data received from location unit(s) 448 and / or communication unit(s) 446. For example, location module 405 may determine the location of wearable device 401 based data received from one or more mobile devices via one or more direct link(s), location data received from satellites via the GNSS location system, or location data received from some other computing device over a network connection. Location module 405 may use one or more location monitoring protocols to determine the location. For example, location module 405 may determine that the location of a mobile device connected to wearable device 401 over BLUETOOTH corresponds to the location of wearable device 401 when location data received from the mobile device indicates a location within a threshold distance of location data obtained from the GNSS location unit(s) 448 of wearable device 401. In some examples, location module 405 may direct communications module 409 to use one or more communication unit(s) 446 to periodically request the location of a mobile device for as long as wearable device 401 and the mobile device are connected over one or more direct link(s) (e.g., connected over one or more short-range communication protocols).

[0069] Resource module 407 may perform functions associated with receiving, managing, and otherwise handling requests for OS 413 to execute tasks generated by applications 417. For example, resource module 407 may receive requests from applications 417 for OS 413 to output a notification, monitor for receipt of a communication message (e.g., text message, BLUETOOTH transmission, etc.), establish a BLUETOOTH connection with a nearby mobile device, determine a distance to a remote mobile device, request information from a nearby mobile device or a remote server, upload analytics, download content, perform operations related to media playback (e.g., music playback, video playback, etc.), generate a reminder (e.g., an alert) of a calendar event (meetings, appointments, etc.), update software, enable inter-component communications between two or more components of platforms, applications, and / or services executing at wearable device 401, etc.

[0070] Resource module 407 may schedule tasks by assigning resources, such as processors, network links, and expansion cards, to perform the tasks. Resource module 407 may be part of OS 413 and may decide which task executes at a certain point in time. For example, resource module 407 may have the ability to start the execution of a task, stop the execution of a task, and move a position of a task in a queue of tasks. Resource module 407 may enable or disable certain components of wearable device or protocols of modules 403-409 and / or OS 413 in order to allocate resources of wearable device 401. Resource module 407 may allow, store, defer, deny, and otherwise handle requests from applications for OS 413 to perform tasks in order to allocate resources of wearable device 401. Resource module 407 mayemploy a scheduling algorithm or machine learning model for distributing resources of wearable device 401 among tasks that simultaneously or asynchronously request the resources.

[0071] Resource module 407 of OS 413 may execute a task based on whether there are sufficient resources available to execute the task given the resource cost of the task. For example, resource module 407 may receive a request for OS 413 to execute a task associated with one of applications 417. Responsive to resource module 407 receiving the request, resource module 407 may determine a resource cost associated with executing the task by obtaining the resource cost for the task from resource history repository 421 and comparing with an amount of resources available for the task. Responsive to determining that the resource cost associated with executing the task is less than or equal to the amount of resources available for executing the task, resource module 407 may schedule the task to be executed at wearable device 401. OS 413 may then execute the task based on the schedule. Responsive to determining that the resource cost associated with executing the task is greater than the amount of resources available for executing the task, resource module 407 may schedule the task to execute at another time, modify the task to satisfy the amount of available resources, or find an alternate method of performing the task. For example, resource module 407 may enable or disable certain protocols used by one or more of modules 403-D to complete task(s) in response to determining the resource cost associated with executing the task is greater than the amount of resources available.

[0072] In some examples, resource module 407 may determine the amount of resources available for executing a task based on a respective amount of resources available for the application(s) 417 associated with the task and an amount of resources previously used by the application(s) 417. For instance, resource module 407 may monitor resource usage of all application(s) 417, and / or component(s) 411, 442, 444, 446, 448, 449, 450 and store this resource usage data in resource history repository. Resource module 407 may then determine a total amount of resources available for executing tasks based on the data in the resource history repository 421.

[0073] Resource module 407 may determine a state of wearable device 401, such as a power state, a charging state (i.e., whether wearable device 401 is charging), a charge state (i.e., a battery charge level), etc. The power states of wearable device 401 may vary, with the fullpower state representing the highest-performance mode, allowing wearable device 401 to function at its best but consuming more power in the process. On the other hand, there are low-power states, designed for scenarios where conserving energy is a priority. Examples oflow-power states include a battery-saving mode (also known as low power mode), standby mode, sleep mode, and the completely powered-off state. Each of these low-power states corresponds to a trade-off between functionality and power consumption, enabling users to balance performance with energy conservation based on their current needs.

[0074] As the battery charge level of wearable device 401 decreases, resource module 407 may adjust the amount of resources available for each of the applications 417 to prevent premature depletion of the battery. In some examples, resource module 407 may adjust a base amount of resources available to modules 403 -D, application(s) 417, and / or component s) 441, 402, 442, 444, 446, 448, 449, 450 by modifying the power state. For example, resource module 407 may cause wearable device 401 to exit the full-power state and enter a low- power state. As another example, resource module 407 may respond to decreasing battery power, or expected decreases in battery power based on data in resource history repository 421, by enabling or disabling certain protocols used by modules 403-D, application(s) 417, and / or component(s) 441, 402, 442, 444, 446, 448, 449, 450 to perform tasks. For example, resource module 407 may disable a GNSS location scan protocol of location module 405 and enable a tethered device location scan protocol in order to allow OS 413 to obtain and provide location data of wearable device 401 to application(s) 417 on a more resource cost efficient basis.

[0075] In a default setting, communications module 409 of wearable device 401 may operate with all communication components 402, 442, 444, and / or 446 activated (e.g., turned on and consuming electrical power). In accordance with techniques of the disclosure, resource module 407 may automatically deactivate and / or activate various communication protocols and individual communication components 402, 442, 444, and / or 446 of wearable device 401, which may preserve stored battery energy. Resource module 407 may determine which communication protocols or components 402, 442, 444, and / or 446 to deactivate or activate and use based on expected resource expenditures.

[0076] FIG. 5 is a flowchart illustrating an example operation of a wearable computing device in accordance with techniques of this disclosure. Although primarily described with respect to wearable device 401 of FIG. 4, it should be understood that the techniques illustrated by FIG. 5 may be applied by any of the wearable computing devices disclosed herein. In the example of FIG. 5, communications module 409 of wearable device 401 receives a location of a mobile device connected to wearable device 401 using one or more short-range communication protocols and via one or more communication unit(s) 446 (502). The mobile device may be a mobile device as described with respect to any of theimplementations described herein. The mobile device may be connected to the device over direct link(s) via one or more short-range communication protocols, as described herein. The mobile device may send location data it generates based on its own GNSS location system to wearable device 401 over the direct link(s). For example, wearable device 401 and the mobile device may be paired over BLUETOOTH, and the mobile device may send wearable device 401 the mobile device’s most recently determined GPS coordinates. In some implementations, in response to receiving the location request, resource module 407 may cause communications module 409 to establish the direct link(s) and / or to send a location data request to the connected mobile device.

[0077] Location module 405 determines the location of wearable device 401 based on data received from the GNSS location system (e.g., included in location unit(s) 448) (504). For example, location module 405 may cause a GNSS receiver of wearable device 401 to detect signals transmitted by multiple satellites in its line of sight, calculate the distance from wearable device 401 to each satellite by measuring the time it takes for signals to travel (trilateration), and then combine the information from multiple satellites to determine the precise location of wearable device 401. The determined location data may include the precise latitude, longitude, and altitude of wearable device 401.

[0078] Location module 405 determines whether or not the connected mobile device is within a threshold distance of wearable device 401 (506). Location module 405 may determine whether the connected mobile device is within a threshold distance of wearable device 401 using various techniques. For example, location module 405 may determine that the connected mobile device is within a threshold distance of wearable device based on the GNSS location information received from the mobile device indicating a position within a threshold distance of a position indicated by the GNSS location information determined for wearable device 401. In some examples, location module 405 may further require one or more additional conditions are met, such as requiring a connection over a particular short- range communication protocol that indicates the two devices are nearby one another (e.g., BLE), or requiring that location data obtained through multiple iterations matches over a particular contiguous time period.

[0079] If location module 405 determines that the mobile device is within a threshold distance of wearable device 401 (“YES” branch of 506), wearable device 401 may determine a subsequent location of wearable device 401 based on a subsequent location of the mobile device (508). For example, in response to determining that the mobile device is within the threshold distance of wearable device 401, resource module 407 may power off locationunit(s) 448 of the GNSS location system of wearable device 401 and / or disable a GNSS location scan protocol of location module 405, and enable a tethered device location scan protocol wherein location module 405 determines location data of wearable device 401 based on location data received from the connected mobile device. Thus, resource module 407 may conserve the extra battery power that using the GNSS location system will require while still providing accurate location information to OS 413 and / or applications 417 for executing various tasks.

[0080] If, however, location module 405 determines that the mobile device is not within a threshold distance of wearable device 401 (“NO” branch of 506), then at 518 wearable device 401 may determine the subsequent location of wearable device 401 based on the GNSS location system of wearable device 401 (510). Thus, for example, even though the GNSS location scan protocols require greater battery power than tethered device location scan protocols, resource module 407 will enable the GNSS location scan protocols, and disable the tethered device location scan protocols (if previously enabled).

[0081] This disclosure includes the following examples.

[0082] Example 1 : A method includes receiving, by a processor of a wearable device and from a mobile device communicatively coupled to the wearable device, a location of the mobile device; determining, by the processor of the wearable device and based on a global satellite navigation system of the wearable device, a location of the wearable device; determining whether the location of the mobile device is within a threshold distance of the location of the wearable device; responsive to determining that the location of the mobile device is within the threshold distance of the location of the wearable device, determining, based on a subsequent location of the mobile device, a subsequent location of the wearable device; and responsive to determining that the location of the mobile device is not within a threshold distance of the location of the wearable device, determining the subsequent location of the wearable device based on the global satellite navigation system of the wearable device.

[0083] Example 2: The method of example 1, wherein determining whether the location of the mobile device is within a threshold distance of the location of the wearable device includes determining whether the wearable device and the mobile device are communicatively coupled using a short range communication protocol.

[0084] Example 3 : The method of any of examples 1 and 2, wherein determining whether the location of the mobile device is within a threshold distance of the location of the wearable device is performed in response to the wearable device receiving the location of the mobile device from the mobile device via a short range communication protocol.

[0085] Example 4: The method of any of examples 1-3, further comprising powering off the global satellite navigation system of the wearable device in response to determining that the location of the mobile device is within the threshold distance of the location of the wearable device, wherein determining the subsequent location of the wearable device based on the subsequent location of the mobile device comprises: periodically powering on the global satellite navigation system of the wearable device, and determining that a current location indicated by the global satellite navigation system while powered on corresponds to the subsequent location of the mobile device.

[0086] Example 5: The method of example 4, wherein it is determined that the location of the mobile device is not within a threshold distance of the location of the wearable device when the current location indicated by the global satellite navigation system of the wearable device no longer corresponds to the subsequent location of the mobile device.

[0087] Example 6: The method of any of examples 1-5, wherein determining that the location of the mobile device is not within a threshold distance of the location of the wearable device includes: determining whether the current location indicated by the global satellite navigation system of the wearable device corresponds to the subsequent location of the mobile device based on: a connection or lack thereof between the wearable device and the mobile device via a first short-range communication protocol, and a connection or lack thereof between the wearable device and the mobile device via a second short-range communication protocol.

[0088] Example 7: The method of any of examples 1-6, further comprising receiving, by the processor and from the mobile device, an initial location of the mobile device; determining, by the processor and based on the global navigation satellite system location system of the wearable device, an initial location of the wearable device; and selecting one of the location of the mobile device and the location of the wearable device as a current location of the wearable device by at least comparing a signal attribute associated with the initial location of the wearable device with a signal attribute associated with the initial location of the mobile device.

[0089] Example 8: The method of any of examples 1-7, wherein determining whether the location of the mobile device is within a threshold distance of the location of the wearable device includes: receiving, by the processor and from the mobile device, motion information of the mobile device; determining, by the processor and based on an inertial measurement unit of the wearable device, motion information of the wearable device; and selecting one of the location of the mobile device and the location of the wearable device as a current locationof the wearable device by at least comparing the motion information of the mobile device with the motion information of the wearable device.

[0090] Example 9: The method of any of examples 1-8, further comprising receiving, by the processor, a selection associated with the wearable device or the mobile device; responsive to the selection being associated with the mobile device, determining, based on the location of the mobile device, a current location of the wearable device; and responsive to the selection being associated with the wearable device, determining the current location of the wearable device based on the global navigation satellite system location system of the wearable device.

[0091] Example 10: A wearable device includes one or more computer processors; a memory including instructions that when executed by the one or more computer processors cause the one or more computer processors to perform operations including: receiving, from a mobile device communicatively coupled to the wearable device, a location of the mobile device; determining, based on a global navigation satellite system (GNSS) location system of the wearable device, a location of the wearable device; determining whether the location of the mobile device is within a threshold distance of the location of the wearable device; responsive to determining that the location of the mobile device is within the threshold distance of the location of the wearable device, determining, based on a subsequent location of the mobile device, a subsequent location of the wearable device; and responsive to determining that the location of the mobile device is not within a threshold distance of the location of the wearable device, determining the subsequent location of the wearable device based on the GNSS location system of the wearable device.

[0092] Example 11 : The wearable device of example 10, wherein determining whether the location of the mobile device is within a threshold distance of the location of the wearable device includes determining whether the wearable device and the mobile device are communicatively coupled using a short range communication protocol.

[0093] Example 12: The wearable device of any of examples 10 or 11, wherein determining whether the location of the mobile device is within a threshold distance of the location of the wearable device is performed in response to the wearable device receiving the location of the mobile device from the mobile device via a short range communication protocol.

[0094] Example 13: The wearable device of any of examples 10-12, the operations further including powering off the GNSS location system of the wearable device in response to determining that the location of the mobile device is within the threshold distance of the location of the wearable device, wherein determining the subsequent location of the wearable device based on the subsequent location of the mobile device comprises: periodicallypowering on the GNSS location system of the wearable device, and determining that a current location indicated by the GNSS location system while powered on corresponds to the subsequent location of the mobile device.

[0095] Example 14: The wearable device of example 13, wherein it is determined that the location of the mobile device is not within a threshold distance of the location of the wearable device when the current location indicated by the GNSS location system of the wearable device no longer corresponds to the subsequent location of the mobile device.

[0096] Example 15: The wearable device of any of examples 10-14, wherein determining that the location of the mobile device is not within a threshold distance of the location of the wearable device includes: determining whether the current location indicated by the GNSS location system of the wearable device corresponds to the subsequent location of the mobile device based on: a connection or lack thereof between the wearable device and the mobile device via a first short-range communication protocol, and a connection or lack thereof between the wearable device and the mobile device via a second short-range communication protocol.

[0097] Example 16: The wearable device of any of examples 10-15, the operations further including receiving, from the mobile device, an initial location of the mobile device; determining and based on the global navigation satellite system location system of the wearable device, an initial location of the wearable device; and selecting one of the location of the mobile device and the location of the wearable device as a current location of the wearable device by at least comparing a signal attribute associated with the initial location of the wearable device with a signal attribute associated with the initial location of the mobile device.

[0098] Example 17: The wearable device of any of examples 10-16, wherein determining whether the location of the mobile device is within a threshold distance of the location of the wearable device includes: receiving, from the mobile device, motion information of the mobile device; determining, based on an inertial measurement unit of the wearable device, motion information of the wearable device; and selecting one of the location of the mobile device and the location of the wearable device as a current location of the wearable device by at least comparing the motion information of the mobile device with the motion information of the wearable device.

[0099] Example 18: The wearable device of any of examples 10-17, the operations further including receiving a selection associated with the wearable device or the mobile device; responsive to the selection being associated with the mobile device, determining, based onthe location of the mobile device, a current location of the wearable device; and responsive to the selection being associated with the wearable device, determining the current location of the wearable device based on the global navigation satellite system location system of the wearable device.

[0100] Example 19: A non-transitory computer-readable medium containing computer executable instructions that, when executed by a processor, cause the processor to perform operations including: receiving, from a mobile device communicatively coupled to a wearable device, a location of the mobile device; determining, based on a global navigation satellite system (GNSS) location system of the wearable device, a location of the wearable device; determining whether the location of the mobile device is within a threshold distance of the location of the wearable device; responsive to determining that the location of the mobile device is within the threshold distance of the location of the wearable device, determining, based on a subsequent location of the mobile device, a subsequent location of the wearable device; and responsive to determining that the location of the mobile device is not within a threshold distance of the location of the wearable device, determining the subsequent location of the wearable device based on the GNSS location system of the wearable device.

[0101] Example 20: The non-transitory computer-readable medium of example 19, wherein determining whether the location of the mobile device is within a threshold distance of the location of the wearable device includes determining whether the wearable device and the mobile device are communicatively coupled using a short range communication protocol.

[0102] Example 21 : The non-transitory computer-readable medium of any of examples 20 or 21, wherein determining whether the location of the mobile device is within a threshold distance of the location of the wearable device is performed in response to the wearable device receiving the location of the mobile device from the mobile device via a short range communication protocol.

[0103] Example 22: The non-transitory computer-readable medium of any of examples 19- 21, the operations further comprising: powering off the GNSS location system of the wearable device in response to determining that the location of the mobile device is within the threshold distance of the location of the wearable device, wherein determining the subsequent location of the wearable device based on the subsequent location of the mobile device comprises: periodically powering on the GNSS location system of the wearable device, and determining that a current location indicated by the GNSS location system while powered on corresponds to the subsequent location of the mobile device.

[0104] Example 23: The non-transitory computer-readable medium of any of examples 19- 22, wherein it is determined that the location of the mobile device is not within a threshold distance of the location of the wearable device when the current location indicated by the GNSS location system of the wearable device no longer corresponds to the subsequent location of the mobile device.

[0105] Example 24: The non-transitory computer-readable medium of example 23, wherein determining that the location of the mobile device is not within a threshold distance of the location of the wearable device includes: determining whether the current location indicated by the GNSS location system of the wearable device corresponds to the subsequent location of the mobile device based on: a connection or lack thereof between the wearable device and the mobile device via a first short-range communication protocol, and a connection or lack thereof between the wearable device and the mobile device via a second short-range communication protocol.

[0106] Example 25: The non-transitory computer-readable medium of any of examples 19-24, the operations further comprising: receiving, from the mobile device, an initial location of the mobile device; determining, based on the global navigation satellite system location system of the wearable device, an initial location of the wearable device; and selecting one of the location of the mobile device and the location of the wearable device as a current location of the wearable device by at least comparing a signal attribute associated with the initial location of the wearable device with a signal attribute associated with the initial location of the mobile device.

[0107] Example 26: The non-transitory computer-readable medium of any of examples 19-25, wherein determining whether the location of the mobile device is within a threshold distance of the location of the wearable device includes: receiving, from the mobile device, motion information of the mobile device; determining, based on an inertial measurement unit of the wearable device, motion information of the wearable device; and selecting one of the location of the mobile device and the location of the wearable device as a current location of the wearable device by at least comparing the motion information of the mobile device with the motion information of the wearable device.

[0108] Example 27: The non-transitory computer-readable medium of any of examples 19-26, the operations further comprising: receiving a selection associated with the wearable device or the mobile device; responsive to the selection being associated with the mobile device, determining, based on the location of the mobile device, a current location of the wearable device; and responsive to the selection being associated with the wearable device,determining the current location of the wearable device based on the global navigation satellite system location system of the wearable device.

[0109] Example 28: A computing system comprising: means for receiving, from a mobile device communicatively coupled to a wearable device, a location of the mobile device; means for determining, based on a global navigation satellite system (GNSS) location system of the wearable device, a location of the wearable device; means for determining whether the location of the mobile device is within a threshold distance of the location of the wearable device; means for determining, responsive to determining that the location of the mobile device is within the threshold distance of the location of the wearable device and based on a subsequent location of the mobile device, a subsequent location of the wearable device; and means for determining, responsive to determining that the location of the mobile device is not within a threshold distance of the location of the wearable device, the subsequent location of the wearable device based on the GNSS location system of the wearable device.

[0110] Example 29: The computing system of example 28, wherein means for determining whether the location of the mobile device is within a threshold distance of the location of the wearable device include means for determining whether the wearable device and the mobile device are communicatively coupled using a short range communication protocol.

[0111] Example 30: The computing system of any of examples 28 or 29, wherein determining whether the location of the mobile device is within a threshold distance of the location of the wearable device is performed in response to the wearable device receiving the location of the mobile device from the mobile device via a short range communication protocol.

[0112] Example 31 : The computing system of any of examples 28-30, further comprising: means for powering off the GNSS location system of the wearable device in response to determining that the location of the mobile device is within the threshold distance of the location of the wearable device, wherein determining the subsequent location of the wearable device based on the subsequent location of the mobile device comprises: periodically powering on the GNSS location system of the wearable device, and determining that a current location indicated by the GNSS location system while powered on corresponds to the subsequent location of the mobile device.

[0113] Example 32: The computing system of any of examples 28-31, wherein it is determined that the location of the mobile device is not within a threshold distance of the location of the wearable device when the current location indicated by the GNSS locationsystem of the wearable device no longer corresponds to the subsequent location of the mobile device.

[0114] Example 33: The computing system of example 32, wherein determining that the location of the mobile device is not within a threshold distance of the location of the wearable device includes: determining whether the current location indicated by the GNSS location system of the wearable device corresponds to the subsequent location of the mobile device based on: a connection or lack thereof between the wearable device and the mobile device via a first short-range communication protocol, and a connection or lack thereof between the wearable device and the mobile device via a second short-range communication protocol.

[0115] Example 34: The computing system of any of examples 28-33, further comprising: means for receiving, from the mobile device, an initial location of the mobile device; means for determining, based on the global navigation satellite system location system of the wearable device, an initial location of the wearable device; and means for selecting one of the location of the mobile device and the location of the wearable device as a current location of the wearable device by at least comparing a signal attribute associated with the initial location of the wearable device with a signal attribute associated with the initial location of the mobile device.

[0116] Example 35: The computing system of any of examples 28-34, wherein determining whether the location of the mobile device is within a threshold distance of the location of the wearable device includes: receiving, from the mobile device, motion information of the mobile device; determining, based on an inertial measurement unit of the wearable device, motion information of the wearable device; and selecting one of the location of the mobile device and the location of the wearable device as a current location of the wearable device by at least comparing the motion information of the mobile device with the motion information of the wearable device.

[0117] Example 36: The computing system of any of examples 28-35, further comprising: means for receiving a selection associated with the wearable device or the mobile device; means for determining, responsive to the selection being associated with the mobile device and based on the location of the mobile device, a current location of the wearable device; and means for determining, responsive to the selection being associated with the wearable device, the current location of the wearable device based on the global navigation satellite system location system of the wearable device.

[0118] Example 37: A computing system comprising means for performing any combination of the methods of examples 1-9.

[0119] Example 38. A non-transitory computer-readable medium containing computer executable instructions that, when executed by a processor, cause the processor to perform any combination of the methods of examples 1-9.

[0120] Example 39: A computer-program product comprising instructions for performing any combination of the methods of examples 1-9.

[0121] By way of example, and not limitation, such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage, or other magnetic storage devices, flash memory, or any other storage medium that may be used to store desired program code in the form of instructions or data structures and that may be accessed by a computer. Also, any connection is properly termed a computer- readable medium. For example, if instructions are transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. It should be understood, however, that computer-readable storage mediums and media and data storage media do not include connections, carrier waves, signals, or other transient media, but are instead directed to nontransient, tangible storage media. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and Blu-ray disc, where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable medium.

[0122] Instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuitry. Accordingly, the term “processor,” as used herein may refer to any of the foregoing structure or any other structure suitable for implementation of the techniques described herein. In addition, in some aspects, the functionality described herein may be provided within dedicated hardware and / or software modules. Also, the techniques could be fully implemented in one or more circuits or logic elements.

[0123] The techniques of this disclosure may be implemented in a wide variety of devices or apparatuses, including a wireless handset, an integrated circuit (IC) or a set of ICs (e.g., a chip set). Various components, modules, or units are described in this disclosure to emphasize functional aspects of devices configured to perform the disclosed techniques, butdo not necessarily require realization by different hardware units. Rather, as described above, various units may be combined in a hardware unit or provided by a collection of interoperative hardware units, including one or more processors as described above, in conjunction with suitable software and / or firmware.

[0124] Various examples have been described. These and other examples are within the scope of the following claims.

Claims

WHAT IS CLAIMED IS:

1. A method, comprising: receiving, by a processor of a wearable device and from a mobile device communicatively coupled to the wearable device, a location of the mobile device; determining, by the processor of the wearable device and based on a global navigation satellite system location system of the wearable device, a location of the wearable device; determining whether the location of the mobile device is within a threshold distance of the location of the wearable device; responsive to determining that the location of the mobile device is within the threshold distance of the location of the wearable device, determining, based on a subsequent location of the mobile device, a subsequent location of the wearable device; and responsive to determining that the location of the mobile device is not within a threshold distance of the location of the wearable device, determining the subsequent location of the wearable device based on the global navigation satellite system location system of the wearable device.

2. The method of claim 1, wherein determining whether the location of the mobile device is within a threshold distance of the location of the wearable device includes determining whether the wearable device and the mobile device are communicatively coupled using a short-range communication protocol.

3. The method of claim 1, wherein determining whether the location of the mobile device is within a threshold distance of the location of the wearable device is performed in response to the wearable device receiving the location of the mobile device from the mobile device via a short-range communication protocol.

4. The method of claim 1, further comprising: powering off the global navigation satellite system location system of the wearable device in response to determining that the location of the mobile device is within the threshold distance of the location of the wearable device, wherein determining the subsequent location of the wearable device based on the subsequent location of the mobile device comprises:periodically powering on the global navigation satellite system location system of the wearable device, and determining that a current location indicated by the global navigation satellite system location system while powered on corresponds to the subsequent location of the mobile device.

5. The method of claim 4, wherein it is determined that the location of the mobile device is not within a threshold distance of the location of the wearable device when the current location indicated by the global navigation satellite system location system of the wearable device no longer corresponds to the subsequent location of the mobile device.

6. The method of claim 5, wherein determining that the location of the mobile device is not within a threshold distance of the location of the wearable device includes: determining whether the current location indicated by the global navigation satellite system location system of the wearable device corresponds to the subsequent location of the mobile device based on: a connection or lack thereof between the wearable device and the mobile device via a first short-range communication protocol, and a connection or lack thereof between the wearable device and the mobile device via a second short-range communication protocol.

7. The method of claim 1, further comprising: receiving, by the processor and from the mobile device, an initial location of the mobile device; determining, by the processor and based on the global navigation satellite system location system of the wearable device, an initial location of the wearable device; and selecting one of the location of the mobile device and the location of the wearable device as a current location of the wearable device by at least comparing a signal attribute associated with the initial location of the wearable device with a signal attribute associated with the initial location of the mobile device.

8. The method of claim 1, wherein determining whether the location of the mobile device is within a threshold distance of the location of the wearable device includes:receiving, by the processor and from the mobile device, motion information of the mobile device; determining, by the processor and based on an inertial measurement unit of the wearable device, motion information of the wearable device; and selecting one of the location of the mobile device and the location of the wearable device as a current location of the wearable device by at least comparing the motion information of the mobile device with the motion information of the wearable device.

9. The method of claim 1, further comprising: receiving, by the processor, a selection associated with the wearable device or the mobile device; responsive to the selection being associated with the mobile device, determining, based on the location of the mobile device, a current location of the wearable device; and responsive to the selection being associated with the wearable device, determining the current location of the wearable device based on the global navigation satellite system location system of the wearable device.

10. A wearable device, comprising: one or more computer processors; and a memory including instructions that when executed by the one or more computer processors cause the one or more computer processors to perform operations including: receiving, from a mobile device communicatively coupled to the wearable device, a location of the mobile device; determining, based on a global navigation satellite system location system of the wearable device, a location of the wearable device; determining whether the location of the mobile device is within a threshold distance of the location of the wearable device; responsive to determining that the location of the mobile device is within the threshold distance of the location of the wearable device, determining, based on a subsequent location of the mobile device, a subsequent location of the wearable device; and responsive to determining that the location of the mobile device is not within a threshold distance of the location of the wearable device, determining the subsequent location of the wearable device based on the global navigation satellite system location system of the wearable device.

11. The wearable device of claim 10, wherein determining whether the location of the mobile device is within a threshold distance of the location of the wearable device includes determining whether the wearable device and the mobile device are communicatively coupled using a short-range communication protocol.

12. The wearable device of claim 10, wherein determining whether the location of the mobile device is within a threshold distance of the location of the wearable device is performed in response to the wearable device receiving the location of the mobile device from the mobile device via a short-range communication protocol.

13. A computing system comprising means for performing any combination of the methods of claims 1-9.

14. A non-transitory computer-readable medium containing computer executable instructions that, when executed by a processor, cause the processor to perform any combination of the methods of claims 1-9.

15. A computer-program product comprising instructions for performing any combination of the methods of claims 1-9.

Citation Information

Patent Citations

  • Wearable apparatus and controlling method thereof

    EP3062566A1

  • Pairing and attestation of proximal devices

    US9832601B1