Proactively recording locations for backtracking
The device collects and classifies historical locations to assist users in backtracking, using intermittent GNSS fixes in an extended mode to conserve battery life and provide necessary location information, addressing the challenge of being lost without network access.
Patent Information
- Application Number
- CN202380038918.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-04-11
- Filing Date
- 2023-04-14
- Publication Date
- 2024-12-17
AI Technical Summary
Hikers, pedestrians, and cyclists often find themselves lost without prior route information and network access, making it difficult to locate their way back or receive emergency services.
A device that detects specific conditions to trigger the collection of historical locations, classifies them for backtracking, and provides intermittent location fixes in an extended mode to conserve battery life, using GNSS and machine learning to assist in retracing steps.
Enables users to backtrack their route efficiently while conserving battery life by providing relevant historical location information only when needed, reducing resource consumption and enhancing safety.
Smart Images

Figure CN119156519A_ABST
Abstract
Description
[0001] Related patent applications
[0002] This application claims the benefit of priority to U.S. Patent Application No. 18 / 299,011, filed on April 11, 2023, entitled “Proactive Recording of Locations for Backtracking,” and U.S. Provisional Application No. 63 / 339,863, filed on May 9, 2022, entitled “Proactive Recording of Locations for Backtracking,” each of which is incorporated herein by reference. Technical Field
[0003]
[0013] Embodiments described herein relate to providing location services.
[0004] Background Information
[0005] Hikers, pedestrians, and cyclists typically do not plan for getting lost, and therefore, prior route information may not be readily available on the user's device when the user needs it and / or network access is unavailable such that location information cannot be obtained. Even if the user has access to map data, during a hike, if the user has ventured off a familiar path, the user may not know where they are relative to the path in the map data. Therefore, there is a need for technology that helps users find their way back to a familiar location or provides emergency services with a way to locate the user. BRIEF DESCRIPTION OF THE DRAWINGS
[0006] Figure 1 is a block diagram of a network operating environment for a mobile device according to an embodiment.
[0007] Figure 2 is a block diagram for a location service according to an embodiment.
[0008] Figure 3 is a flow chart illustrating an extended mode method according to an embodiment.
[0009] Figure 4 is a flow chart illustrating a location services method according to an embodiment.
[0010] Figure 5 A block diagram illustrating a look-back window according to an embodiment is illustrated.
[0011] Figure 6 is a flow diagram for a location service according to an embodiment.
[0012] Figure 7A block diagram illustrating a look-back window according to an embodiment is illustrated.
[0013] Figure 8 Depicted is a user interface for a location service according to an embodiment.
[0014] Fig. 9 Depicted is a user interface for a location service according to an embodiment.
[0015] Fig.10 is a block diagram illustrating an exemplary API architecture that may be used in some implementations.
[0016] Fig.11 is a block diagram of a device architecture for a mobile or embedded device according to an embodiment.
[0017] Fig.12 is a block diagram of a computing system according to an embodiment. Summary of the invention
[0018] Methods, non-transitory machine-readable media, and systems for providing historical location information are described. In one embodiment, a device detects one or more conditions in user context data that trigger the collection of a set of historical locations for a look-back window,
[0019] The device receives at least one historical location from a set of historical locations of a review window, the device classifies the at least one historical location as a candidate location for a backtracking route based on one or more features, and the device determines to provide at least one historical location as part of the review window based on the classification. In one embodiment, the one or more conditions are at least one of the following: a classification of in-transit motion, a threshold time period without network access, a classification of a sparse environment, or a threshold distance from a frequently visited place. In another embodiment, the device receives a request for a review window from an application, and in response to the request, classifies the historical locations in a set of historical locations in the review window starting from the last classified historical location in the group to locate the nearest candidate historical location to start the backtracking route, and truncates the historical locations in the set of historical locations before the nearest candidate location.
[0020] In one embodiment, the device deletes the truncated historical location from the electronic device. In another embodiment, the application has the right to request a look back window.
[0021] Various embodiments may provide for analyzing user context data to determine a device that satisfies a set of conditions for actively obtaining positioning data in an extended mode, wherein the extended mode includes duty cycle location information requests to obtain intermittent position fixes. In one embodiment, the one or more characteristics include the duration of the look-back window, the distance from a frequent or trusted place, the timing of obtaining historical positioning information before and after a motor vehicle or electric vehicle enters, a structural density classification, an access point density, a motion classification, a transportation mode classification, or a user activity. DETAILED DESCRIPTION
[0022] Embodiment provided herein describes obtaining location information from a global navigation satellite system (GNSS) such as a global positioning system (GPS) when satisfying one or more backtracking conditions.One or more backtracking conditions are such a group of conditions: it allows to infer that the user is on an unfamiliar route, in the wild, in exercise time, cannot recharge its device in an extended time period, and / or is carrying out any other activity that may need to trace back the footprints walked on the route.Based on a group of backtracking conditions observed, make a user may need historical location information to be able to trace back its footprints with the backtracking route and request the electronic device to actively obtain the prediction of historical location information.The backtracking route can be a group of historical locations obtained on the review time window that allows the user to trace back its footprints.The review window is a group of historical locations that may be needed in the instant time period, so as to trace back its footprints while protecting the privacy of the user, from the influence of the malicious actor who seeks the content beyond the recent backtracking route.In some embodiments, the review window of the position returned at the time of the request (for example, truncation, pruning, etc.) is adjusted to provide only the location information relevant to the immediate needs of the backtracking route.
[0023] Embodiments described herein provide a backtracking classifier that classifies the obtained historical locations as candidate locations or non-candidate locations in a backtracking route of a user of the electronic device upon request of the electronic device. In one embodiment, the historical locations are classified to find the nearest historical locations from which the backtracking route may need to be started. The historical locations designated as part of the backtracking route can be provided to the location service application upon request to help the user retrace his or her steps when he or she may be lost and / or request help in an emergency.
[0024] Because the non-stop or continuous collection of positioning information can exhaust resources (e.g., battery, processor usage, etc.) when the user cannot recharge his device (such as when in the wild or lost), the electronic device can obtain location information in a power-saving extended mode when one or more backtracking conditions are met. The mode change can be a downgrade from a higher power state with more accurate location monitoring (e.g., non-extended mode) to a low power state with coarse location monitoring (e.g., extended mode) to extend the life of the battery. Some embodiments provided herein describe a power saving mode for a device capable of receiving information from a global navigation satellite system (GNSS) such as a global positioning system (GPS) to execute a location service application. The location service application may repeatedly request positioning information (e.g., GPS data) within a certain time period to provide a trajectory of the device and / or the distance the device has traveled during the time period. In some embodiments, an extended power saving mode (extended mode) method is described to extend the battery life of a device (e.g., a smart watch, a footprint tracking device, a location service device, etc.) while executing a location service application and / or collecting positioning information of a location service application during an extended time period when the user may not be able to recharge his device. Battery life is the length of time a device can continue to execute instructions before the device battery needs to be recharged. For example, a location service application that receives a request to record the location of a device for a user who is hiking, running, participating in a marathon, camping trip, and / or any other activity may need to record positioning information using GNSS for an extended period of time without using a method for recharging the battery, and may need to change the functionality of the device to extend the life of the battery. In another example, positioning information may be collected to be able to provide positioning information when the user is lost or in an emergency situation, and location information that can be provided to the user and / or the user's assistance provider is needed after an extended period of time when the user is unable to recharge the device. In non-extended mode, positioning information is continuously obtained at defined time intervals (e.g., every second), which may drain the battery if the positioning information is collected for a period of time that exceeds the available battery life of the device before the device must be recharged.
[0025] In one embodiment, the extended mode provides a duty cycle GNSS request for positioning information. The duty cycle is the proportion of the system being active over a defined period of time. In the extended mode, the collection of positioning information may be requested once every N minute period, wherein the position fix is received intermittently. The intermittently received position fix may be requested and received at any time within the period, so that the position fix is received at irregular time intervals. For example, the intermittently received position fix is received at different times within the N minute period, and / or the position fix is continuously requested and received for different durations during the duty cycle period. The intermittent reception of the position fix allows the application processor (AP) and / or the radio processor (e.g., GPS processor) to sleep between requests and / or process requests from other applications. Some embodiments may shut down all other functions of the device in the extended mode to allow the collection of positioning information, health information, location service applications, and / or any other limited group of applications.
[0026] In some embodiments, a user context (e.g., a set of conditions) may determine which mode (e.g., extended mode, non-extended mode) has corresponding positioning technologies and resources for an electronic device for obtaining positioning information. User data may be analyzed to determine whether a user context exists to trigger a change in a corresponding mode for determining positioning information executed on an electronic device. Alternatively, the user may also explicitly select an extended mode via a user interface of the device.
[0027] Figure 1 1 is a block diagram of a network operating environment 100 for a mobile device according to an embodiment. The network operating environment 100 includes an electronic device such as a mobile device 102. The mobile device 102 can be any electronic device capable of communicating via a wireless network and / or wireless accessory devices. Some examples of mobile devices 102 include, but are not limited to, the following: a smart phone, a tablet computer, a notebook computer, a wearable device (e.g., a smart watch or other wearable computing accessory), a mobile media player, a personal digital assistant, Locator tags, headphones, head mounted displays, health equipment, speakers, and other similar devices. In one embodiment, the accessory device can be paired with the mobile device 102. For example, the accessory device can be an Apple Equipment for fitness equipment, transportation, bicycles, scooters, smart TVs, Homepods, auto assist devices, home security systems, and / or any other mobile accessory equipment.
[0028] Each of the mobile devices 102 may optionally include a user interface, such as the user interface 104 of the mobile device 102. In other embodiments, the mobile device may not have a user interface. The mobile device 102 may be a third-party device that utilizes an application programming interface to access the device locator service. The third-party device may be provided by different device manufacturers or may be part of a different ecosystem (e.g., operating system) from the mobile device 102. The mobile device 102 may communicate via one or more wired and / or wireless networks 110 to perform data communications. For example, a wireless network 112 (e.g., a cellular network, a Wi-Fi network) may communicate with a wide area network 114 (such as the Internet) using a gateway 116. Similarly, an access device 118, such as a mobile hotspot wireless access device, may provide communication access to the wide area network 114. Then, the gateway 116 and the access device 118 may communicate with the wide area network 114 via a combination of a wired network and / or a wireless network.
[0029] In some implementations, both voice and data communications can be established through the wireless network 112 and / or the access device 118. For example, the mobile device 102 can make and receive phone calls (e.g., using the VoIP protocol), send and receive email messages (e.g., using the POP3 protocol), and retrieve electronic documents and / or streams, such as web pages, photos, and videos, through the wireless network 112 (as shown by 120), the gateway 116, and the wide area network 114 (e.g., using the TCP / IP or UDP protocol). In some implementations, the mobile device 102 can make and receive phone calls, send and receive email messages, and retrieve electronic documents through the access device 118 and the wide area network 114. In some implementations, the mobile device 102 can be physically connected to the access device 118 using one or more cables, for example, where the access device 118 is a personal computer. In this configuration, the mobile device 102 can be referred to as a "restricted" device. In one embodiment, the mobile device 102 can communicate with the accessory device via a wireless peer-to-peer connection. The wireless peer-to-peer connection (not shown) can be used to synchronize data between devices.
[0030] The mobile device 102 can communicate with one or more services, such as a phone service 130, an instant messaging service 140, a media service 150, a storage service 160, and a device locator service 170, via one or more wired and / or wireless networks 110. For example, the phone service 130 can enable telephone communications between mobile devices or between a mobile device and a wired telephone device. The phone service 130 can route voice over IP (VoIP) calls via a wide area network 114, or can access a cellular voice network (e.g., a wireless network 112). The instant messaging service 140 can, for example, provide email and / or other instant messaging services. The media service 150 can, for example, provide access to media files, such as song files, audiobooks, movie files, video clips, and other media data. The storage service 160 can provide network storage capabilities to the mobile device 102 to store documents and media files. The device locator service 170 can enable a user to locate a lost or misplaced device that is connected to the one or more wired and / or wireless networks 110 at least at some point. Other services can also be provided, including software update services for updating operating system software or client software on a mobile device. In one embodiment, the instant messaging service 140 , the media service 150 , the storage service 160 , and the device locator service 170 may each be associated with a cloud service provider, wherein the various services are facilitated via a cloud service account associated with the mobile device 102 .
[0031] The mobile device 102 may have applications, services, and functionality accessible locally on the device including the location service 180. The mobile device 102 may provide one or more device locator applications 190 (e.g., a "find my" application, a "compass" application, a mapping application, etc.) to utilize the device locator service 170 and the location service 180 to locate an accessory device, provide a mapping application, and a navigation application. Navigation applications (e.g., a "compass" application) help users navigate and backtrack to historical locations on their routes. Navigation applications are applications that use any number of methods including gyroscopes, magnetometers, and / or positioning systems (e.g., GPS receivers) to show basic directions for navigation and geographic orientation. Mapping applications are applications that use maps delivered by a geographic information system (GIS).
[0032] Locally accessible data may be stored at defined locations such as known locations 182 and secure trusted locations 184. In various embodiments, machine learning algorithms 186 may be used to classify locations, infer relationships between users and locations, provide path reconstruction and / or distance estimation. In some embodiments, machine learning algorithms 186 may be used to provide estimates of distances having a set of features, including but not limited to intermittently received location positions for a path and a set of straightness metrics for the location positions.
[0033] In some cases, the machine learning algorithm 186 may be used to identify known places 182 and / or trusted places 184. For example, cluster data analysis may be used to identify, classify, and provide semantic labels for places, such as places frequented by a user. The safe and trusted places 184 may be explicitly designated or confirmed by the user of the mobile device 102 after data analysis. In other cases, the known places 182 or trusted places 184 may be classified offline and provided by the device locator service 170 or a third party (e.g., a database with map information). Although cluster analysis is provided as an example of a machine learning algorithm that may be used, those skilled in the art will recognize that other algorithms may be used to identify potential known or trusted places.
[0034] On-device heuristics and / or machine learning models may be used to infer relationships between a user and a place based on analysis of locally stored data about frequented places, including places frequently visited by the user, known places, and / or any other places. For example, frequently visited places such as home, transportation, work, any place frequented by a user with a mobile device (e.g., accessory devices and mobile device 102), and / or any other place designated by the user as a trusted place 184. Known places 182 may be places of business, public spaces, parks, museums, and / or any other places that a user may frequent.
[0035] A defined location may have associated fence information that provides a set of conditions (if detected) to allow electronic devices to be specified or classified for at least a portion of a defined location relative to a zone of a physical space. For example, fence information may provide conditions for classifying an electronic device as being inside or outside a zone of a physical space associated with a defined location. In another example, fence information may provide conditions for classifying an electronic device as transitioning between inside or outside a zone of a defined location. Fence information may be a geo-fence with boundary information of a defined location, such as a point location and the range of the zone from the point location (e.g., a circular zone defined by a radius from the point location, a polygonal shape with a distance measurement from the point location, etc.). Fence information may include a set of sensor measurements received by an electronic device (e.g., including fingerprint data of radio frequency (RF) scan data such as Wi-Fi scan traces, etc.), which is a characteristic of a specific zone of a defined location. Fence information of a corresponding defined location may be stored together with the classification type of the location and any semantic tags assigned to the location. Boundary information may include a defined set of boundaries or radius distances around a point location to allow the creation of a fence of the location. In some embodiments, a fence is a virtual perimeter of a real-world geographic area. A global positioning system (GPS) may be used to create a virtual fence around a location and track the physical location of the mobile device 102 within the geo-fence boundary and the entry and exit of the bounded area. In some embodiments, there are at least two layers of fences that can be used to reduce the latency of traditional geo-fencing. For example, a mode selected based on analysis of user context data to determine intent may factor into the selection of the granularity of the fence established. In some embodiments, multiple fences may be used to refine the location information determined by the coarse-grained geo-fencing.
[0036] The machine learning algorithm 186 may include on-device heuristics, machine learning algorithms, or a combination thereof to analyze and assign labels about user contexts such as location states. Location states may be labels for user contexts (e.g., a set of conditions, motion classifications) in which specific positioning techniques and resources of an electronic device are used to obtain positioning information. Location states may define current location states and / or predictions of changes in location states of a user while traveling with an electronic device. By actively obtaining positioning information using techniques appropriate for location states, delays in providing information to device applications are reduced without causing a significant decrease in the performance of the electronic device, which may be experienced in the case of a continuous request for positioning information. For example, a user context may indicate movement or travel of an electronic device to allow the electronic device to be designated as having a motion classification, such as "on the way," "stable" at a specific defined location for a period of time, or any other defined motion classification. The analysis may be performed using various signals from contextual user data sources available to the mobile device 102, including, but not limited to, the following: sensor data, location data, calendar data, transit card usage data, application data, historical data regarding travel patterns / routines, wireless connection status with accessory devices and / or services (e.g., Bluetooth connection status), device location history, and / or any other data accessible to the mobile device 102. In one embodiment, the wireless connection status with various devices may indicate that the device is stable or "in transit." For example, loss of connection with an appliance, security system, heating / cooling system, vehicle, other modes of transportation, and / or any other device may indicate that the mobile device is "in transit."
[0037] In some embodiments, the mobile device 102 may be classified with a "stable" semantic label after remaining within the geographic boundaries of a defined location (e.g., a trusted location 184) for a defined period of time. In one example, the received positioning data of the mobile device 102 may indicate that the mobile device 102 remains within the boundaries of a fence at a specific location for a certain period of time (e.g., 5 minutes). Sensor data (such as accelerometer data) may indicate that the mobile device 102 is in a stationary state to support an inference that it is stabilized. Application data may support an inference that the mobile device 102 is stabilized, such as the mobile device is located at a calendar appointment location. Application data indicating the type of application in use may also provide an inference of the device being stabilized, such as the use of a media application. Historical data about the user's routines or patterns on the go can be used to determine whether the mobile device 102 is stabilized, such as a bedtime routine at a home or hotel location.
[0038] The mobile device 102 may be classified as having an "in transit" label based on previously detected behaviors, patterns, or routines of the user and analyzed on the mobile device 102. For example, a user may have a routine of working around the same time each day, and if the data on the device supports the repetition of this pattern, an "in transit" status may be assigned. The speed at which the mobile device moves or enters and exits a known geographic area (e.g., using a fence) may allow the inference that the mobile device 102 is in transit. If the mobile device 102 is detected as accelerating in a known transportation area (e.g., on a road, highway, train route, etc.), the mobile device 102 may be given an "in transit" motion classification. Similarly, if a transportation app / card is used / in use, the mobile device 102 may be designated as "in transit."
[0039] The mobile device 102 may be classified as “at a threshold distance,” “near an entrance,” “near an exit,” “entrance,” and / or “exit” for a set of places or a particular place based on crossing a fence boundary of the corresponding place or set of places and / or detecting a pattern of sensor values representative of being in a place (such as a Wi-Fi scan result representative of being inside a place or transitioning into a place).
[0040] Figure 2 is a block diagram for location services according to an embodiment. Location services 180 may include an event monitoring module 264 (e.g., a fence event monitor, a location status monitor, a sensor monitor, etc.), which may help determine when power and performance modes should be adjusted to determine positioning information. Event monitoring module 264 may rely on data from a contextual user data source to act as a prompt for a user context, and event monitoring module 264 may use heuristics and / or machine learning algorithms 186 to determine the user context that triggers mode adjustment. Event monitoring module 264 may detect whether a user is entering a defined location and a location location that the user is not familiar with. For example, a motion classifier 280 may be used to designate a mobile device 102 as having an "on the way" state, and wireless connection status data may indicate that a Bluetooth connection between the mobile device 102 and an accessory device such as an in-vehicle entertainment system is lost. Continuing with this example, event monitoring module 264 may determine from one or more contextual user data sources that there is at least one indication that the location state and / or motion classification of the mobile device 102 will change, such as the mobile device 102 may be "on the way to a defined location". User contextual data (such as crossing a fence boundary, exiting a vehicle, exiting a transportation stop, user routines, sensor data, application data, etc.) may be analyzed to predict that the electronic device has reached a threshold distance from a defined location and the mode of the electronic device should be adjusted.
[0041] In one embodiment, event monitor 264 may detect from user context data that the user is in a remote location (e.g., in the wild), on an unfamiliar route, and / or is unlikely to recharge their device within an extended period of time. For example, various signals from user context data may indicate that the user will be unlikely to recharge their device, such as application data indicating that the user is tracking fitness, a map application with a hiking trail selected for display, loss of cellular service, and / or any other data accessible on the device that provides context for the user's activities that may allow for an inference that the user will not be able to recharge electronic device 102. In another example, the user may select a mode that indicates that the user will not be able to recharge electronic device 102.
[0042] The access monitoring module 270 can utilize the event monitor 264, the fence information 290, and the entry detection module 266 to accurately detect entry into a defined place and reduce the delay in providing location information by predicting that the user will request location data. When the electronic device 102 is detected to cross a coarser-grained geo-fence boundary (as detected using the entry detection module 266), the access monitoring module 270 can retrieve the fence information 290 to define a more precise boundary for defining a place. In another embodiment, the access monitoring module 270 can retrieve expected sensor data (e.g., fingerprint data) characteristics of the electronic device 102 having a place state.
[0043] Proactive services 268 may be used to predict what applications and / or services a user may want to access given a user context, motion classification, and / or location state. For example, a user may want to access a particular application just before or upon entering a location. Proactive services 268 may select applications based on a user's history of application selections, or suggest new applications associated with a particular defined location.
[0044] In one embodiment, the electronic device 102 (with the event monitor 264) can detect a set of conditions that allow inference that the user may request a retracing route to allow retracing of their steps, and the electronic device 102 can initiate an extended mode to obtain positioning information so as not to affect the performance of the electronic device 102. In one embodiment, the proactive service 268 can adjust the rate of periodic requests for determining positioning information. To handle the intermittent reception of positioning information, the machine learning model 240 can be used to reconstruct the path from the user accessible data and estimate the distance of the path taken by the user.
[0045] In some embodiments, map data accessed by a mapping application 250 is used to estimate distance. A mapping application is an application that uses maps delivered by a geographic information system (GIS). Navigation application 220 can provide heading or direction (e.g., degrees from magnetic north) information of mobile device 102 collected as the user travels, and average the heading data to eliminate errors in the collected heading information due to changes in heading measurements caused by movement of the device (e.g., shaking of the device, swinging of the hand when the device is worn on the user's wrist, etc.) as the user travels along its trajectory.
[0046] Active service 268 and event monitor 264 can use motion classifier 280, density classifier 282 and backtracking classifier 278. Motion classifier 280 trained on feature set of data obtained using electronic device sensor can provide information about whether electronic device 102 is stationary or on the way with user. Although various embodiments are not limited to specific sensor types, specific sensor data representations or specific features, exemplary sensors and features capable of distinguishing specific movements within sensor data are described herein. Motion classifier can analyze provided features from sensor data using one or more models trained to perform recognition of motion type based on supplied features. In some specific implementations, electronic device can receive motion classification indicating that mobile device is traveling in specific transport mode from electronic device or from server. Backtracking classifier 278 classifies the historical position of mobile device 102 obtained as possible part of the backtracking route of user of electronic device 102.
[0047] Density classifier 282, which has been trained on a feature set from data obtained using electronic device sensors, can provide information about the density of structures and / or population in a given geographic area. Features considered when classifying a geographic area include, but are not limited to, the following: wireless access point density, radio frequency signal (e.g., Bluetooth, UWB, etc.) density information, and / or map data about density and landscape to provide information about whether electronic device 102 is in a dense geographic area or in a sparse geographic area.
[0048] In some embodiments, Figure 3 A to Fig.12 The electronic device 102 is as follows Figure 1 to Figure 2 The mobile device 102.
[0049] Rhythmic GNSS
[0050] Figure 3300 is a flowchart illustrating an extended mode method according to an embodiment. Although a specific method for obtaining historical positioning information is described, those skilled in the art will recognize that positioning information can be obtained in various ways, and the techniques described with respect to adjustment of the look-back window can be implemented with any set of locations to protect the privacy of the user. In some embodiments, the user explicitly selects the extended mode via a user interface on the electronic device 102. The mode change can be a downgrade from a higher power state with more accurate location monitoring (e.g., non-extended mode) to a lower power state with coarse location monitoring (e.g., extended mode) to extend the life of the battery. Alternatively or in addition, in some embodiments, the electronic device 102 may rely on user context data to determine the selection of a mode that results in an upgrade or downgrade of power usage, including a duty cycle of requests for positioning information. The user context data is analyzed to determine whether to start an extended location service session in the extended mode (302). The electronic device 102 analyzes the user context data to determine whether a set of conditions for actively obtaining positioning data in the extended mode are met. This group of conditions allows to infer that the user is on an unfamiliar route and / or in the wild, and allows to predict that the user may need to be able to use the backtracking route to trace back his footprints and actively obtain historical positioning information. Various data sources can be analyzed to determine the user context, including but not limited to the following: sensor data, application data, frequented places, trusted places, known user routines, known places of interest, detection of entry and / or departure of vehicles (e.g., losing Bluetooth connection with vehicles). In one embodiment, the electronic device 102 selects a mode based on the conditions met in the user context data (such as the time or event indicating the time interval for capturing positioning information). For example, if the user is on the way or the cell service is limited (e.g., weak, intermittent access, etc.) in a long period of time, potentially indicating that the user is hiking, then positioning information can be actively captured to allow the user to trace back his footprints.
[0051] In one embodiment, one or more backtracking conditions may include, but are not limited to, for example, a classification of in-transit (e.g., non-stationary) motion, a threshold period of time without network access, a classification of a sparse (e.g., not densely populated or with low density of man-made structures in the area, etc.) environment, and a threshold distance from a frequented location and / or a location that is part of a user's routine. While specific categories of conditions are provided, those skilled in the art will recognize that any other user context data may supplement and / or form the basis for an inference that a user will request historical location information for backtracking.
[0052] The electronic device 102 initiates an extended location services session in an extended mode to duty cycle requests for positioning information (e.g., GNSS requests) to obtain intermittent position fixes and extend battery life (304). The electronic device 102's requests for positioning information can be intermittent to allow the AP to sleep between requests and / or process requests from other applications. By further example, the electronic device 102 can collect positioning information every N minutes (e.g., every 2 minutes), and the duration for obtaining a position fix using GNSS varies each time. Continuing with this example, the electronic device 102 can request positioning information every two minutes, and the duration for servicing requests for positioning information can depend on the operating conditions of the device.
[0053] Optionally, the functionality provided by the electronic device 102 may be changed (306). In some embodiments, the functionality of applications and services (e.g., 130-180), sensors, processor usage, other hardware, and / or network access may be reduced. Services and applications accessible on the electronic device 102 may be assigned priorities, and the provision of services and applications on the electronic device 102 may be executed according to the assigned priorities (308), including initiating a duty cycle. The electronic device 102 initiates a duty cycle according to the priority assigned for obtaining positioning information (308). If a location fix is available from other services (310), the location fix may be obtained from the other services (312). Alternatively, the electronic device determines whether to wake up a processor (e.g., an AP or a radio processor) (314) according to the priority assigned for obtaining positioning information. In some embodiments, the mode may determine the specific processor type used to determine the location information, such as whether the location information request is executed on an AP, radio controller, or a low-power "always-on" processor (AOP), or whether the device intermittently executes requests on an AP, radio controller, or AOP at irregular time intervals to protect the device battery.
[0054] When the AP is already executing instructions (e.g., for another application), the electronic device 102 may opportunistically collect positioning information (316). For example, if obtaining the user's health information, communication services, etc. takes precedence over obtaining positioning information, obtaining positioning information may be performed in the background when the priority application is idle. Alternatively, the electronic device 102 may request to wake up the AP for the positioning information request (318). The extended location service session may continue (320) and optionally change the functionality of the service and application (306). In some embodiments, the user context may continue to be analyzed (322) and (302). Alternatively, the process may end until the user initiates the extended location service session (324).
[0055] Figure 4400 is a flowchart illustrating a backtracking method according to an embodiment. The electronic device 102 detects one or more backtracking conditions (401) that trigger the collection of a set of historical locations for a review time window. The one or more backtracking conditions are a set of conditions determined by analyzing user context information, which allows inference that the user may need to backtrack historical location information (for example, in the wild and / or in unfamiliar areas). The electronic device 102 predicts that the user may want historical location information based on the one or more backtracking conditions to allow backtracking (for example, backtracking a route) in a navigation application and / or a mapping application. In some embodiments, the detected one or more backtracking conditions are based on the following examples: Figure 3 Although a particular method for collecting historical locations is described, any specific implementation for collecting historical locations may be utilized to practice a set of conditions for inferring that a user is lost prior to collecting historical locations and subsequent review of the conditions prior to responding to a request for historical locations.
[0056] User context data may supplement the backtracking conditions to provide a decision to initiate extended mode and obtain positioning information. In one embodiment, one or more backtracking conditions may include, but are not limited to, the following: classification of motion en route (e.g., non-stationary), threshold time period without network access, classification of sparse environments (e.g., not densely populated or low density of man-made structures in the area, etc.), and exceeding a threshold distance from a frequented location and / or a location that is part of a user's routine. Although specific categories of conditions are provided, those skilled in the art will recognize that any other user context data may supplement and / or form the basis for an inference that a user will request historical positioning information for backtracking.
[0057] If the electronic device 102 receives a motion classification of non-stationary and / or "on the way", the motion type classification condition is met. In one embodiment, if the mode of transportation is human (e.g., walking, bicycle, skateboard, etc.) or motor-assisted vehicles (e.g., motor-assisted bicycles) rather than motor vehicles or cars (e.g., cars, airplanes, electric vehicles), the motion type classification condition is met. The motion classifier 280 trained on a feature set of data obtained using electronic device sensors can provide information about whether the electronic device 102 is stationary or on the way, including the mode of transportation. In some embodiments, the motion classification can indicate an inference of the user's activity or mode of transportation when on the way, including but not limited to the following: walking, on a bicycle, on fitness equipment, on a scooter, on a skateboard, in a vehicle, on an airplane, on a vehicle, on a train, on a subway, human-powered vehicles, motor-assisted vehicles, electric-assisted vehicles, cars and / or any other motion classification.
[0058] If the electronic device 102 is not within the communication range of a wireless access point (e.g., Internet access, WiFi, cellular network access point, etc.) in the geographic area, or the geographic area has a relatively low access point density compared to a defined access point density threshold, the network access backtracking condition is met. The electronic device 120 may, for example, perform one or more wireless surveys to detect whether there are wireless access points in the geographic area when the device is on the way for a period of time. For example, the electronic device 120 may continuously, periodically, or intermittently search for wireless signals transmitted using one or more frequency bands designated for wireless communication. If the number of access points observed during the period is lower than the defined access point density threshold, the network access backtracking condition is met.
[0059] The electronic device 102 determines whether the environment type backtracking condition 102 is satisfied based on the classification of the geographic area as having a sparse structure density in the geographic area using the density classifier 282. The density classifier 282 trained on the feature set of data obtained using the electronic device sensor can be about the following: wireless access point density, radio frequency signal (e.g., Bluetooth, UWB, etc.) density information and map data about density and landscape to provide information about whether the electronic device 102 is in a dense geographic area or in a sparse geographic area. In some embodiments, the density of wireless access points in the area is a feature provided in the classification of structural density in the geographic area. For example, if there are a large number of different wireless access points in each area, there is a higher possibility of a dense urban environment. As another example, the time span recorded between the observations of the wireless access points can be a feature provided to the density classifier 282 and act as an indicator of a sparse environment. In some embodiments, the map tile service can provide a tile-based mapping service to the electronic device 102, which enables the electronic device 102 to retrieve map data and metadata for the geographic area of the electronic device 102 or the area that the electronic device 102 is searching. The map tile metadata may be retrieved from a remote map tile database or a local (e.g., cached) subset of a map tile database. The metadata may include a classification for the current map tile or sub-tile. The map tile metadata may also include digital elevation model (DEM) data that indicates a surface model of the structure that includes the estimated geographic area and may be a feature for the density classifier 282.
[0060] Next, if the electronic device 102 is more than a threshold distance from a frequented location, a location that is part of a user routine, a safe or trusted location, the satisfied backtracking conditions may be analyzed to determine if sufficient conditions are satisfied to continue to actively obtain historical location information.
[0061] If sufficient backtracking conditions are met, the electronic device 102 receives at least one historical location from a set of historical locations within the backtracking time period (402). Although described with reference to the classification of a single historical location, those skilled in the art will recognize that multiple historical locations may be classified to determine the backtracking window of the historical location to be included in the backtracking route.
[0062] The electronic device may classify at least one historical location as a candidate location for backtracking based on one or more features (e.g., signals) observed when collecting the historical locations (e.g., duration of the lookback window, no locations greater than 250 km, no previous locations in a vehicle, etc.) (403). Features considered when classifying the historical locations include, but are not limited to, the following: duration included in the lookback window, distance to frequent, safe, and / or trusted locations, location information collected before and after entering a motor vehicle (e.g., car, airplane, etc.) and / or electric vehicle, structural density classification (e.g., urban area, etc.), access point density, movement classification, transportation mode classification, user activity (e.g., hiking events from calendar data), and / or any other features that may indicate that a user may need to backtrack.
[0063] For example, the most recent historical location considered as a candidate for a review window may not be as far in the past as the maximum duration from the current time. Similarly, historical locations greater than the maximum distance from the current location may be excluded from consideration as candidates for the review window. Location information acquired during flight and / or other journeys within a vehicle may be truncated from the review window and not considered as candidates for the review window. In some embodiments, unless a user requests to record historical locations near a frequented location and / or a safe and trusted location, historical locations that do not exceed a trusted threshold distance may be truncated from the review window. Access point density and structural density classification indications that the user may be in an urban location may allow truncation of a review window with an associated location. The features described are examples, and the backtracking classifier 278 may or may not use any number of the features to determine the review window.
[0064] The electronic device 102 determines whether to provide at least one historical location as part of the review window based on the classification (404). In one embodiment, the classification of the historical locations in the review window begins with the previously classified historical locations in the review window, and the classification continues until the most recent candidate is identified. The historical locations before the most recently classified candidate may be cleared.
[0065] Selectively providing historical locations when conditions indicate that the user is lost prevents malicious actors from accessing and / or causing exposure of the user's prior locations, which may be contrary to the user's own interests.
[0066] In some embodiments, an application requesting access to a look-back window must have permissions. The permissions may identify the application as having a right or privilege to access location information. If a user requests access to historical location information via an application, then the look-back window location information may be provided opportunistically, as opposed to requiring the user to request repeated efforts to obtain historical location information.
[0067] Figure 5 500 is a diagram illustrating an extended mode method according to an embodiment. After one or more conditions 508 are detected in the user context data indicating that an extended mode needs to be initiated, location information requests 506 are intermittently performed within a duty cycle period 502, as shown. The look-back window is a time period 504, as illustrated, with a set of historical locations (e.g., Figure 5 As shown, each collected location is represented by an "X" to allow the user to retrace their steps.
[0068] Figure 6 800 is a flow diagram for a location service according to an embodiment. In some embodiments, the location service may proactively obtain location information in anticipation of a user requesting access to historical location information for use with an application such as a map application. Contextual user data may be analyzed to predict that a user may request historical location information (801). For example, analysis of contextual user data may provide a prediction that a user may request location information for a recent path or transportation route taken to allow the user to retrace their path. In some embodiments, contextual user data is analyzed to determine whether a user may be lost and / or unable to access location information due to loss of service (e.g., cellular or wi-fi service). In another example, historical routine data and / or application data (e.g., calendar data) may be analyzed to determine whether recent location information for a user who is en route is not part of the user's routine.
[0069] At least one indication of a user's intent to request access to historical location information may be received (802). The user's intent to request such historical location data may be indicated by the electronic device 102 being designated as being en route for a threshold duration and / or on a path with reduced access to services (e.g., cellular service, power outage). Certain activities or events indicated by contextual user data (e.g., application data) may serve as predictors of a need to access historical location information and potentially an intent to request historical location information, such as sensor data or application data indicating that the user is exercising or walking. In another embodiment, analysis of the user's historical data may provide information about routine transportation routes or paths taken by the user, and the electronic device 102 may receive user context data indicating the user's intent to repeat a routine, such as leaving a vehicle at a parking lot near an amusement park, a hiking area, a ski area, and / or any other remote location.
[0070] Upon receiving an indication of the location status of the user's intent to use an application that allows backtracking of the route, periodic requests for location information based on the power capabilities of the device may be performed (803). Coarse-grained geo-fences may be established where defined locations (e.g., ski lodges, national park offices, etc.) are found along the route to detect and obtain location information while the user is en route. In some embodiments, the AOP may be used to perform the request for location information (e.g., GPS). Location information over time may be presented at the electronic device 102 upon request by the user (804).
[0071] When user context data indicates that the user may need to retrace their path, the user may be prompted to opt-in to allow the electronic device to actively obtain location information, and the location information may be deleted when access to services (such as wireless connectivity or cellular service) has been restored.
[0072] Figure 7 It is a diagram 700 illustrating an extended mode method according to an embodiment. After one or more conditions 508 indicating the need to start an extended mode are detected in the user context data, a location information request 506 is intermittently performed in a duty cycle period 502, as shown. The review window is a time period 504, as illustrated, with a set of historical locations that may be needed in a retrospective route to allow the user to retrospect their footprints. The maximum duration (e.g., 4 days) that the retrospective window 504 can define is provided at 702. The retrospective classifier 278 classifies the historical locations before 704 as candidates that are not retrospective windows 504, because the user is stationary, at a trusted location (home) and walks out of the threshold distance from the home. The historical location at 702 may have been the last processed historical location and the starting point for classification with a recent request for a retrospective window. The retrospective window 504 is truncated, and the location information 20km when the user is walking and in a low access point density area is included in the retrospective route with the illustrated retrospective window 504.
[0073] Figure 8 Depicted is a user interface 800 for a location service according to an embodiment. The user interface 104 of the electronic device 102 allows the user to select a review window (as shown in 804) of historical location information shared with an application 802 named "<application name>" (e.g., having permissions) via a user interface element 806. Alternatively, the user may choose not to allow access to the review window via a user interface element 808.
[0074] Fig. 9A user interface 900 for a location service is depicted according to an embodiment. A compass location service application is depicted with icons representing a user's vehicle 904, waypoints 906, and locations of paths 902 that the user has taken. Waypoints 906 and the user's vehicle 904 location may mark places of particular interest to the user, and are depicted as relative locations to the user's current location.
[0075] Fig.10 is a block diagram illustrating an exemplary API architecture that may be used in some embodiments of the present invention. Fig.10 As shown in , the API architecture 1000 includes an API implementation component 1010 (e.g., an operating system, library, device driver, API, application, software, or other module) that implements an API 1020. The API 1020 specifies one or more functions, methods, classes, objects, protocols, data structures, formats, and / or other features of the API implementation component that can be used by an API calling component 1030. The API 1020 may specify at least one calling convention that specifies how functions in the API implementation component receive parameters from the API calling component and how functions return results to the API calling component. The API calling component 1030 (e.g., an operating system, library, device driver, API, application, software, or other module) makes an API call through the API 1020 to access and use the features of the API implementation component 1010 specified by the API 1020. The API implementation component 1010 may return a value to the API calling component 1030 through the API 1020 in response to the API call.
[0076] It should be understood that the API implementation component 1010 may include additional functions, methods, classes, data structures, and / or other features that are not specified by the API 1020 and are not available to the API calling component 1030. It should be understood that the API calling component 1030 may be on the same system as the API implementation component 1010, or may be located remotely and access the API implementation component 1010 using the API 1020 over a network. Fig.10 A single API calling component 1030 is shown interacting with API 1020 , but it should be understood that other API calling components written in a different language than API calling component 1030 (or the same language) may use API 1020 .
[0077] The API implementation component 1010, the API 1020, and the API calling component 1030 may be stored in a machine-readable medium, which includes any mechanism for storing information in a form readable by a machine (e.g., a computer or other data processing system). For example, the machine-readable medium includes a disk, an optical disk, a random access memory, a read-only memory, a flash memory device, etc.
[0078] Fig.11 1 is a block diagram of a device architecture 1100 for a mobile or embedded device according to an embodiment. The device architecture 1100 includes a memory interface 1102, a processing system 1104 including one or more data processors, image processors and / or graphics processing units, and a peripheral device interface 1106. The various components can be coupled via one or more communication buses or signal lines. The various components can be separate logical components or devices or can be integrated in one or more integrated circuits, such as a system-on-chip integrated circuit.
[0079] The memory interface 1102 can be coupled to the memory 1150, which may include high-speed random access memory such as static random access memory (SRAM) or dynamic random access memory (DRAM) and / or non-volatile memory such as but not limited to flash memory (e.g., NAND flash, NOR flash, etc.).
[0080] Sensors, devices and subsystems may be coupled to the peripheral device interface 1106 to facilitate multiple functions. For example, motion sensors 1110, light sensors 1112 and proximity sensors 1114 may be coupled to the peripheral device interface 1106 to facilitate mobile device functions. There may also be one or more biometric sensors 1115, such as a fingerprint scanner for fingerprint recognition or an image sensor for facial recognition. Other sensors 1116 may also be connected to the peripheral device interface 1106, such as a positioning system (e.g., a GPS receiver), a temperature sensor, or other sensing devices to facilitate related functions. In one embodiment, the positioning system may have a radio processor capable of solving navigation equations to determine the user's position, speed and / or time by processing broadcast signals. Camera subsystem 1120 and optical sensors 1122 (such as a charge coupled device (CCD) or a complementary metal oxide semiconductor (CMOS) optical sensor) may be utilized to facilitate camera functions, such as taking photos and video clips.
[0081] Communication functions may be facilitated by one or more wireless communication subsystems 1124, which may include radio frequency receivers and transmitters and / or optical (e.g., infrared) receivers and transmitters. The specific design and implementation of the wireless communication subsystem 1124 may depend on the communication network over which the mobile device is intended to operate. For example, a mobile device including the illustrated device architecture 1100 may include a wireless communication subsystem 1124 designed to operate over a GSM network, a CDMA network, an LTE network, a Wi-Fi network, a Bluetooth network, or any other wireless network. Specifically, the wireless communication subsystem 1124 may provide a communication mechanism by which a media playback application may retrieve resources from a remote media server or retrieve scheduled events from a remote calendar or event server.
[0082] The audio subsystem 1126 may be coupled to a speaker 1128 and a microphone 1130 to facilitate voice-enabled functions such as voice recognition, voice replication, digital recording, and telephony. In the smart media devices described herein, the audio subsystem 1126 may be a high-quality audio system including support for virtual surround sound.
[0083] The I / O subsystem 1140 may include a touch screen controller 1142 and / or other input controllers 1145. For computing devices that include a display device, the touch screen controller 1142 may be coupled to a touch-sensitive display system 1146 (e.g., a touch screen). The touch-sensitive display system 1146 and the touch screen controller 1142 may detect contact and motion or pressure using, for example, any of a variety of touch and pressure sensing technologies, including but not limited to capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with the touch-sensitive display system 1146. The display output of the touch-sensitive display system 1146 may be generated by the display controller 1143. In one embodiment, the display controller 1143 may provide frame data to the touch-sensitive display system 1146 at a variable frame rate.
[0084] In one embodiment, a sensor controller 1144 is included to monitor, control, and / or process data received from one or more of the motion sensor 1110, the light sensor 1112, the proximity sensor 1114, or the other sensor 1116. The sensor controller 1144 may include logic to interpret the sensor data to determine the occurrence of one of a plurality of motion events or activities by analyzing the sensor data from the sensors.
[0085] In one embodiment, the I / O subsystem 1140 includes other input controllers 1145 that may be coupled to other input / control devices 1148 such as one or more buttons, rocker switches, thumb wheels, infrared ports, USB ports, and / or pointer devices such as a stylus, or control devices such as up / down buttons for volume control of the speaker 1128 and / or microphone 1130.
[0086] In one embodiment, memory 1150 coupled to memory interface 1102 may store instructions for an operating system 1152, including portable operating system interface (POSIX) compliant and non-compliant operating systems or embedded operating systems. Operating system 1152 may include instructions for handling basic system services and for performing hardware-related tasks. In some implementations, operating system 1152 may be a kernel.
[0087] The memory 1150 may also store communication instructions 1154 to facilitate communication with one or more additional devices, one or more computers and / or one or more servers, such as obtaining web resources from a remote web server. The memory 1150 may also include user interface instructions 1156, including graphical user interface instructions to facilitate graphical user interface processing.
[0088] In addition, the memory 1150 may store sensor processing instructions 1158 that facilitate sensor-related processes and functions; phone instructions 1160 that facilitate processes and functions related to phone calls; instant messaging instructions 1162 that facilitate processes and functions related to electronic message processing; web browser instructions 1164 that facilitate processes and functions related to web browsing; media processing instructions 1166 that facilitate processes and functions related to media processing; location service instructions that facilitate location-based functionality including GPS and / or navigation instructions 1168 and Wi-Fi-based location instructions; camera instructions 1170 that facilitate processes and functions related to cameras; and / or other software instructions 1172 that facilitate other processes and functions, such as security processes and functions and system-related processes and functions. The memory 1150 may also store other software instructions, such as web video instructions that facilitate processes and functions related to web videos; and / or web shopping instructions that facilitate processes and functions related to web shopping. In some specific implementations, the media processing instructions 1166 are divided into audio processing instructions and video processing instructions to facilitate processes and functions related to audio processing and processes and functions related to video processing, respectively. A mobile device identifier, such as an International Mobile Equipment Identity (IMEI) 1174 or similar hardware identifier may also be stored in memory 1150 .
[0089] Each of the instructions and applications identified above may correspond to an instruction set for performing one or more of the functions described above. These instructions need not be implemented as separate software programs, processes, or modules. Memory 1150 may include additional instructions or fewer instructions. In addition, various functions may be performed in hardware and / or software, including in one or more signal processing and / or application specific integrated circuits.
[0090] Fig.121200 is a block diagram of a computing system 1200 according to an embodiment. The computing system 1200 shown is intended to represent a series of computing systems (wired or wireless), including, for example, a desktop computer system, a laptop computer system, a tablet computer system, a cellular phone, a personal digital assistant (PDA) including a cellular PDA, a set-top box, an entertainment system or other consumer electronic device, an intelligent electrical appliance, or one or more specific implementations of an intelligent media playback device. Alternative computing systems may include more, less and / or different components. The computing system 1200 may be used to provide a computing device and / or a server device to which a computing device may be connected.
[0091] The computing system 1200 includes a bus 1235 or other communication device for transmitting information, and a processor 1210 coupled to the bus 1235 that can process information. Although the computing system 1200 is illustrated as having a single processor, the computing system 1200 may include multiple processors, low-power processors, and / or coprocessors. The computing system 1200 may also include a memory 1220 in the form of a random access memory (RAM) or other dynamic storage device coupled to the bus 1235. The memory 1220 may store information and instructions that can be executed by the processor 1210. In one embodiment, the memory 1420 may store instructions that can be executed by a low-power processor 1415 (such as an AOP). In one embodiment, the low-power processor 1415 may be a component of a system on a chip (SOC) that remains powered when the rest of the SOC is powered off. A specific implementation of the low-power processor 1415 can be found in U.S. Patent Application No. 11,079,261, which is incorporated herein by reference. The memory 1220 may also be a main memory used to store temporary variables or other intermediate information during execution of instructions by the processor 1210 .
[0092] The computing system 1200 may also include a read-only memory (ROM) 1230 and / or other data storage device 1240 coupled to the bus 1235 that may store information and instructions for the processor 1210. The data storage device 1240 may be or include a variety of storage devices, such as a flash memory device, a magnetic disk, or an optical disk and may be coupled to the computing system 1200 via the bus 1235 or via a remote peripheral interface.
[0093] The computing system 1200 may also be coupled to a display device 1250 via bus 1235 to display information to a user. The computing system 1200 may also include an alphanumeric input device 1260, which includes alphanumeric and other keys, which may be coupled to the bus 1235 to send information and command selections to the processor 1210. Another user input device includes a cursor control 1270 device, such as a touch pad, mouse, trackball, or cursor direction keys, for communicating direction information and command selections to the processor 1210 and controlling cursor movement on the display device 1250. The computing system 1200 may also receive user input from a communicatively coupled remote device via one or more network interfaces 1280.
[0094] The computing system 1200 may also include one or more network interfaces 1280 to provide access to a network such as a local area network. The network interface 1280 may include, for example, a wireless network interface having an antenna 1285, which may represent one or more antennas. The computing system 1200 may include multiple wireless network interfaces, such as Wi-Fi, A combination of near field communication (NFC) and / or a cellular phone interface. The network interface 1280 may also include, for example, a wired network interface to communicate with a remote device via a network cable 1287, which may be, for example, an Ethernet cable, a coaxial cable, a fiber optic cable, a serial cable, or a parallel cable.
[0095] In one embodiment, the network interface 1280 may provide access to a local area network, for example by complying with the IEEE 802.11 wireless standard, and / or the wireless network interface may provide access to a personal area network, for example by complying with the Bluetooth standard. Other wireless network interfaces and / or protocols may also be supported. In addition to or in lieu of communicating via a wireless LAN standard, the network interface 1280 may provide wireless communications using, for example, a time division multiple access (TDMA) protocol, a global system for mobile communications (GSM) protocol, a code division multiple access (CDMA) protocol, a long term evolution (LTE) protocol, and / or any other type of wireless communication protocol.
[0096] The computing system 1200 may also include one or more energy sources 1205 and one or more energy measurement systems 1245. The energy source 1205 may include an AC / DC adapter coupled to an external power source, one or more batteries, one or more charge storage devices, a USB charger, or other energy sources. The energy measurement system includes at least one voltage or current measurement device that can measure the energy consumed by the computing system 1200 over a predetermined period of time. In addition, one or more energy measurement systems may be included to measure, for example, the energy consumed by a display device, a cooling subsystem, a Wi-Fi subsystem, or other commonly used or high energy consumption subsystems.
[0097] In various embodiments, description is made with reference to the accompanying drawings. However, certain embodiments may be practiced without one or more of these specific details or in combination with other known methods and structures. In the following description, many specific details such as specific configurations, sizes and processes are shown to provide a thorough understanding of the embodiments. In other cases, well-known semiconductor processes and manufacturing techniques are not described in particular detail to avoid unnecessarily obscuring the embodiments. "One embodiment" mentioned throughout the specification refers to the specific features, structures, constructions or characteristics described in conjunction with the embodiments being included in at least one embodiment. Therefore, the phrase "in one embodiment" that appears in multiple places throughout the specification does not necessarily refer to the same embodiment. In addition, specific features, structures, constructions or characteristics may be combined in one or more embodiments in any appropriate manner.
[0098] Although the embodiments have been described in language specific to structural features and / or methodological acts, it should be understood that the appended claims are not necessarily limited to the specific features or acts described. Rather, the specific features and acts disclosed should be understood as illustrative embodiments of the claims.
Claims
1. A system for performing classification on an electronic device, the system comprising: One or more processors, wherein the one or more processors are to perform operations including: detecting one or more conditions in the user context data that trigger collection of a set of historical locations for a look-back window; receiving at least one historical position from the set of historical positions for the review window; classifying the at least one historical location as a candidate for a backtracking route based on the one or more characteristics; as well as A determination is made based on the classification to provide the at least one historical location as part of the look-back window.
2. The system of claim 1, wherein the one or more conditions include at least one of: an in-transit motion classification, a threshold time period without network access, a sparse environment classification, or a threshold distance from a frequented location.
3. The system of claim 1 , wherein the one or more processors perform operations further comprising: receiving a request for the look-back window from an application; In response to the request, sorting the historical locations in the set of historical locations in the look-back window from the last sorted historical location in the set to locate the nearest candidate historical location to start a backtracking route; and The historical positions in the set of historical positions are truncated before the closest candidate position.
4. The system of claim 3, wherein the one or more processors perform operations further comprising: The truncated history location is deleted from the electronic device. The system of claim 3 , wherein the application has permission to request the look-back window.
6. The system of claim 1, wherein the one or more processors perform operations further comprising: The user context data is analyzed to determine that a set of conditions are satisfied for actively obtaining positioning data in an extended mode, wherein the extended mode includes duty cycled location information requests to obtain intermittent location fixes.
7. The system of claim 1, wherein the one or more characteristics include at least one of the following: The duration of the look-back window, the distance from a frequent or trusted location, the timing of obtaining the historical positioning information before and after a motor vehicle or electric vehicle enters, structure density classification, access point density, movement classification, transportation mode classification, or user activity.
8. A non-transitory machine-readable medium storing instructions to cause one or more processors to perform operations comprising: detecting one or more conditions in the user context data that trigger collection of a set of historical locations for a look-back window; receiving at least one historical position from the set of historical positions for the review window; classifying the at least one historical location as a candidate for a backtracking route based on the one or more characteristics; and A determination is made based on the classification to provide the at least one historical location as part of the look-back window.
9. The non-transitory machine-readable medium of claim 8, wherein the one or more conditions include at least one of: an in-transit motion classification, a threshold time period without network access, a sparse environment classification, or a threshold distance from a frequented location.
10. The non-transitory machine-readable medium of claim 8, wherein the one or more processors perform operations further comprising: receiving a request for the look-back window from an application; In response to the request, sorting the historical locations in the set of historical locations in the look-back window from the last sorted historical location in the set to locate the nearest candidate historical location to start a backtracking route; and The historical positions in the set of historical positions are truncated before the closest candidate position.
11. The non-transitory machine-readable medium of claim 10, wherein the one or more processors perform operations further comprising: The truncated history location is deleted from the electronic device.
12. The non-transitory machine-readable medium of claim 10, wherein the application has permission to request the look-back window.
13. The non-transitory machine-readable medium of claim 8, wherein the one or more processors perform operations further comprising: The user context data is analyzed to determine that a set of conditions are satisfied for actively obtaining positioning data in an extended mode, wherein the extended mode includes duty cycled location information requests to obtain intermittent location fixes.
14. The non-transitory machine-readable medium of claim 8, wherein the one or more characteristics include at least one of the following: The duration of the look-back window, the distance from a frequent or trusted location, the timing of obtaining the historical positioning information before and after a motor vehicle or electric vehicle enters, structure density classification, access point density, movement classification, transportation mode classification, or user activity.
15. A method comprising: detecting one or more conditions in the user context data that trigger collection of a set of historical locations for a look-back window; receiving at least one historical position from the set of historical positions for the review window; classifying the at least one historical location as a candidate for a backtracking route based on the one or more characteristics; as well as A determination is made based on the classification to provide the at least one historical location as part of the look-back window.
16. The method of claim 15, wherein the one or more conditions include at least one of: an in-transit motion classification, a threshold time period without network access, a sparse environment classification, or a threshold distance from a frequented location.
17. The method according to claim 15, further comprising: receiving a request for the look-back window from an application; In response to the request, sorting the historical locations in the set of historical locations in the look-back window from the last sorted historical location in the set to locate the nearest candidate historical location to start a backtracking route; as well as The historical positions in the set of historical positions are truncated before the closest candidate position.
18. The method of claim 17, wherein the one or more processors perform operations further comprising: The truncated history location is deleted from the electronic device. The method of claim 17 , wherein the application has permission to request the look-back window.
20. The method of claim 15, further comprising: The user context data is analyzed to determine that a set of conditions are satisfied for actively obtaining positioning data in an extended mode, wherein the extended mode includes duty cycled location information requests to obtain intermittent location fixes.
21. The method of claim 15, wherein the one or more characteristics include at least one of the following: The duration of the look-back window, the distance from a frequent or trusted location, the timing of obtaining the historical positioning information before and after a motor vehicle or electric vehicle enters, structure density classification, access point density, movement classification, transportation mode classification, or user activity.
