Proactive provision of positioning information based on user context

By analyzing user context data and location status changes, selecting appropriate processors and positioning modes, and establishing multi-layer fences, the problems of location service delay and battery exhaustion in the prior art are solved, and high-precision positioning and low-power consumption are provided Solution.

CN119174198APending Publication Date: 2024-12-20APPLE INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380039074.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-04-24
Filing Date
2023-05-04
Publication Date
2024-12-20

AI Technical Summary

Technical Problem

When providing location services, the prior art often leads to exhausting the device battery or inaccurate positioning information, which cannot meet users' needs for high-precision positioning.

Method used

By receiving the position status change indication of the electronic device, analyzing user context data, predicting the upcoming position status, and selecting appropriate processor type and positioning information mode according to the prediction to actively provide precise positioning information. The method includes building multi-layer fences on electronic devices, utilizing RF fingerprints or building maps, adjusting the granularity and performance levels of positioning techniques to reduce latency and power consumption.

Benefits of technology

It realizes reducing location service waiting time without significantly reducing equipment performance, providing more accurate positioning information, and extending the device battery life.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119174198A_ABST
    Figure CN119174198A_ABST
Patent Text Reader

Abstract

Embodiments described herein provide systems, non-transitory machine-readable media, and methods for providing location services. In an embodiment, a method provides for receiving at least one indication indicating that an electronic device is on route to at least one defined location, establishing a first fencing boundary for the at least one defined location, receiving an indication indicating that the electronic device has passed the first fencing boundary and on route to the defined location, and establishing a second fence for the defined location, wherein the second fence provides a finer-grained fence for the defined location than the first fence.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Related patent applications

[0002] This application claims the benefit of priority to U.S. Provisional Patent Application No. 63 / 339,898, filed on May 9, 2022, entitled “Proactive Provision of Positioning Information Based on User Context,” and U.S. Patent Application No. 18 / 305,723, filed on April 24, 2023, entitled “Proactive Provision of Positioning Information Based on User Context,” each of which is incorporated herein by reference. Technical Field

[0003]

[0013] Embodiments described herein relate to the provision of location services. Background Art

[0004] Reactive methods of requesting location information when the app starts up can cause unreasonable delays for the user. However, current methods of providing constant location information to devices either drain the device battery or provide inaccurate location information to the user's device to avoid affecting the operation of the device. Therefore, there is a need to provide location services with more accurate location information. Summary of the invention

[0005] Embodiments described herein provide systems, non-transitory machine-readable media, and methods for providing location services. In an embodiment, a method provides: receiving at least one indication that an electronic device is en route to at least one defined location; establishing a first fence boundary for the at least one defined location; receiving an indication that the electronic device has crossed the first fence boundary and is en route to the defined location; and establishing a second fence for the defined location, wherein the second fence provides a finer-grained fence for the defined location than the first fence.

[0006] In some embodiments, the method further provides: in response to receiving at least one indication indicating that the electronic device is on the way to at least one defined location, sending a request to determine the positioning information of the electronic device using a low-power processor; in response to receiving an indication indicating that the electronic device has crossed a first fence boundary, sending a request to determine the positioning information of the electronic device using an application processor; and retrieving information about establishing a second fence for the defined location. In some embodiments, the method further provides: using at least one of a radio frequency fingerprint or a building map to establish a second fence. In some embodiments, the method further provides: in response to receiving an indication indicating that the electronic device has crossed a first fence boundary, sending a request for application data associated with the defined location; when entering a defined location with a second fence is detected, presenting an interface of an application associated with the defined location; and launching the application using the application data received from the request. In some embodiments, the method further provides: receiving at least one indication indicating that the electronic device is on the way from a data source at the electronic device; in response to receiving the at least one indication indicating that the electronic device is on the way, using a first mode to determine the positioning information, wherein the first mode includes determining the positioning information at a periodic time interval in a first performance and power state. In some embodiments, the method further provides: storing the positioning information at each periodic time interval. In some embodiments, the method further provides for determining the positioning information at periodic time intervals on the always-on low power processor. In some embodiments, the method further provides for sending a request to determine the positioning information using the second mode includes sending a request to wake up the application processor to determine the positioning information.

[0007] In an embodiment, a method provides: receiving at least one indication of a change in a location state of an electronic device from a data source accessible to the electronic device; determining a prediction of an upcoming location state based on the at least one indication and an analysis of user data accessible on the electronic device; and selecting a processor type for determining positioning information for the electronic device based on the prediction.

[0008] In some embodiments, the data source includes at least one of application data, sensor data, location history, user routine history, wireless connection status, and positioning information. In some embodiments, the method further provides that: at least one indication of the change includes detecting at least one of a threshold duration of the electronic device being en route or limited wireless connectivity of the electronic device; and based on the prediction, a location state mode for determining the positioning information of the electronic device is selected; and a periodic request for positioning information is performed according to the power capacity of the electronic device in the selected location state mode. In some embodiments, the method further provides that: a technology for determining the positioning information of the electronic device is selected based on the prediction. In some embodiments, the method further provides that: the prediction of the upcoming location state includes the en route state of the electronic device, and the method further provides that: the performance level of the technology for determining the positioning information is adjusted; and a first fence boundary for the selected mode is established for the electronic device. In some embodiments, the method further provides that: the prediction of the upcoming location state includes entering a defined location state of the electronic device, and the method further provides that: the performance level for determining the positioning information is adjusted; and a second fence for the selected mode is established for the electronic device. In some embodiments, the method provides that: a request is sent to determine the positioning information about the second processor type according to a second prediction of the change in the location state. In some embodiments, the method further provides: receiving at least one indication from a data source accessible to the electronic device indicating that the electronic device is en route; selecting a low-power processor type for determining positioning information of the electronic device; determining, based on the at least one indication, a prediction of an upcoming location state that the electronic device has crossed a fence boundary; and selecting a different processor type for determining positioning information of the electronic device based on the prediction.

[0009] In an embodiment, the method provides for: predicting a user request for historical location information of an electronic device based on an analysis of user context data; receiving at least one indication of the user's intent to request access to historical location information; performing periodic requests for location information based on a power capacity of the electronic device; receiving a request for a path to a current location at the electronic device; and presenting the received location information within a user interface in response to the request.

[0010] In some embodiments, the method further provides that the at least one indication includes detecting at least one of a threshold duration that the electronic device is in transit or a threshold limit for accessing the wireless service. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] Figure 1 is a block diagram of a network operating environment for a mobile device according to an embodiment.

[0012] Figure 2is a block diagram for location services according to an implementation scheme.

[0013] Figure 3 is a flow chart illustrating actively adjusting a mode for acquiring positioning information according to an embodiment.

[0014] Figure 4 is a flow chart illustrating active selection of a mode according to some embodiments.

[0015] Figure 5 is a timeline for location services according to an implementation.

[0016] Figure 6 is an illustration of a location service according to an implementation scheme.

[0017] Figure 7 is a flow chart for location services according to an implementation scheme.

[0018] Figure 8 is a flow chart for location services according to an implementation scheme.

[0019] Fig. 9 Depicted is a user interface for location services according to an embodiment.

[0020] FIG. 10A to FIG. 10B An illustration of a technique for determining positioning information, according to an embodiment, is depicted.

[0021] Fig.11 Depicted is a user interface for location services according to an embodiment.

[0022] Fig.12 Depicted is a user interface for location services according to an embodiment.

[0023] Fig.13 is a block diagram of a device architecture for a mobile or embedded device according to an embodiment.

[0024] Fig.14 is a block diagram of a computing system according to an embodiment.

[0025] Fig.15 is a block diagram of a computing system 1500 according to an embodiment. DETAILED DESCRIPTION

[0026] The embodiments described herein provide techniques for actively determining location information of an electronic device when an application, service, and / or location data that a user may request on an electronic device with a given location state is anticipated. Actively obtaining data is to reduce the waiting time when providing location service applications, data, and / or applications associated with a location. For example, an application associated with a defined location and / or data used by an application associated with a defined location may be obtained before entering the defined location to present the application immediately upon entry. In another example, historical location information may be actively obtained to allow a user to trace back to a certain location when the user is lost.

[0027] A location state can be a label for a user context (e.g., a set of conditions) in which specific positioning techniques and resources of an electronic device are used to obtain positioning and / or orientation information. A location state can define a current location state, a motion state, a mode of transport, and / or a prediction of a change in the location state of a user while traveling with an electronic device. For example, a location state can be "stationed" at a certain location, leaving a certain location, on the way and near one or more locations, close to entering a defined location, on the way on an unfamiliar route, and / or any other state relative to a certain location. Continuing with this example, a power saving mode, hardware (e.g., an application processor, a radio processor, a low-power processor, etc.) for requesting to execute a request, and / or a fence technology can be determined based on the detected location state to actively provide data for an application associated with the location (e.g., a cafe) or location state (e.g., an unfamiliar route when hiking). By using a technology based on the location state to actively obtain data and / or applications, the waiting time when providing information to device applications is reduced without causing a significant decrease in the performance of the electronic device, which may occur due to continuous requests for positioning information.

[0028] User context data may be analyzed to determine whether a user context exists to allow prediction of an upcoming location state and an indication from the user data that the user intends to change their location state as predicted. A source of user context data accessible on an electronic device may be analyzed to determine the current location state and the user's intention to change or maintain the current location state. Received contextual user data that provides an indication of the user's intention to change their location state as predicted may trigger a change in a corresponding location state mode for determining positioning information performed on the electronic device. Characteristics of the location state mode (e.g., the system architecture and / or device components used, the device services used, etc.) may have an expected impact on the resources of the electronic device (such as the performance level of the functionality of the electronic device) and an expected impact on battery performance. Thus, transitions between location state modes may be considered to be upgrades and / or downgrades in impact on the resources of the electronic device.

[0029] In order to actively provide positioning information, the operation of the electronic device can be considered to divide the time period (e.g., a day) into various location states, which have corresponding location state modes for determining positioning information. For example, this day can be considered to move in a series of location states: "stationed" at a certain location, on the way, at a first threshold distance from a defined location, at a second threshold distance from a defined location, just before entering a defined location. As another example, for each location state, the electronic device can optionally adjust the mode, the defined fence, and the hardware for executing the request for the location service application. The location state mode for determining positioning information can define the characteristics of the method for determining positioning information using the electronic device. The location state mode can define the technology and / or algorithm for determining the location information and / or data saved when the application is expected to be accessible to the user. In some embodiments, the location state mode can define the granularity of the technology, such as the accuracy level of the fence used to define the location. For example, the coarse-grained fence of the location can be a boundary defined by a location point and a radius from the location point to serve as the boundary of the defined location. For example, when an indication of an upcoming location state is that the user may enter a defined location and cross the boundaries of the defined location as defined with a coarse-grained fence, a finer-grained fence may be established for the defined location. Continuing with this example, a finer granularity or refinement of the initial geo-fence may be comparing the value of the electronic device to the expected value within the area of ​​the defined location.

[0030] The location state mode may also define the speed of transitioning to another location state mode.The location state mode may determine the system architecture and / or device components (eg, processor type) used to determine positioning information.

[0031] Although some embodiments may be described with respect to location state changes that trigger an upgrade or downgrade of a location state mode type (e.g., a low power mode to a higher power mode), those skilled in the art will recognize that a predicted location state change may trigger a change in any aspect of determining positioning information on an electronic device in order to proactively store data and recommend applications for execution on the electronic device.

[0032] In some embodiments, user context data can be used to predict location state changes and the user's intention to track location state changes before affecting electronic device resources. Therefore, the prediction of the appropriate location state mode for determining positioning information is associated with the prediction of location state changes. For example, user context data can determine the selection of a mode that causes an upgrade or downgrade in power usage. In another example, the mode can determine the specific processor type used to determine the positioning information, such as whether the positioning information request is executed on an application processor or on a low-power "always on" processor (AOP), or whether the device executes the request on the processor at periodic time intervals to maintain the device battery. In some embodiments, the location state mode selection may have an impact on the performance of the electronic device due to the selection of the technology used to determine the positioning information. For example, when the analysis of context user data indicates that the user may need the positioning data to be more accurate and the use of a specific GPS technology is superior to other technologies that may affect the performance of other applications on the electronic device, a global positioning system (GPS) technology can be used. The selected location state mode can rely on various technologies and sources to determine the positioning information, such as using cellular towers, motion sensors, Wi-Fi scanning, GPS, etc.

[0033] User context data can be determined using a combination of various data sources and data sources accessible on the device to determine the location state. The location state can be defined using tags including but not limited to the following: "stationary", "stationary", "on the way", "close to entering a defined location", etc. Various data sources can be analyzed to determine the user context, including but not limited to the following: sensor data, known user routines, known locations of interest, detection of vehicle entry and / or exit (e.g., loss of Bluetooth connection with the vehicle). In an embodiment, the location state mode can be adjusted based on user context data (such as time or events indicating the time interval for capturing positioning information). For example, if the user is on the way for a long time or the cell service is limited (e.g., weaker, intermittent access, etc.), potentially indicating that the user is hiking, the positioning information can be actively captured to allow the user to trace his steps. In another embodiment, the location state mode change can be an upgrade from a low power state with coarse location monitoring to a higher power state with more accurate location monitoring. Upgrading to a higher power / performance state includes positioning technology changes (such as from cellular to active Wi-Fi and GPS scanning), changes in power states, and using system capabilities to refine the fence boundary itself.

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

[0035] 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. In an embodiment, an accessory device can be paired with the mobile device 102. For example, the accessory device can be a device such as an Apple Devices such as fitness equipment, vehicles, bicycles, scooters, smart TVs, Homepods, automated assistance devices, home security systems, and / or any other mobile accessory devices. Mobile devices 102 can each be any electronic device capable of communicating with a wireless network and / or wireless accessory devices. Some exemplary mobile devices 102 include, but are not limited to, the following: smartphones, tablet computers, notebook computers, wearable devices (e.g., smart watches or other wearable computing accessories), mobile media players, personal digital assistants, Locator tags, headphones, head-mounted displays, health equipment, speakers, and other similar devices. Each mobile device 102 may optionally include a user interface, such as a 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 uses an application programming interface to access the device locator service. The third-party device may be provided by different device manufacturers or is part of a different ecosystem (e.g., operating system) from the mobile device 102. The mobile device 102 can communicate through 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) can 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, can provide communication access to the wide area network 114. Then, the gateway 116 and the access device 118 can communicate with the wide area network 114 through a combination of a wired network and / or a wireless network.

[0036] 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 with 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 "tethered" device. In one embodiment, the mobile device 102 can communicate with the accessory device via a wireless peer-to-peer connection. A wireless peer-to-peer connection (not shown) may be used to synchronize data between devices.

[0037] 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 may also be provided, including software update services for updating operating system software or client software on mobile devices. In one embodiment, instant messaging service 140, media service 150, storage service 160, and device locator service 170 may each be associated with a cloud service provider, wherein various services are facilitated via a cloud service account associated with mobile device 102.

[0038] The mobile device 102 may have applications, services, and functions that are locally accessible on the device including the location service 180. The mobile device 102 may have a device locator application (e.g., a "Find my" application) 190 to utilize the device locator service 170 and the location service 180 to locate the accessory device. Locally accessible data may be stored in defined locations, such as known locations 182 and secure trusted locations 184. In some cases, a machine learning algorithm 186 may be used to identify known locations 182 and / or trusted locations 184. 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 locations. For example, cluster data analysis may be used to identify and classify and provide semantic labels for locations, such as locations frequented by a user. The secure trusted location 184 may be explicitly specified or confirmed by the user of the mobile device 102 after data analysis. In other cases, the known location 182 or the trusted location 184 may be classified offline and provided by the device locator service 170 or a third party (e.g., a database with map information).

[0039] On-device heuristics and / or machine learning models may be used to infer relationships between a user and a location based on analysis of locally stored data about frequented locations, including locations frequently visited by the user, known locations, and / or any other locations. For example, frequently visited locations are locations such as home, vehicle, workplace, any location frequented by a user with a mobile device (e.g., accessory devices and mobile device 102), and / or any other location designated by the user as a trusted location 184. Known locations 182 may be business locations, public spaces, parks, museums, and / or any other locations that a user may frequent.

[0040] A defined location may have associated fence information that provides a set of conditions (if detected) that allow electronic devices to be specified or classified for at least a portion of the defined location relative to an area of ​​physical space. For example, fence information may provide conditions for classifying an electronic device as being inside or outside an area of ​​physical space associated with the defined location. In another example, fence information may provide conditions for classifying an electronic device as transitioning between being inside or outside an area of ​​a defined location. Fence information may be a geo-fence with boundary information for a defined location, such as a point location and a range of an area from the point location (e.g., a circular area 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., fingerprint data including radio frequency (RF) scan data (such as Wi-Fi scan traces, etc.) that are characteristics of a specific area of ​​the defined location. Fence information for a corresponding defined location may be stored along with the classification type of the location and any semantic tags assigned to the location. Boundary information may include a set of defined boundaries or radius distances around a point location to allow the creation of a fence for the location. In some embodiments, the fence is a virtual perimeter of a real-world geographic area. A global positioning system (GPS) can be used to create a virtual fence around a location and track the physical location of the mobile device 102 within the boundaries of the geo-fence and entering and leaving the bounded area. In some embodiments, there are at least two layers of fences that can be used to reduce the latency associated with geo-fences. The selection of a mode to determine intent based on analysis of user context data can determine the granularity of the fence established. In some embodiments, multiple fences can be used to refine the location information determined by the coarse-grained geo-fence.

[0041] 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). For example, a user context may indicate the movement or travel of an electronic device to allow the electronic device to be designated as having a location state, such as "on the way", "stationed" at a specific defined location for a period of time, or any other defined location state. The analysis may be performed using various signals from a contextual user data source available to the mobile device 102, including but not limited to the following: sensor data, positioning data, calendar data, transportation card usage data, application data, historical data about 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 an embodiment, the wireless connection status with various devices may indicate that the device is stationed or "on the way". 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 "on the way".

[0042] In some embodiments, the mobile device 102 may be classified with a "stationary" 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 an example, the received positioning data of the mobile device 102 may indicate that the electronic device 102 remains within the boundaries of a fence at a specific location for a 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 in a stationary state. Application data may support an inference that the mobile device 102 is in a stationary state, such as the mobile device being at a calendar appointment location. Application data indicating the type of application in use may also provide an inference of a device in a stationary state, such as using a media application. Historical data about a user's routines or patterns while traveling can be used to determine whether the mobile device 102 is stationary, such as a bedtime routine at a home or hotel location.

[0043] The mobile device 102 may be classified as having an "in transit" label based on previously detected behavior, patterns, or routines of the user and analyzed on the mobile device 102. For example, a user may have a routine of going to work at approximately the same time each day, and if the data on the device supports a repeating pattern, an "in transit" status may be assigned. The speed at which a mobile device moves or enters and leaves a known geographic area (e.g., using a fence) may allow for an inference that the mobile device 102 is in transit. If the mobile device 102 is detected as accelerating in a known traffic area (e.g., on a road, highway, train route, etc.), the mobile device 102 may be given an "in transit" location status. Similarly, if a traffic app / card is used / in use, the mobile device 102 may be designated as "in transit."

[0044] The mobile device 102 may be classified as “threshold distance,” “near entry,” “near exit,” “enter,” and / or “exit” of a particular location or set of locations based on crossing a fence boundary of the respective location or set of locations and / or detecting a pattern of sensor values ​​indicative of being in a location (such as a Wi-Fi scan result indicative of being inside a location or transitioning into a location).

[0045] Figure 2 is a block diagram for a location service according to an embodiment. Location service 180 may include an event monitor module 264 (e.g., a fence event monitor, a location state monitor, a sensor monitor, etc.) that may help determine when characteristics of a location state pattern should be adjusted to determine positioning information. Event monitor module 264 may rely on data from a contextual user data source to serve as a hint of user context using heuristics and / or machine learning algorithms 186 to help determine the user context that triggers the location state pattern adjustment.

[0046] In some embodiments, the event monitor module 264 can use data to determine adjustments to the location state mode that can affect the power or performance of the operation of the electronic device. For example, the mobile device 102 can be designated as an "on the way" state using the machine learning algorithm 186, and the wireless connection state data can indicate that the Bluetooth connection between the mobile device 102 and an accessory device (such as a vehicle entertainment system) is lost. Continuing with this example, the event monitor module 264 can determine from one or more contextual user data sources that there is at least one indication that there will be a change in the location state of the mobile device 102, such as the mobile device 102 may be on the way to a defined location. User context data (such as crossing a fence boundary, leaving a vehicle, leaving a transfer station, user routines, sensor data, etc.) can be analyzed to predict that the electronic device is at a threshold distance from a defined location and that the location state mode of the electronic device should be adjusted. The access monitor module 270 can use the event monitor 264, the fence information 290, and the entry detection module 266 to accurately detect entry into a defined location and reduce the waiting time for providing positioning information. 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 monitor module 270 can retrieve the fence information 290 to define a more precise boundary of the defined location. In another embodiment, the access monitor module 270 can retrieve expected sensor data (e.g., fingerprint data) characteristics of the electronic device 102 having the location state.

[0047] Proactive services 268 may be used to predict what applications and / or services a user may want to access, given a user context and 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 a location based on a user's history of application selections, or suggest new applications associated with a particular defined location. In an embodiment, proactive services 268 may adjust the rate of periodic requests for determining location information.

[0048] In some embodiments, Figures 3 to 11 The electronic device 102 is as follows Figure 1 to Figure 2 A mobile device 102 is described.

[0049] Figure 3 300 is a flowchart illustrating the active adjustment of the location state mode and the corresponding resources (e.g., the processor used, the power state, etc.) of the electronic device used to obtain positioning information according to an embodiment. Initially, in some embodiments, the electronic device 102 may start from a "stationed" location state (301). When the electronic device has a "stationed" location state, the electronic device 102 may be in a static state, and the electronic device may not send a request for positioning information, or may use AOP to periodically request positioning information to maintain the resources (e.g., power) of the electronic device 102. In some embodiments, the positioning information request may be executed as a process executed in the background on the electronic device 102 without user intervention.

[0050] The electronic device 102 receives at least one indication indicating a user's intent to change their location status (302). The indication of the intent may be obtained from any contextual user data source accessible to the electronic device 102. The event monitor module 264 may analyze the contextual user data (e.g., application data, sensor data, device location history, wireless or wired connection status with accessory devices and / or services, and / or any other accessible data source) to determine whether there is an indication indicating a user's intent to change their location status.

[0051] In response to receiving the at least one indication, the electronic device 102 determines a prediction of the location state (303). The location state can be a label assigned to a user context related to the location. Heuristics and / or machine learning algorithms 186 can be used to form a prediction of the location state, which includes but is not limited to: en route, stationary, near at least one defined location (e.g., a trusted or known location, etc.), at a defined location, entering a defined location, leaving a known location, venturing off a planned path within a map application, hiking, extending the duration of travel, and / or any other label used to describe a location or relocate to a location. In some embodiments, the prediction of the location state is determined before receiving an indication indicating an intention to change the location state.

[0052] The electronic device 102 selects a location state mode and a corresponding processor type (304) for determining the location information of the electronic device. The location state mode may optionally define a power state, a technology, a time period of the mode, device hardware, an algorithm, a time period for transitioning to another mode, and / or any other characteristics for determining the location information. The location state mode may be a low-power mode for determining the location of the electronic device, which depends on the specific hardware of the electronic device, such as an AOP and / or a radio processor. The processor type may be selected based on the location state. When the indication indicating the user's intention is to enter a defined location, the selected processor type may be adjusted from a low-power processor to an application processor. For example, if the indication is that the electronic device is at a defined location threshold distance, the electronic device crosses a fence of a defined location, a wireless connection with a vehicle, and / or the user routinely enters a specific defined location, the AP may be used to determine the location information.

[0053] The location state mode may define additional resources used by the electronic device 102 to service positioning requests, such as whether to use Wi-Fi scanning and / or cellular tower data when calculating the positioning information of the electronic device 102. The technology used to determine the positioning information may be selected based on the performance level expected for determining the positioning of the electronic device 102 and the resources available to the electronic device 102. The resources accessible to the electronic device may include, but are not limited to, the following: the processor type of the electronic device 102, the battery life, the access to the cell or Wi-Fi service, and / or any other characteristics. For example, the low power mode may use a low power processor (e.g., an always-on low power processor) if available in the electronic device 102. In other embodiments, the frequency of requests for positioning information may be changed to reduce the strain or impact on the performance of the functionality of the electronic device.

[0054] The location state mode may indicate the performance of adjusting the technology used to determine the location information. Optional steps 305 to 307 provide examples of determining positioning information according to the selected location state mode. The electronic device 102 may request a duty cycle (305) of requests for positioning information at periodic time intervals according to the location state mode. The selected periodic time interval may depend on the resources of the electronic device (e.g., power, Wi-Fi access, cell service, etc.) and the predicted location state. For example, when the positioning information data may be useful for an application (such as a map application) that is actively suggested, the positioning information may be requested more frequently (e.g., at short time intervals). In another example, the periodic time interval may be selected to maintain power when the location state prediction is that the electronic device may be on the way for an extended period of time and the positioning information can be used to enable the user to retrace their path.

[0055] The electronic device may adjust the performance level of the technology used to determine the location information (306). For example, the performance level of the technology may depend on the resources or services that the location information relies on, such as motion sensors, cellular data, active Wi-Fi, and GPS scanning. The granularity of the fence defined for the location may be adjusted or refined (307). For example, when an indication of an upcoming location state is that the user is likely to enter a defined location, a finer-grained fence may be established for the defined location. For example, a coarse-grained fence for a location can be a boundary defined by a location point and a radius from the location point to serve as a boundary for the defined location. Continuing with this example, a finer granularity or refinement of the initial geo-fence can be comparing the value of the electronic device 102 with the expected value in the area of ​​the defined location. The process can be repeated for further analysis (302).

[0056] Figure 4400 is a flowchart illustrating active selection of a location status mode according to some embodiments. In this example, the type of processor used to execute a request for positioning information and the granularity of the fence established can be adjusted as the location status mode changes. The electronic device 102 receives at least one intent indication from contextual user data indicating that the user's electronic device 102 is en route (401). Any number of contextual user data sources can be used to predict that an electronic device has a location status of "en route". For example, if a sensor (such as an accelerometer and / or gyroscope) detects movement and / or speed of the electronic device, the electronic device can be designated as "en route". In addition to positioning information, analysis of contextual data sources can allow prediction of the location status of a user on the way to at least one defined location. For example, establishing or losing a wireless connection with a vehicle and / or appliance can be an indication used to predict that the electronic device is "en route" in addition to other information combined with other data sources accessible on the electronic device. In another example, analysis of application data (such as calendar or map data) can be combined with a predicted intent that the user is on the way to at least one defined location. Figure 1 To.

[0057] In response to receiving at least one indication that the electronic device is en route, the electronic device 102 may determine positioning information using a first location state mode (402). The first location state mode in which the electronic device 102 is en route may obtain positioning information to determine whether the user intends to enter a defined location. In the first location state mode, if the device has a low-power processor, the low-power processor (e.g., AOP) may be used to determine positioning information (e.g., GPS). In some embodiments, depending on the resources available to the electronic device 102, the time interval for requesting positioning information using the AP may be adjusted to be more frequent than in the stationary location state.

[0058] If the electronic device 102 has been moved to within a first threshold distance of at least one defined location, the electronic device 102 may establish a coarse-grained fence (403). A coarse-grained fence may be a defined boundary around one or more locations having a circumference or radius to create a circular geo-fence around a set of defined locations or within a rough range around a defined location. For example, a coarse-grained fence may establish a boundary around a shopping mall, a set of office buildings, a university, a park, and / or any other set of defined locations. In another example, a coarse-grained fence may establish an imprecise boundary around a specific defined location.

[0059] The electronic device 102 may receive at least one indication of intent from the contextual user data indicating that the user's electronic device 102 is on the way to a defined location (404). Analysis of the contextual data and the received positioning information may indicate that the user's intent is to enter a specific defined location. For example, sensor data, application data, and / or user routine data may indicate the user's intent to enter a defined location. Optionally, the electronic device 102 may adjust the time interval for sending requests to determine positioning information in a second location state mode (404). In some embodiments, the time interval for requesting positioning information using the AP may be adjusted, such as more frequent requests depending on the resources available to the electronic device 102. When the user approaches a defined location, the performance level of the positioning technology may optionally be adjusted.

[0060] The electronic device 102 may receive an indication that the electronic device 102 has moved a second threshold distance from entering the defined location (405). In some embodiments, the boundary of the first coarse-grained fence may be crossed, and a finer-grained fence boundary may be established or reference fence information of the fingerprint data may be retrieved for comparison with the sensor data of the electronic device 102. For example, if a finer-grained fence boundary is crossed, the crossing of the finer-grained fence boundary may be used to assume that the defined location has been entered, and the electronic device may actively store the data on the electronic device 102 and suggest a service. In another example, the sensor data received at the electronic device 102 may be compared with the reference fence information for the expected value in the area of ​​the defined location. If the received sensor value (e.g., RSSI value) of the electronic device 102 characterizes that the electronic device 102 is in the area of ​​the defined location (e.g., in the defined location or entering the defined location), it may be assumed that entry has occurred. Other indications of intent for entering the defined location may be determined based on the user context data, such as losing a wireless connection with the vehicle, leaving a transit station or vehicle, and / or establishing a Wi-Fi connection with an access point near or in the defined location.

[0061] Optionally, the electronic device 102 may send a request to adjust the time interval at which requests are sent in order to determine the location in the third location state mode (406). If the analysis of the user context data indicates that the user's intention is to remain "stationed" at a defined location, the electronic device 102 may determine the location information in the third location state mode. For example, the time interval for sending requests may be increased (e.g., to sending requests every 15 minutes). When it is detected that the electronic device 102 is leaving the defined location, the process may be repeated at (401).

[0062] Figure 55 is a timeline for location services according to an embodiment. Upon entering 502 a location 504, an electronic device may be detected 526 and the electronic device may be in a stationary state for determining positioning information. In the stationary state, the frequency of requests for positioning information may be reduced, or requests for positioning information may not be performed at all until the device leaves the location. Leaving the location 506 may be detected 528.

[0063] When the electronic device is on the way 508, the electronic device may use the low power processor 518 to periodically request positioning information at defined time intervals. In some embodiments, the low power mode may request to monitor a first set of fence boundaries 522 for one or more defined locations when the electronic device is on the way. Since data from one or more user context data sources provide an indication that a user with an electronic device is predicted to be traveling toward a location, the granularity of the fence boundaries may change from coarse granularity to gradually fine granularity for the defined locations. For example, the first fence boundary around one or more defined locations may be defined with a center point and a radius from the defined center point. The finer granularity of the positioning information used to determine the defined location can also be further refined by comparing the sensor value of the electronic device 102 with a reference sensor value (e.g., RSSI value) that characterizes the electronic device in an area of ​​the defined location.

[0064] As the electronic device 102 moves closer to a specific location from one or more defined locations, the granularity of the fence can become finer or more refined. As shown, when it is detected that the electronic device is within the threshold of entering a specific location 509, a finer fence boundary can be monitored for the electronic device. For example, a polygonal geo-fence boundary that is more similar to the boundary of a building and / or a plot of land at a defined location can be used. The polygonal geo-fence boundary can be determined based on a known building map. In another embodiment, the fingerprint characteristics of a defined location can be used to determine the geo-fence boundary of a defined location. Fingerprint is a radio frequency (RF) technology (e.g., Wi-fi, Bluetooth, etc.). The RSSI measurement result from a wireless access point is recorded by the electronic device as a characteristic of the location. In some embodiments, the fingerprint can be used as a reference to determine whether another electronic device is close to or away from a defined location or a defined location area.

[0065] Similarly, a second mode for determining positioning information may be initiated for the electronic device 516. The mode for determining positioning information may be upgraded or downgraded by adjusting the power consumed by the electronic device and the impact on performance to determine the positioning information. As shown, when it is expected that more accurate positioning information is needed when entering 510 a location 512, a more fine-grained fence 515 and a request to wake up an application processor (AP) 518 are used to upgrade the first mode.

[0066] When the electronic device is stationed in position 512 , the mode may be downgraded to a stationary state 520 until it is detected that the electronic device leaves position 514 .

[0067] Figure 6 600 for location services according to an embodiment. As shown in the diagram 600, each location state mode 601 is for a predicted location state 602, potential hardware 603 to be used for the location state mode 601 and a technique 604. In mode 1, for the "stationary state" mode represented in row 606, the predicted location state 602 is that the electronic device is stationary in a defined location, and a periodic request technique 604 is performed for determining positioning information (e.g., GPS) at power saving time intervals executed on the hardware 603, such as an executable application processor (AP) or an always-on low-power processor (AOP).

[0068] In mode 2, for the "detected movement" mode represented in row 608, the predicted location state 602 of the electronic device 102 is that the user is leaving a defined location and / or in transit, as determined based on the user context data. Depending on the characteristics of the electronic device 102, a coarse-grained fence technique 604 is established and the AP or AOP 603 is used to determine the positioning information.

[0069] In mode 3, in the "out of location" mode represented in row 610, the predicted location state 602 is that the electronic device is en route to one or more defined locations, and a technique 604 for periodically requesting location information (e.g., GPS) at power saving time intervals may be executed on hardware 603 (such as, on the AOP). A coarse-grained fence technique 604 is established.

[0070] In Mode 4, the "Threshold Distance" mode represented in row 612, the predicted location state 602 is that the electronic device is close to one or more defined locations, and the technique 604 for requesting positioning information may include establishing a coarse-grained fence.

[0071] In mode 5, in the “Proximity into a defined location” mode represented in row 614, the predicted location state 602 is that the electronic device is close to entering a defined location, and a finer-grained fencing technique 604 is established using fencing information about building map data and / or reference sensor data (e.g., RSSI values ​​expected for entering the location).

[0072] In mode 6, in the "Event or Enroute Threshold Time Period" mode represented in row 616, the predicted location state 602 is that the electronic device will be enroute for a longer duration and / or will have limited service capabilities (e.g., Wi-Fi, cellular service, etc.), and technology 604 for periodically requesting positioning information (e.g., GPS) at power saving time intervals may be executed on hardware 603 (such as, on an AOP).

[0073] Figure 7 700 is a flow chart for location services according to an embodiment. Optionally, the electronic device 102 may receive an indication that the electronic device 102 is "stationed" at a known location. In some embodiments, the electronic device 102 may be in a stationary state and may minimize requests for positioning information to maintain power and provide nearly full processing power for applications and services executed on the electronic device 102.

[0074] The electronic device may receive an indication of the location state of the electronic device 102 (704). The indication of a potential upcoming location change may be triggered by any number of data sources that help determine the user's intent based on user context data. For example, sensor data, wireless connections to vehicle systems, use of transit cards, and the like may be used to infer the device's "on the way" intent. Analysis may be performed on data sources accessible on the electronic device to form a prediction of the location state. The following forms of user context data may be used to predict the location state: application data (e.g., calendar data, map application data), historical data about user routines, crossing fences at defined locations while the electronic device 102 is on the way, and the like.

[0075] Upon receiving an indication of a location state (706), the electronic device 102 may determine which type of fence to establish. If the electronic device is predicted to be en route based on the indication of the location state (706), a first coarse-grained fence (708) is established during the en route period when the electronic device 102 approaches one or more defined locations. The first coarse-grained fence may be established using a predefined radius and perimeter of an area defined by an application developer. A coarse-grained fence may be defined to cover one or more defined locations. Optionally, the electronic device 102 may utilize a low-power processor (such as an AOP or a radio processor) to determine positioning information (710). In some embodiments, positioning information may be requested in the background to allow a user to retrace their path in a mapping and / or navigation application.

[0076] In an embodiment, when a coarse-grained fence of a defined location is crossed, application data and / or location data may be preloaded in anticipation that a user may request the application. For example, relevant application data may be retrieved for applications that are relevant to a defined location, a type of defined location, and / or that have been historically used by a user at a defined location.

[0077] continue Figure 7 , if the electronic device is predicted to be close to the defined location (706), then based on the map data and / or reference data of expected sensor values ​​characterizing the area of ​​the defined location (e.g., the entrance), the fence information of the boundary is used to establish a finer-grained fence (712). In this case, the electronic device may have crossed the first coarse-grained fence, and the indication when analyzing the user context data is that the user intends to enter the defined location. Using the finer-grained fence information, it can be known that a specific area of ​​the defined location has been entered, and application information related to the area of ​​the defined location can be retrieved. For example, if an enterprise has applications or application data related to a specific area of ​​the enterprise, the data can be retrieved, such as a coffee shop at one end of a grocery store may have different applications than a bakery in another area. Optionally, when the electronic device 102 crosses the first geo-fence boundary, a request can be sent to wake up the AP to determine the positioning information (e.g., GPS) of the electronic device 102.

[0078] If the electronic device does not detect entry into a defined location (716), the process repeats to determine whether the electronic device is en route or approaching a defined location (706). Alternatively, if the electronic device detects entry into a defined location (716) and does not subsequently leave a known location (718), the electronic device 102 may proactively suggest services and / or applications (720). The defined location may be used as a basis for the type of service or application suggested to the user. For example, a client application for a museum or a business may be recommended upon entering a defined location. In some embodiments, historical data accessible on the electronic device may indicate an application or service that the user has recently used in a defined location. A database may store applications or services that may be preloaded when the electronic device is within a threshold distance from a defined location and / or suggested after entering a defined location.

[0079] Figure 8800 is a flowchart for location services according to an embodiment. In some embodiments, the location service may proactively obtain location information in anticipation that a user may request 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 recently taken path or transportation route to allow the user to retrace their path. In some embodiments, contextual user data is analyzed to determine whether the user is likely to 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 the user's most recent location information while en route is not part of the user's routine.

[0080] The electronic device 102 may receive at least one indication of a user's intent to request access to historical location information (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 being located on a path where access to services (e.g., cellular service, loss of power) is reduced. Certain activities or events indicated by contextual user data (e.g., application data) may be used as predictors of the need to access historical location information and potentially 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 the routine, such as leaving the vehicle at a parking lot near an amusement park, a hiking area, a skiing area, and / or any other remote location.

[0081] Upon receiving an indication that the user intends to use a location state that allows a route to be traced, the electronic device 102 may request that periodic requests for location information be sent based on the power capabilities of the device (803). A coarse-grained geo-fence may be established where defined locations (e.g., ski lodges, national park offices, etc.) are found along the route for detection to obtain location information for the user en route. In some embodiments, an 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 user request (804).

[0082] 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 when access to services (such as wireless connectivity or cellular service) is restored, the location information may be deleted.

[0083] Fig. 9 A user interface 900 for location services according to an embodiment is depicted. A navigation application 220 is depicted with icons representing the location of a user's vehicle 904, waypoints 906, and paths that the user has taken 902. Waypoints 906 and the user's vehicle 904 location may mark places of particular interest to the user and are depicted with icons or markers as relative locations to the user's current location.

[0084] Fig. 10A A diagram 1000 depicts a technique for determining positioning information according to an embodiment. Fig. 10A As shown in FIG. 1 , a first geo-fence coarse boundary 1002 is established for an electronic device. The electronic device is depicted as moving from a first position 1004 to a second position 1008 closer to a building 1006. When the electronic device moves within a threshold distance from the building 1006, a more fine-grained second geo-fence boundary 1003 is established.

[0085] Fig. 10B Diagram 1001 depicts a technique for determining positioning information according to an embodiment. Fig. 10B As shown in , a second geo-fence boundary having a polygonal shape is established, which allows detection of electronic devices entering the building 1006.

[0086] Fig.11 A user interface 1100 for location services according to an embodiment is depicted. When an electronic device 102 is detected to be within a threshold distance of a defined location, client application or service suggestions 1102 may be displayed on the user interface 1100. As previously described with respect to Figure 7 As indicated, an application having an application name displayed in user interface element 1106 may be selected by a user to obtain more information, and the application or service may be accessed using user interface element 1106. Applications or services 1106 having corresponding icons 1108 may be accessed in any number of ways, such as, but not limited to, opening an application stored locally on the electronic device, accessing an accessible application / service remotely from the electronic device, downloading an application, and / or any combination thereof.

[0087] Fig.12 Depicted is a user interface 1200 for location services according to an embodiment. Figure 8 As indicated, if the user context indicates that the user may need to know the path of travel, the location information may be actively stored at periodic intervals. In user interface 1200, the paths that the user has taken are displayed on a map 1204, and user interface element 1202 is displayed to allow the user to request more of their location history.

[0088] Fig.13is a block diagram illustrating an exemplary API architecture that may be used in some embodiments of the present invention. Fig.13 As shown in , the API architecture 1300 includes an API implementation component 1310 (e.g., an operating system, library, device driver, API, application, software, or other module) that implements an API 1320. The API 1320 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 1330. The API 1320 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 1330 (e.g., an operating system, library, device driver, API, application, software, or other module) makes an API call through the API 1320 to access and use the features of the API implementation component 1310 specified by the API 1320. The API implementation component 1310 may return a value to the API calling component 1330 through the API 1320 in response to the API call.

[0089] It should be understood that the API implementation component 1310 may include additional functions, methods, classes, data structures, and / or other features that are not specified by the API 1320 and are not available to the API calling component 1330. It should be understood that the API calling component 1330 may be on the same system as the API implementation component 1310, or may be located remotely and access the API implementation component 1310 using the API 1320 over a network. Fig.13 A single API calling component 1330 is shown interacting with API 1320 , but it should be understood that other API calling components written in a different language than API calling component 1330 (or the same language) may use API 1320 .

[0090] The API implementation component 1310, API 1320, and API calling component 1330 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, a machine-readable medium includes a disk, an optical disk, a random access memory, a read-only memory, a flash memory device, etc.

[0091] Fig.141 is a block diagram of a device architecture 1400 for a mobile or embedded device according to an embodiment. The device architecture 1400 includes a memory interface 1402, a processing system 1404 including one or more data processors, an image processor and / or a graphics processing unit, and a peripheral device interface 1406. The various components may be coupled via one or more communication buses or signal lines. The various components may be separate logic components or devices or may be integrated in one or more integrated circuits, such as a system-on-chip integrated circuit.

[0092] The memory interface 1402 may be coupled to a memory 1450, 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.).

[0093] Sensors, devices and subsystems may be coupled to the peripheral device interface 1406 to facilitate multiple functions. For example, motion sensors 1410, light sensors 1412 and proximity sensors 1414 may be coupled to the peripheral device interface 1406 to facilitate mobile device functions. One or more biometric sensors 1415 may also be present, such as a fingerprint scanner for fingerprint identification or an image sensor for facial recognition. Other sensors 1416 may also be connected to the peripheral device interface 1406, such as a positioning system (e.g., a GPS receiver), a temperature sensor, or other sensing devices to facilitate related functions. In an embodiment, the positioning system may have a radio processor (e.g., a GPS processor) that is capable of solving navigation equations to determine user position, speed and / or time by processing the broadcasted signals. Camera subsystem 1420 and optical sensors 1422 (e.g., 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.

[0094] Communication functions may be facilitated by one or more wireless communication subsystems 1424, 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 1424 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 1400 may include a wireless communication subsystem 1424 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 1424 may provide a communication mechanism in which a media playback application may retrieve resources from a remote media server or retrieve scheduled events from a remote calendar or event server.

[0095] The audio subsystem 1426 may be coupled to a speaker 1428 and a microphone 1430 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 1426 may be a high-quality audio system including support for virtual surround sound.

[0096] I / O subsystem 1440 may include touch screen controller 1442 and / or other input controllers 1445. For computing devices that include a display device, touch screen controller 1442 may be coupled to touch-sensitive display system 1446 (e.g., touch screen). Touch-sensitive display system 1446 and touch screen controller 1442 may detect contact and movement and / 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 touch-sensitive display system 1446. Display output of touch-sensitive display system 1446 may be generated by display controller 1443. In one embodiment, display controller 1443 may provide frame data to touch-sensitive display system 1446 at a variable frame rate.

[0097] In one embodiment, a sensor controller 1444 is included to monitor, control, and / or process data received from one or more of the motion sensor 1410, light sensor 1412, proximity sensor 1414, or other sensor 1416. The sensor controller 1444 may include logic to interpret the sensor data to determine the occurrence of one or more of a motion event or activity by analyzing the sensor data from the sensors.

[0098] In one embodiment, the I / O subsystem 1440 includes other input controllers 1445 that may be coupled to other input / control devices 1448 such as one or more buttons, rocker switches, a thumb wheel, an infrared port, a USB port, and / or a pointer device such as a stylus, or control devices such as up / down buttons for volume controls for the speaker 1428 and / or microphone 1430.

[0099] In one embodiment, memory 1450 coupled to memory interface 1402 may store instructions for an operating system 1452, including portable operating system interface (POSIX) compliant and non-compliant operating systems or embedded operating systems. Operating system 1452 may include instructions for handling basic system services and for performing hardware-related tasks. In some implementations, operating system 1452 may be a kernel.

[0100] Memory 1450 may also store communication instructions 1454 to facilitate communication with one or more additional devices, one or more computers and / or one or more servers, such as retrieving network resources from a remote network server. Memory 1450 may also include user interface instructions 1456, including graphical user interface instructions that facilitate graphical user interface processing.

[0101] In addition, the memory 1450 may store sensor processing instructions 1458 that facilitate sensor-related processing and functions; phone instructions 1460 that facilitate phone-related processes and functions; instant messaging instructions 1462 that facilitate electronic messaging-related processes and functions; web browser instructions 1464 that facilitate web browsing-related processes and functions; media processing instructions 1466 that facilitate media processing-related processes and functions; location service instructions that facilitate location-based functions, including GPS and / or navigation instructions 1468 and Wi-Fi-based location instructions; camera instructions 1470 that facilitate camera-related processes and functions; and / or other software instructions 1472 that facilitate other processes and functions, such as security processes and functions and system-related processes and functions. The memory 1450 may also store other software instructions, such as web video instructions that facilitate web video-related processes and functions; and / or web shopping instructions that facilitate web shopping-related processes and functions. In some specific implementations, the media processing instructions 1466 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 equipment identifier, such as an International Mobile Equipment Identity (IMEI) 1474 or similar hardware identifier may also be stored in memory 1450 .

[0102] 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 1450 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.

[0103] Fig.15It is a block diagram of a computing system 1500 according to an embodiment. The computer system 1500 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. Computing system 1500 can be used to provide a computing device and / or a server device that a computing device may be connected to.

[0104] The computing system 1500 includes a bus 1535 or other communication device for conveying information, and a processor 1510 that can process information coupled to the bus 1535. Although the computing system 1500 is shown as having a single processor, the computing system 1500 may include multiple processors, low-power processors, and / or coprocessors. The computing system 1500 may also include a memory 1520 in the form of a random access memory (RAM) or other dynamic storage device coupled to the bus 1535. The memory 1520 may store information and instructions that can be executed by the processor 1510. In an embodiment, the memory 1420 may store instructions that can be executed by a low-power processor 1415 (such as an AOP). In an embodiment, the low-power processor 1415 may be a component of a system on a chip (SOC) that remains powered on 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 1520 may also be a main memory used to store temporary variables or other intermediate information during execution of instructions by the processor 1510 .

[0105] The computing system 1500 may also include a read-only memory (ROM) 1530 and / or another data storage device 1540 coupled to the bus 1535 that may store information and instructions for the processor 1510. The data storage device 1540 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 1500 via the bus 1535 or via a remote peripheral interface.

[0106] The computing system 1500 may also be coupled to a display device 1550 via bus 1535 to display information to a user. The computing system 1500 may also include an alphanumeric input device 1560, which includes alphanumeric and other keys, which may be coupled to bus 1535 to communicate information and command selections to the processor 1510. Another type of user input device includes a cursor control 1570 device, such as a touch pad, mouse, trackball, or cursor direction keys, for communicating direction information and command selections to the processor 1510 and controlling cursor movement on the display device 1550. The computing system 1500 may also receive user input from a communicatively coupled remote device via one or more network interfaces 1580.

[0107] The computing system 1500 may also include one or more network interfaces 1580 to provide access to a network, such as a local area network. The network interface 1580 may include, for example, a wireless network interface having an antenna 1585, which may represent one or more antennas. The computing system 1500 may include multiple wireless network interfaces, such as Wi-Fi, A combination of near field communication (NFC) and / or a cellular phone interface. Network interface 1580 may also include, for example, a wired network interface to communicate with a remote device via a network cable 1587, which may be, for example, an Ethernet cable, a coaxial cable, a fiber optic cable, a serial cable, or a parallel cable.

[0108] In one embodiment, the network interface 1580 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 1580 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.

[0109] The computing system 1500 may also include one or more energy sources 1505 and one or more energy measurement systems 1545. The energy source 1505 may include an AC / DC adapter coupled to an external power source, one or more batteries, one or more charge storage devices, a USB charger, or other energy source. The energy measurement system includes at least one voltage or current measurement device that can measure the energy consumed by the computing system 1500 during a predetermined time period. In addition, one or more energy measurement systems may be included that 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.

[0110] When utilizing various aspects of the embodiments, it will become apparent to those skilled in the art that combinations or variations of the above embodiments are possible. Although the embodiments are 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. Instead, the specific features and acts disclosed should be understood as embodiments of the claims for purposes of illustration.

Claims

1. A method, comprising: receiving at least one indication that the electronic device is en route to at least one defined location; establishing a first fence boundary for the at least one defined location; receiving an indication that the electronic device has crossed the first fence boundary and is en route to a defined location; as well as A second fence is established for the defined location, wherein the second fence provides a finer-grained fence for the defined location than the first fence.

2. The method according to claim 1, further comprising: in response to receiving at least one indication that the electronic device is en route to the at least one defined location, sending a request to determine location information for the electronic device using a low-power processor; In response to receiving the indication that the electronic device has crossed the first fence boundary, sending a request to determine location information of the electronic device using an application processor; as well as Information about establishing the second fence for the defined location is retrieved.

3. The method according to claim 2, further comprising: The second fence is established using at least one of a radio frequency fingerprint or a building map.

4. The method according to claim 2, further comprising: in response to receiving the indication that the electronic device has crossed the first fence boundary, sending a request for application data associated with the defined location; When entering the defined location having the second fence is detected, presenting an interface of an application associated with the defined location; as well as The application is launched using the application data received from the request.

5. The method according to claim 1, further comprising: receiving, at the electronic device, from a data source, at least one indication that the electronic device is en route; In response to receiving the at least one indication that the electronic device is en route, determining positioning information using a first mode, wherein the first mode includes determining positioning information at periodic time intervals in a first performance and power state.

6. The method according to claim 5, further comprising: The positioning information is stored at each periodic time interval.

7. The method of claim 2, wherein the first mode comprises: Positioning information is determined at periodic intervals on an always-on low-power processor.

8. The method of claim 2, wherein sending a request to determine positioning information using a second mode comprises: Sends a request to wake up the application processor to determine location information.

9. A method comprising: receiving at least one indication of a change in a location state of the electronic device from a data source accessible to the electronic device; determining a prediction of an upcoming location state based on the at least one indication and an analysis of user data accessible on the electronic device; as well as A processor type for determining location information for the electronic device is selected based on the prediction.

10. The method of claim 9, wherein the data source comprises at least one of application data, sensor data, location history, user routine history, wireless connection status, and positioning information.

11. The method of claim 9, wherein the at least one indication of the change comprises at least one of detecting a threshold duration of the electronic device being en route or limited wireless connectivity of the electronic device, the method further comprising: selecting a location state mode for determining location information of the electronic device based on the prediction; as well as The periodic request for positioning information is performed according to the power capacity of the electronic device in the selected location status mode.

12. The method according to claim 9, further comprising: A technique for determining location information for the electronic device is selected based on the prediction.

13. The method of claim 9, wherein the prediction of the upcoming location state comprises an in-transit state of the electronic device, and the method further comprises: Adjust the performance level of the technology used to determine location information; as well as A first fence boundary is established for the electronic device for the selected mode.

14. The method of claim 9, wherein the prediction of the upcoming location state comprises entering a defined location state of the electronic device, and the method further comprises: adjusting said performance level for determining positioning information; as well as A second fence for the selected mode is established for the electronic device.

15. The method according to claim 9, further comprising: A request is sent to determine location information for a second processor type based on a second prediction of a change in location state.

16. The method according to claim 9, further comprising: receiving at least one indication from a data source accessible to the electronic device that the electronic device is en route; selecting a low-power processor type for determining location information of the electronic device; determining, based on the at least one indication, that the prediction of an upcoming location state is that the electronic device has crossed a fence boundary; as well as A different processor type is selected based on the prediction for use in determining location information for the electronic device.

17. A method comprising: predicting a user request for historical location information of an electronic device based on an analysis of user context data; receiving at least one indication of the user's intent to request access to historical location information; performing periodic requests for positioning information according to a power capability of the electronic device; receiving, at the electronic device, a request for a route to a current location; as well as The received positioning information is presented within a user interface in response to the request.

18. The method of claim 17, wherein the at least one indication comprises at least one of detecting a threshold duration that the electronic device is in transit or a threshold limit for accessing a wireless service.