Providing, organizing, and managing location history of mobile devices

By generating and managing location history on mobile devices, the problems of redundant location determination and insufficient privacy protection are solved, resulting in reduced processor load and enhanced user experience.

CN114387034BActive Publication Date: 2026-05-05QUALCOMM INC
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
QUALCOMM INC
Filing Date
2016-06-13
Publication Date
2026-05-05

AI Technical Summary

Technical Problem

Existing location data processing methods for mobile devices suffer from problems such as high redundancy in location determination, heavy processor load, and insufficient protection of user privacy.

Method used

The mobile device's processor generates location history, including points of interest and duration, receives information requests from applications, identifies a subset of location history that meets criteria, and provides relevant information based on permission levels. It utilizes low-power cores to track location history, dynamically adjusts the detail and granularity of information disclosure, and changes the permission model of mobile applications.

Benefits of technology

It reduces the redundant location determination requirements of the processor, increases the processor's flexibility, enhances user privacy protection, and provides a more customized application experience and more refined utilization of location history information.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114387034B_ABST
    Figure CN114387034B_ABST
Patent Text Reader

Abstract

This invention discloses a method and system for providing information associated with the location history of a mobile device to one or more applications. The mobile device generates one or more location history records based on one or more locations of the mobile device, each location history record including one or more points of interest and the duration at said one or more points of interest; receives an information request from at least one application; determines a subset of the one or more location history records that satisfies criteria from the information request; determines a permission level of the at least one application based on the information request and the subset of the one or more location history records; and provides information associated with the subset of the one or more location history records to the at least one application based on the permission level.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the invention patent application entitled "Providing, organizing and managing the location history of a mobile device" filed on June 13, 2016, with application number 201680036184.4 (international application number PCT / US2016 / 037157). Technical Field

[0002] The aspects revealed in this article typically involve providing, organizing, and managing the location history of mobile devices. Background Technology

[0003] Some mobile devices (e.g., smartphones, tablets, and the like) contain an operating system. The operating system is configured to execute application software installed on the mobile device. Application software products (i.e., applications) specifically designed to run using the mobile device's operating system can be called mobile "apps".

[0004] The development of these applications initially focused on the functionality required by mobile device users to leverage the portability of mobile devices. These applications provide mobile device functionality to support email, calendars, personal contact information, news, stock market information, and the like. Continuous demand has led to the development of mobile device applications in categories such as games, factory automation (e.g., updates to existing mobile apps), banking, order tracking, ticket purchasing, managing health-related issues, and the like.

[0005] Some mobile apps can interact with the sensors on mobile devices. For example, a video point-of-sale (POS) sensor can be used by a mobile app to complete a transaction at a store. Similarly, a heart rate sensor can be used by a mobile app to monitor and report the heart rate of the user on the mobile device.

[0006] The ability to pinpoint the location of mobile devices with high accuracy has led to the development of location-based services and the categorization of mobile apps that use location data to control features. These mobile app values ​​can be based on: (1) an understanding of the proximity between the mobile device (and, by extension, the user of the mobile device) and the points of interest associated with the application (the mobile app providing the location-based service or another mobile app) and (2) inferences that can be made from this understanding. Examples of location-based services may include, but are not limited to, products that identify the location of specific types of goods and / or services, weather information, social networking applications (e.g., tracking an individual's location), package tracking, turn-by-turn navigation, environmental alerts (high concentrations of specific allergens in the air), services for sending requests for emergency assistance, and the like.

[0007] Specifically, applications developed for mobile devices by retailers and / or other third parties have implemented location-based services related to identifying the location of specific providers of goods and / or services, location-based advertising, location-based promotions, and the like. In practice, this mobile app may send requests for the location of the mobile device to determine the response based on location. In practice, this mobile app may also send the location of the mobile device to a server under the control of the entity developing the mobile app. Summary of the Invention

[0008] The following is a simplified summary of the invention relating to one or more aspects and / or embodiments disclosed herein concerning the provision, organization, and management of location history records for mobile devices. Thus, the following summary should not be considered a broad overview of all contemplated aspects and / or embodiments, nor should it be considered to identify key or defining elements relating to all contemplated aspects and / or embodiments or to depict the scope associated with any particular aspect and / or embodiment. Therefore, the following summary has the sole purpose of presenting, in a simplified manner, certain concepts relating to one or more aspects and / or embodiments related to the mechanisms disclosed herein before the detailed embodiments presented below.

[0009] A method of providing information associated with the location history of a mobile device to one or more applications includes: generating one or more location history records based on one or more locations of the mobile device via a processor of the mobile device, wherein each location history record includes one or more points of interest and the duration of the mobile device at the one or more points of interest; receiving an information request from at least one of the one or more applications via the processor of the mobile device; determining, via the processor of the mobile device, a subset of the one or more location history records that satisfies criteria from the information request; determining, via the processor of the mobile device, a permission level of the at least one application based on the information request and the subset of the one or more location history records; and providing information associated with the subset of the one or more location history records to the at least one application via the processor of the mobile device based on the permission level of the at least one application.

[0010] An apparatus for providing information associated with the location history of a mobile device to one or more applications includes: at least one processor configured to: generate one or more location history records based on one or more locations of the mobile device, wherein each location history record includes one or more points of interest and the duration of the mobile device at the one or more points of interest; receive an information request from at least one of the one or more applications; determine a subset of the one or more location history records that satisfies criteria from the information request; determine a permission level of the at least one application based on the information request and the subset of the one or more location history records; and provide information associated with the subset of the one or more location history records to the at least one application based on the permission level of the at least one application; and a memory coupled to the at least one processor and configured to store the one or more location history records and the information associated with the one or more location history records.

[0011] A device for providing information associated with the location history of a mobile device to one or more applications includes: means for generating one or more location history records based on one or more locations of the mobile device, wherein each location history record includes one or more points of interest and the duration of the mobile device at the one or more points of interest; means for receiving an information request from at least one of the one or more applications; means for determining a subset of the one or more location history records that satisfies criteria from the information request; means for determining a permission level of the at least one application based on the information request and the subset of the one or more location history records; and means for providing information associated with the subset of the one or more location history records to the at least one application based on the permission level of the at least one application.

[0012] A non-transitory computer-readable medium for providing information associated with the location history of a mobile device to one or more applications includes: at least one instruction for generating one or more location history records based on one or more locations of the mobile device by a processor of the mobile device, wherein each location history record includes one or more points of interest and the duration of the mobile device at the one or more points of interest; at least one instruction for receiving an information request from at least one of the one or more applications at the processor of the mobile device; at least one instruction for determining, by the processor of the mobile device, a subset of the one or more location history records that satisfies criteria from the information request; at least one instruction for determining, by the processor of the mobile device, the permission level of the at least one application based on the information request and the subset of the one or more location history records; and at least one instruction for providing information associated with the subset of the one or more location history records to the at least one application based on the permission level of the at least one application by the processor of the mobile device.

[0013] Other objectives and advantages associated with the mechanisms disclosed herein will be apparent to those skilled in the art based on the accompanying drawings and embodiments. Attached Figure Description

[0014] A more complete understanding and equally better appreciation of aspects of the invention and many of its accompanying advantages will be readily obtained by referring to the following detailed description, taken in conjunction with the accompanying drawings, which are presented for illustration only and not for limitation of the invention, and wherein:

[0015] Figure 1 A diagram illustrating an example of an environment in which a mobile device can operate.

[0016] Figure 2 A block diagram illustrating an embodiment of a mobile device according to an embodiment of the present invention.

[0017] Figure 3 The architecture of a mobile device according to at least one aspect of the present invention is described.

[0018] Figure 4 An instance tree structure of metadata tags associated with a location derived from the location of a mobile device, according to at least one aspect of the present invention, is described.

[0019] Figure 5 A diagram illustrating an instance relation table stored in the memory of a mobile device according to at least one aspect of the present invention.

[0020] Figure 6A flowchart illustrating a method for generating location records according to at least one aspect of the present invention.

[0021] Figure 7 A flowchart illustrating a method for generating a location history record of a mobile device according to at least one aspect of the present invention.

[0022] Figure 8 A flowchart illustrating a method for maintaining a database of location history records according to at least one method of the present invention.

[0023] Figure 9 This describes an exemplary granularity level of location information that can be tracked by a mobile device according to at least one aspect of the present invention.

[0024] Figure 10 A flowchart illustrating a method according to at least one aspect of the present invention for providing information associated with the location history of a mobile device to one or more applications.

[0025] Figure 11 Here are simplified block diagrams of several sample aspects of a device configured to support communication as taught in this paper. Detailed Implementation

[0026] This invention discloses a method and system for providing information associated with the location history of a mobile device to one or more applications. The mobile device generates one or more location histories based on one or more locations of the mobile device, wherein each location history includes one or more points of interest and the duration of the mobile device at the one or more points of interest. The method involves receiving an information request from at least one of the one or more applications, determining a subset of the one or more location histories that meets criteria from the information request, determining a permission level for the at least one application based on the information request and the subset of the one or more location histories, and providing information associated with the subset of the one or more location histories to the at least one application based on the permission level of the at least one application.

[0027] These and other aspects are disclosed in the following description and related figures to illustrate specific examples relating to exemplary embodiments of providing, organizing, and managing the location history of mobile devices. Alternative aspects may be designed without departing from the scope of the invention. Furthermore, well-known elements are not described in detail or are omitted so as not to obscure the relevant details of the invention.

[0028] The term "exemplary" is used herein to mean "serving as an example, illustration, or description." Any aspect described herein as "exemplary" is not necessarily to be construed as superior or advantageous to other alternatives. Similarly, the term "aspect" does not require that all aspects of the invention encompass the discussed features, advantages, or modes of operation.

[0029] The terminology used herein is for descriptive purposes only and is not intended to limit the scope of the invention. As used herein, the singular forms “a” and “described” are intended to include the plural forms unless the context clearly indicates otherwise. It should be further understood that the terms “comprising” and / or “including” as used herein specify the presence of said features, integers, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.

[0030] Furthermore, many aspects are described in relation to the execution of a series of actions by elements of a computing device, for example. It should be understood that the various actions described herein can be performed by specific circuitry (e.g., an application-specific integrated circuit (ASIC)), by program instructions executed by one or more processors, or by a combination of both. Additionally, the sequences of actions described herein can be considered fully implemented within any form of computer-readable storage medium storing a corresponding set of computer instructions that, when executed, cause an associated processor to perform the functionality described herein. Therefore, various aspects of the invention can be implemented in several different forms, all of which are contemplated to be within the scope of the claimed subject matter. Furthermore, for each of the aspects described herein, any such aspect of the corresponding form can be described herein as, for example, a "circuit" "configured" to perform the described actions.

[0031] Figure 1 This diagram illustrates an example of an environment in which a mobile device can operate. The environment may include a cellular network 101. Optionally, the environment may also include a satellite navigation system 151.

[0032] Cellular network 101 may include multiple cells 102 (e.g., cells 102A to 102G) in an instance-based, rather than restrictive, manner. Access points 104 (e.g., access points 104A to 104G) may provide communication services to their respective cells 102. Figure 1This describes several local access points 106 (e.g., 106-1 to 106-3) and several mobile devices 108 (e.g., 108-1 to 108-9). Mobile devices 108 may also be referred to as user equipment (UE), station, terminal, access terminal, subscriber unit, etc. Local access points 106 may also be referred to as nodes, access points, wireless access points, etc. Local access points 106 may be, for example, small cell base stations, wireless local area network (WLAN) access points, etc. Access points, RFID readers, etc. Mobile device 108 can be, for example, a cellular phone, personal digital assistant (PDA), wireless modem, wireless communication device, handheld device, laptop computer, cordless phone, wireless local loop (WLL) base station, netbook, smartbook, smartphone, tablet computer, wearable computer, automobile, etc. Furthermore, although referred to as a "mobile device," one or more of mobile devices 108 can be stationary devices, such as personal computers. Local access point 106 and / or mobile device 108 can be configured to communicate with each other and / or one or more access points 104 via forward and / or reverse links. For example, cell 102 can be configured to provide communication over multiple city blocks or within a few square meters in a rural environment. Cellular network 101 can be configured to determine the location of mobile device 108 with coarse accuracy based on, for example, the signal strength between mobile device 108 and access point 104.

[0033] Satellite navigation system 151 can be used to determine the position of mobile device 108 with high accuracy. For example, satellite navigation system 151 can be a Global Positioning System (GPS). GPS includes satellites 152 distributed above the Earth such that any point on Earth has a line-of-sight of at least six satellites 152. Each satellite 152 includes a high-precision clock. GPS is configured to know the position of satellites 152 (e.g., 152A to 152D) and the given time with high accuracy at a given time. Each satellite 152 of GPS transmits a signal containing information including the time of transmission of an indication signal and the position of satellite 152. Mobile device 108 can be configured to receive signals from each of the four satellites 152 (e.g., 152A to 152D), record the arrival time of each signal corresponding to the clock of mobile device 108, determine the flight time of each signal, and derive both the position of mobile device 108 from the flight time and the clock of mobile device 108 from the clocks of satellites 152.

[0034] Those skilled in the art will understand that other techniques can be used to determine the location of the mobile device 108 with a greater degree of accuracy than that obtained from the cellular network 101.

[0035] For example, mobile device 108 may be configured to use WLAN technology and may be further configured to determine the location of mobile device 108 from a WLAN network. Furthermore, mobile device 108 may be configured to determine its location from a 2.4 GHz WLAN network and may be configured to determine its location from a 5 GHz WLAN network. For example, some types of mobile devices 108 may be configured to use WLAN technology instead of cellular network 101.

[0036] As another example, mobile device 108 can be configured to... The technology operates according to standard specifications and can be further configured to... The network determines the location of mobile device 108.

[0037] As another example, mobile device 108 may be configured to access data from cellular network 101, satellite navigation system 151, WLAN network (e.g., 2.4 GHz and / or 5 GHz), The location of mobile device 108 is determined by a combination of the network or any of the like.

[0038] Figure 2 The block diagram illustrates an embodiment of a mobile device 108 according to at least one aspect of the present invention. The mobile device 108 may include a housing 202, one or more antennas 204, a processor 228 (which may include a main processor 206, an application processor 208, and / or a low-power core 220), a memory 210, a transmitter 216, a receiver 218, one or more sensors 224, and a bus system 226. The functions of the transmitter 216 and receiver 218 may be incorporated into a transceiver 230. The low-power core 220 may be, for example, a modem, a digital signal processor (DSP), a low-power processor (i.e., a processor that consumes less power than the application processor 208 or the main processor 206), or other dedicated circuitry. Although described as a component of the processor 228, the main processor 206, the application processor 208, and / or the low-power core 220 may be separate components. For example, processor 228 may consist only of main processor 206, low-power core 220 may be a discrete modem component, and application processor 208 may be a processor separate from both processor 228 and low-power core 220.

[0039] Processor 228 may be configured to control the operation of mobile device 108. In one embodiment, processor 228 may be a central processing unit (CPU) of mobile device 108. In another embodiment, application processor 208 may be a CPU and / or graphics processing unit (GPU) of mobile device 108. Memory 210 may be coupled to processor 228, communicate with processor 228, and provide instructions and data to processor 228. Processor 228 may perform logical and arithmetic operations based on program instructions stored in memory 210. Instructions in memory 210 may be executable to perform one or more of the methods and processes described herein.

[0040] Processor 228 may comprise a processing system, or a component thereof, implemented with one or more processors (e.g., main processor 206, application processor 208, and low-power core 220). Processors 206, 208, and 220 may implement any combination of the following: general-purpose microprocessor, microcontroller, DSP, field-programmable gate array (FPGA), programmable logic device (PLD), controller, state machine, gate logic, discrete hardware component, discrete hardware finite state machine, or any other entity capable of performing computations and / or manipulating information.

[0041] The processing system may also include machine-readable media for storing software. Software can be broadly interpreted to mean any type of instruction, whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise. Instructions may contain code, for example, in source code format, binary code format, executable code format, or any other suitable format. When executed by one or more processors, the instructions cause the processing system to perform one or more of the functions described herein.

[0042] The memory 210 may include both read-only memory (ROM) and random access memory (RAM). A portion of the memory 210 may also include non-volatile random access memory (NVRAM).

[0043] In this embodiment, the mobile device 108 may include a user interface, such as a keypad, microphone, speaker, display screen, and / or touchscreen display. The user interface may include any elements or components that communicate information to the user of the mobile device 108 and / or receive input from the user. However, the user interface may be on a different device, such as an external display, another computing device, etc.

[0044] Transmitter 216 and receiver 218 (or transceiver 230) allow the mobile device 108 to transmit and receive data with a remote device. One or more antennas 204 may be attached to housing 202 and electrically coupled to transceiver 230. In some embodiments, mobile device 108 may also include multiple transmitters, multiple receivers, multiple transceivers, and / or multiple antennas (not shown).

[0045] One or more sensors 224 may be any device capable of acquiring measurements of physical properties and converting said measurements into signals. One or more sensors 224 may include, but are not limited to, cameras, microphones, touchscreen displays, thermal sensors, magnetic sensors, electric field sensors, optical sensors, motion sensors, accelerometers, inertial measurement units, pressure sensors, touchscreen sensors, six-degree-of-freedom sensors, portrait / landscape sensors, olfactory sensors, heart rate sensors, chemical environment sensors, biosensors, metabolic indicator sensors, radio frequency point-of-sale sensors, and the like, or any combination thereof. Additionally or alternatively, at least one of the one or more sensors 224 may be detachable from the mobile device 108 (i.e., outside the housing 202).

[0046] In addition to determining its location based on signals from satellites 152 of the Global Positioning System and / or cellular network 101, mobile device 108 may utilize one or more onboard inertial sensors of sensor 224 (e.g., accelerometers, gyroscopes, etc.) to measure the inertial state of mobile device 108. The inertial measurements obtained from these onboard inertial sensors may be used, in conjunction with navigation signals received from satellites 152 and / or cellular network 101, or independently of said navigation signals, to provide an estimate of the geographical location and direction of travel of mobile device 108.

[0047] Various components of the mobile device 108 can be coupled together by a bus system 226. The bus system 226 may include a data bus, and in addition to the data bus, it may also include a power bus, a control signal bus, and / or a status signal bus.

[0048] As will be understood, mobile device 108 may include Figure 2 Other components or elements not specified herein.

[0049] In addition, although Figure 2 The document describes multiple individual components, but one or more of these components may be combined or implemented together. For example, processor 228 and memory 210 may be embodied on a single chip. Processor 228 may additionally and / or alternatively contain memory, such as processor registers. Similarly, one or more functional blocks or portions of the functionality of various blocks may be embodied on a single chip. Alternatively, the functionality of a particular block may be implemented on two or more chips.

[0050] Some mobile devices 108 (e.g., smartphones, tablets, and the like) may include an operating system. The operating system may be configured to execute application software installed on the mobile device 108. Applications specifically designed to run using the operating system of the mobile device 108 may also be referred to as mobile "apps".

[0051] The development of these applications initially focused on the functionality required by users of mobile device 108 to leverage the portability of mobile device 108. These applications provide the functionality of mobile device 108 to support email, calendar, personal contact information, news information, stock market information, and the like. Continued demand has led to the development of mobile device 108 applications in categories such as games, factory automation (e.g., updates to existing mobile apps), banking, order tracking, ticket purchasing, managing health-related issues, and the like.

[0052] Some mobile apps can interact with at least one of the sensors 224. For example, a video point-of-sale transaction sensor can be used by a mobile app to complete a transaction at the store. For example, a heart rate sensor can be used by a mobile app to monitor and report the heart rate of the user of mobile device 108.

[0053] As described above, the ability to determine the location of mobile device 108 with high accuracy has led to the development of location-based services and the classification of mobile apps that use location data to control features. These mobile app values ​​can be based on: (1) the perception of proximity between mobile device 108 (and, by extension, the user of mobile device 108) and the points of interest associated with the application (the mobile app providing the location-based service or another mobile app) and (2) inferences that can be made from this perception. Examples of location-based services may include, but are not limited to, products that identify the location of specific types of goods and / or services, weather information, social networking applications (e.g., tracking an individual's location), package tracking, turn-by-turn navigation, environmental warnings (high concentrations of specific allergens in the air), services for sending requests for emergency assistance, and the like.

[0054] Specifically, an application developed by a retailer and / or other third parties for mobile device 108 has implemented location-based services related to identifying the location of a specific provider of goods and / or services, location-based advertising, location-based promotions, and the like. In practice, this mobile app may send requests for the location of mobile device 108 to determine the response based on location. In practice, this mobile app may also, under the control of the entity developing the mobile app, send the location of mobile device 108 to a server (not specified).

[0055] This method has several drawbacks. For example, the value of knowing the real-time location of mobile device 108 (and by extension, the user of mobile device 108) is limited to a relatively small number of inferences that can be made from the knowledge of only the real-time location of mobile device 108. Additionally, for example, if several such mobile apps are executed, the processor 228 may be required to make redundant determinations of the location of mobile device 108 in response to numerous requests for the location of mobile device 108 from several mobile apps. These redundant determinations may come at the cost of other instructions that could otherwise be executed by the processor 228. Furthermore, for example, the user of mobile device 108 may not want the entity developing the mobile app to have knowledge of the real-time location of mobile device 108 (and by extension, the user of mobile device 108).

[0056] However, in addition to the real-time location of mobile device 108, the location history of mobile device 108 may be more useful for some mobile apps. For example, the location history of mobile device 108 can reflect the user's preferences and long-term trends in shopping, food, exercise, etc. It can also reflect the user's potential importance to a particular retailer.

[0057] However, location history information is not currently disclosed in a structured manner and is only tracked on a per-application basis by cloud-based mobile apps. In this scenario, each mobile app can only view the location history of mobile device 108 in a limited way, as seen by application calls to the location API.

[0058] Therefore, at a high level, the systems and methods disclosed herein can systematically and broadly track the location history of mobile device 108 with low power (e.g., via low-power core 220), calculate / generate additional metadata / tags based on location history, modify mobile app permission models to process location history information, reveal different levels of detail and granularity of location history based on the needs of the mobile app, and dynamically adjust location history tracking based on app requests.

[0059] There are several benefits to allowing mobile apps to use the location history information of mobile device 108. For example, location history can be used to make the application experience more personalized to the user. As another example, the user of mobile device 108 can use location history as an asset to obtain, for example, better offers from third parties by selectively disclosing location history according to privacy preferences. As yet another example, the user of mobile device 108 can use location history information as credentials to perform actions within several mobile apps.

[0060] Therefore, the aspects described herein generate a location history of the mobile device 108. The location history may include at least the location of the mobile device 108, the time when the location of the mobile device 108 was captured, and optionally, the duration of the mobile device 108 at the location.

[0061] Location history can be generated, for example, by software stored in memory 210 that can be executed by the processor 228 of the mobile device 108 (specifically, in an embodiment, low-power core 220). This software can be configured, for example, as middleware to intermediate between the operating system of the mobile device 108 and one or more mobile apps.

[0062] Advantageously, having a location history generated by the mobile device 108 reduces the need for the processor 228 to redundantly determine the location of the mobile device 108 in response to numerous requests for the location of the mobile device 108 from several mobile apps, thereby freeing the processor 228 to execute other instructions. The location history can be stored, for example, in the memory 210 of the mobile device 108. Access to the location history can be controlled by the mobile device 108 so that the user of the mobile device 108 can determine which applications can receive at least one of the location history records.

[0063] Figure 3 The architecture of the mobile device 108 according to at least one aspect of the present invention is described. Figure 3 In this example, the low-power core 220 includes a positioning engine 322, a location compression and analysis module 324, and a location history extraction / abstraction module 326. The positioning engine 322, the location compression and analysis module 324, and the location history extraction / abstraction module 326 may be hardware components integrated into or functionally coupled to the low-power core 220, software modules executed by the low-power core, or a combination of hardware and software.

[0064] Positioning engine 322 uses one or more of the positioning technologies described above (e.g., cellular network 101, satellite navigation system 151, WLAN network, etc.). The location of mobile device 108 is tracked over time (via networks, etc.). The output of the positioning engine 322 is cached in shared memory 210 as a table relating time (time of location measurement) in time field 312a to the corresponding location (which may be latitude and longitude measurement, access point identifier, etc.) in location field 314a. These outputs may be collected by the positioning engine 322 from mobile app 330, WLAN, or cellular scans for connectivity and / or similar sources based on requests.

[0065] The location compression and analysis module 324 can cluster locations in the location field 314a of the mobile device 108 and estimate the duration of the mobile device 108 in those clusters to identify the discrete location of the mobile device 108 over time. The discrete location of the mobile device 108 is stored in the location field 314b and the duration of the mobile device 108 at the discrete location is stored in the duration field 316. The time the mobile device is at the location, such as start time, end time, median time, etc., is stored in the time field 312b. In embodiments, the time field 312b, the location field 314b, and optionally the duration field 316 may be collectively referred to herein as a “location record” or “positioning record”.

[0066] The location compression and analysis module 324 may then search, or cause the mobile device 108 to search for the location corresponding to a cluster in the POI database to associate the identified location with a different metadata tag 318. The identified location corresponding to the cluster location in the location field 314b may be associated with a metadata tag from the POI database, which, for example, identifies the location and / or describes one or more activities associated with the location. For example, if the location corresponding to the cluster in the location field 314b corresponds to Safeway in the POI database... TM POI, then the location can be assigned "Safeway" TM Metadata tags 318 for "shopping", "grocery store", "deli", "bakery", etc. The POI database may be stored locally (e.g., in shared storage 210) or remotely and may be accessed by mobile device 108 via a wireless network.

[0067] In one embodiment, the location compression and analysis module 324 may determine that clusters along a road should be compressed into a single location and assigned a metadata tag 318, such as "commuting". In another embodiment, the location compression and analysis module 324 may determine that transient clusters (e.g., clusters of locations where mobile devices 108 spend less than a threshold amount of time in location field 314b) or locations without corresponding metadata tags may be deleted.

[0068] In an embodiment, data from one or more sensors 224 can be used to augment the analysis performed by the location compression and analysis module 324 and add additional metadata tags 318 for the identified locations. For example, a cluster of locations in location field 314b can be identified in a POI database as corresponding to a park. Data from the accelerometers of one or more sensors 224 can indicate that the user of mobile device 108 is running when the positioning engine 322 measures the location represented in location field 314b. Therefore, the location compression and analysis module 324 can assign additional metadata tags 318, such as "running," to the identified locations.

[0069] In this example, metadata tag 318 could be actual sensor data. For instance, a user could have maintained an average heart rate of 75 bpm at a given location on mobile device 108 for a given duration (as shown in the image). Figure 5 (In 502G). Metadata tag 318 may contain other statistics, such as standard deviation, maximum value, minimum value, etc., as shown in the following reference. Figure 7 As discussed above. Furthermore, the metadata tag 318 can be changed or recorded based on the dominant tag. For example, if the metadata tag 318 is "running," then the mobile device 108 can record the heart rate every second and store it as sensor metadata.

[0070] As another example, the location cluster in location field 314b may correspond to a user of mobile device 108 commuting to work. One or more sensors 224 may detect that mobile device 108 is playing music, or that the user is listening to music on the radio. Therefore, location compression and analysis module 324 may assign additional metadata tag 318, such as "listening to music," to the identified location.

[0071] As another example, the location cluster in location field 314b may correspond to a user of mobile device 108 at a specific shopping location. One or more sensors 224 may detect that mobile device 108 is making a payment at the shopping location. Therefore, location compression and analysis module 324 may assign additional metadata tags 318, such as "making a purchase," to the identified location.

[0072] In an embodiment, the location history record may include a time field 312b, a location field 314b, a duration field 316, and a metadata tag 318.

[0073] Since the analysis performed by the location compression and analysis module 324 can be computationally intensive, these operations can be performed in real time when the mobile device 108 is connected to a power source, rather than when the time in the time field 312a and the location in the location field 314a are collected.

[0074] Location history extraction / abstraction module 326 receives requests for location history records and / or information associated with location history records (e.g., a subset of time field 312b, location field 314b, duration field 316, and metadata field 318) from mobile app 330 via application processor 208. It should be noted that requests for location history records / information associated with location history records are separate from requests for location data from location field 314a used to measure the location of mobile device 108 (which, as described above, can also be received from mobile app 330). As will be further described herein, requests for location history records / information associated with location history records may include one or more criteria for filtering information associated with location history records.

[0075] Figure 4 An example tree structure 400 of the present invention is described, which associates metadata tags with locations derived from the location field 314a of the mobile device 108. The root 410 of the tree structure 400 may be associated with metadata indicating the type and size of each subtree. The metadata may indicate the type of the subtree (in...) Figure 4 Examples of subtree categories include shopping, dining, gym, and others; subtree size; number of children; and / or a summary of the subtree. As described below, the size of a subtree may indicate the time spent at one or more locations within the category. A summary of a subtree may be a summary of information over a time period (e.g., the past two months).

[0076] As in Figure 4 As described, tree structure 400 includes a first level 420, which has four instance location categories: shopping, dining, gym, and others. The second level 430 of tree structure 400 divides the shopping category into subcategories of grocery shopping and clothing store shopping, and the dining category into subcategories of fast food and restaurants. The third level 440 of tree structure 400 further divides the grocery shopping subcategory into Safeway... TM Trader Joes TM and Whole Foods TM Further subcategories. The fourth level 450 of tree structure 400 corresponds to the leaf nodes of tree structure 400. Leaf nodes provide detailed location and time (e.g., duration) information. As will be understood, although Figure 4 Only four levels are described, but there may be more or fewer levels in the tree structure 400.

[0077] As can be seen, Figure 4This describes how various locations (determined by clustering locations in the location field 314a of mobile device 108) can be assigned multiple metadata tags with progressively increasing levels of granularity / specificity. If a user of mobile device 108 accesses a particular location more frequently than others, the subtree associated with that location may be more developed than the subtrees associated with other locations. For example, location compression and analysis module 324 can access a default number or level of metadata tags for a specific location. Because mobile device 108 makes additional accesses to locations, mobile device 108 can access additional metadata tags associated with the location. These additional metadata tags can be more specific information about the location. For example, if the location is Safeway... TM Grocery stores, such as Figure 4 As explained, the location compression and analysis module 324 can retrieve metadata tags for the first two levels of shopping and grocery store shopping from the POI database on the first visit. On subsequent visits, the location compression and analysis module 324 can retrieve the third level of Safeway. TM The metadata tags. On a subsequent access, the location compression and analysis module 324 can retrieve the metadata tags for the fourth level delicatessen, bakery, and pharmacy (not specified).

[0078] In this way, information associated with the current request and location history (e.g.) Figure 4 For less important nodes in the mobile app (as described in the metadata tags), the information associated with location history may only include first-level metadata tags. For example, the gym subtree may not contain additional subcategories, so the user of mobile device 108 may have only spent one hour at the gym in the past two weeks. Therefore, based on user activity and requests from the mobile app, more resources can be allocated to some tree nodes rather than others.

[0079] In an embodiment, where location metadata tags are augmented based on data collected by one or more sensors 224, the more frequently a user visits a location, the more opportunities the location compression and analysis module 324 will have to collect data from one or more sensors 224 and thereby add new location metadata tags based on that data. For example, in the case where the location is a park frequently visited by the user of mobile device 108, one or more sensors may detect that the user runs through the park during one visit, walks through the park during another visit, lingers near the playground in the park for a period of time during yet another visit, and so on. Therefore, the location compression and analysis module 324 can assign additional metadata tags to the park location based on these activities.

[0080] Figure 5A diagram illustrating an exemplary relational table 500 stored in the memory 210 of a mobile device 108 according to at least one aspect of the present invention is provided. The relational table 500 may be configured to store location history records 502A to 502Z. Location records may correspond to a location column 506 and a time column 504, and optionally to a duration column 510. The time in the time column 504, the location in the location column 506, and the duration in the duration column 510 may respectively correspond to… Figure 3 The time in the time field 312b, the location in the location field 314b, and the duration in the duration field 316 are all included. The location history contains location records and further corresponds to those provided by column 508, last request column 512, request frequency column 514, sensor information column 516, and location identifier (ID) column 518. Although described as being combined with location history records 502A to Z, location records may be stored as and / or referred to as separate records.

[0081] although Figure 5 It is not explicitly stated, but relation table 500 may contain additional columns, such as those corresponding to... Figure 4 This refers to one or more columns at each level of the metadata tags described herein. For example, Safeway TM Location history records 502D, 502E, and 502I may include additional columns for metadata tags for shopping, grocery shopping, delicatessens, bakeries, and / or pharmacies, depending on the user of mobile device 108 who has already set up Safeway. TM The number of visits made.

[0082] Figure 6 A flowchart illustrating a method 600 for generating location records according to at least one aspect of the present invention is provided. At block 602, processor 228 receives a location fixing rate request from a mobile app. In an embodiment, the request may define the frequency at which the mobile app wants to determine the location of mobile device 108. As described below, low-power core 220 may determine the location of mobile device 108 and the rate at which the location of mobile device 108 is determined independently of the request from the mobile app. For example, low-power core 220 may determine a default rate for performing location fixing, but the default rate may be updated based on a request from the mobile app, as discussed below with reference to 604.

[0083] In this example, the low-power core 220 can generate a location record for each location pinpoint (e.g., for...). Figure 3 Each location in the location field 314a). Alternatively, the low-power core 220 may generate location records for each location in a cluster corresponding to the location of the mobile device 108 (e.g., for each location in the location field 314a). Figure 3 (Each position in the position field 314b). See reference. Figure 3As discussed, a "location record" or "positioning record" can be a record of the location of the mobile device 108 at a given time, and can be, for example, the geographic coordinates of the location and the corresponding timestamp. Alternatively, the low-power core 220 can generate location records for only certain location points. For example, if the mobile device 108 has moved more than a threshold distance since its last location point, then the low-power core 220 can only generate location records.

[0084] The requested frequency can be based on the proximity of mobile device 108 to one or more points of interest, the amount of movement of mobile device 108, or any combination thereof. For example, mobile device 108, specifically, low-power core 220, can generate location records every minute. However, Starbucks coffee shops... TM The mobile app is available on 108 mobile devices at Starbucks. TM The mobile device 108 generates a location record every second at any time near or in the vicinity of the store. Starbucks TM The mobile app may send this request to processor 228, for example, when the application is first opened. Low-power core 220 may evaluate this request and adjust its method for determining the location of mobile device 108, and generate corresponding location records based on the proximity of mobile device 108 to one or more points of interest. In this scenario, Starbucks... TM The mobile app will only need to send the request once, and Starbucks TM The mobile app can be closed, but the low-power core 220 will generate location / position records based on requests.

[0085] In another example, mobile device 108 may again generate location records every minute. However, a pedometer application may request mobile device 108 to generate location records every second while mobile device 108 is moving or in the last minute of its movement.

[0086] In an embodiment, a request to generate one or more location records may include a positioning technique that uses a location uncertainty threshold or any combination thereof.

[0087] In an embodiment, the location vertex rate request may also include a sensor rate request, i.e., a request to sample data from one or more sensors 224 at a given rate. For example, a pedometer application may request that the sweat sensors of one or more sensors 224 generate / sample data every second and generate a location record every ten seconds whenever the mobile device 108 has moved in the last minute.

[0088] In an embodiment, a request to generate one or more location records may include a request to generate data from one or more sensors 224 based on the proximity of the mobile device 108 to one or more points of interest, movement of the mobile device, or any combination thereof. For example, a fitness application may request to generate a location record every second whenever the mobile device 108 approaches a gym and to sample data from a heart rate sensor every 30 seconds.

[0089] In another example, the grocery store Safeway TM The mobile app can request whenever the mobile device approaches Safeway. TM When queuing at the store's checkout, one or more sensors 224 of the mobile device 108 are activated via radio frequency point-of-sale (POS) sensors. This is intended to facilitate the use of the mobile device 108 to complete Safeway transactions. TM The demand for transactions at the store is used to provide valuable services to the user of mobile device 108. Advantageously, in the absence of a sensor rate request from the mobile app to change the sample rate of the RF point-of-sale sensor, keeping the RF point-of-sale sensor in an inactive state allows the processor 228 to freely execute other instructions, limits the consumption of memory 210, extends the duration for which the power source (e.g., battery) of mobile device 108 can provide power to mobile device 108 before it needs to be charged, or any combination thereof.

[0090] In an embodiment, a request to generate one or more location records may include unauthorized control that overrides one or more previous requests made by the application.

[0091] At box 604, the low-power core 220 determines one or more parameters for determining the position of the mobile device 108, one or more parameters for sampling data from one or more sensors 224, or any combination thereof.

[0092] In an embodiment, one or more mobile apps may issue multiple requests with different requirements, and the low-power core 220 may determine whether it is possible to serve all requests. In an embodiment, the low-power core 220 may utilize the last request if it is unable to serve all requests from previous requests, and / or utilize as many previous requests as possible from previous requests. In some situations, the low-power core 220 may utilize requests with the highest granularity. For example, a mobile app may request location every ten seconds as the mobile device 108 moves, and a second mobile app may request location every second as the mobile device 108 moves. In this case, the low-power core 220 may utilize a higher frequency to generate location records and determine the location of the mobile device 108 every second.

[0093] At block 606, the low-power core 220 sets the positioning rate of the mobile device 108 based on one or more determined parameters for determining the position of the mobile device 108, and, if further requested, sets the sampling rate of the data captured / generated by the one or more sensors 224 based on one or more parameters for sampling data from one or more sensors 224.

[0094] At 608, the positioning engine 322 can obtain the position of the mobile device 108 based on the location apex rate set at 606, and, if requested, can sample data from one or more sensors 224 based on the sampling rate set at 606, as discussed above. Alternatively or additionally, the positioning engine 322 can obtain the position of the mobile device 108 independently of location apex rate requests. For example, the mobile device 108 can periodically determine its position even if no application requests its location. This allows the mobile device 108 to quickly serve requests for its location once it receives them from an application, and it enables context awareness to improve the user experience.

[0095] The positioning engine 322 may store the time when the location of the mobile device 108 is obtained in the time field 312a. In embodiments, the time when the location is obtained may be stored in any of a variety of ways (e.g., epoch time, calendar time, etc.), such as the time in the time fields 312a / b.

[0096] The positioning engine 322 can store the obtained location in the location field 314a. In one embodiment, the location of the mobile device 108 can be stored in the location fields 314a / b as one or more geographic coordinates. In another embodiment, the location may include geographic coordinates but also one or more relative coordinates. For example, the mobile device 108 may be located in a position with The beacon's indoor location, but the beacon location may not be set to a geographic coordinate system, therefore the location of the mobile device 108 may include geographic coordinates and relative to... One or more coordinates of the beacon. In an embodiment, the mobile device 108 may also obtain data from one or more sensors 224. For example, the mobile device 108 may obtain sensor data from a heart rate sensor. In an embodiment, data from one or more sensors 224 may be obtained at the same rate as the location of the mobile device 108. In an embodiment, the mobile device 108 may obtain data from one or more sensors 224 independently of a request from an application to sample data from one or more sensors 224.

[0097] Figure 7Figure 700 illustrates a method 700 for generating historical records for a mobile device 108 according to at least one aspect of the present invention. In method 700, at block 702, the mobile device 108 (specifically, the location compression and analysis module 324) generates location records, such as time field 312b and location field 314b, as referenced above. Figure 3 As described.

[0098] At box 704, the moving device 108 (specifically, the position compression and analysis module 324) can determine the duration of the moving device at one or more positions indicated in the position record, for example... Figure 3 The duration in the duration field 316. The location compression and analysis module 324 of the mobile device 108 can determine the duration for which the mobile device 108 has been at a specific location by obtaining the time difference between the first time record and the last time record at the same or similar location. For example, the location compression and analysis module 324 can access a series of time and location records at the same location, where the time difference between the first time record and the last time record in the series is one hour, and then the location compression and analysis module 324 can generate a location instance record of the location and a duration of one hour.

[0099] In an embodiment, the location compression and analysis module 324 may use a threshold to determine whether two or more locations are similar and should be clustered together, as referenced above. Figure 3 As discussed above. For example, the location compression and analysis module 324 may use a threshold of 10% such that the second location must be within 10% of the first location. In another instance, the location compression and analysis module 324 may use a threshold of 100 feet such that the distance between the first and second locations must be 100 feet or less to be considered a similar location to be clustered.

[0100] In an embodiment, the location compression and analysis module 324 of the mobile device 108 can determine one or more points of interest corresponding to one or more time and location records. If one or more time and location records correspond to one or more similar points of interest, then the location compression and analysis module 324 can generate one or more location history records based on one or more similar points of interest and determine the duration based on one or more time records.

[0101] For example, there may be three time and location records that are close to each other but clearly different and related to the same point of interest (e.g., Safeway). TM The different geographic coordinates associated with the grocery store. In this case, the location compression and analysis module 324 can generate a location history record, where the location corresponds to Safeway. TMThe focus is on the time difference between the first and last time records out of the three time and location records.

[0102] In another example, there may be three time and location records with closely spaced but different geographic coordinates, but two of the time and location records correspond to Safeway. TM The grocery store and the third time and location records correspond to Starbucks. TM Coffee shops. This can happen in many situations, such as Safeway. TM The store contains Starbucks TM Shop / Kiosk, Safeway TM The store is at Starbucks TM Near the store, or users from Safeway TM The store moved to Starbucks TM Store. In these cases, the location compression and analysis module 324 can generate a corresponding location for Safeway. TM At least one location history of the store, where the duration is based on making Safeway TM The store is determined by the time difference between the first and last record of the focus, corresponding to Starbucks. TM The store's at least another location history, where the duration is based on making Starbucks TM The store is determined by the time difference between the first and last records of the focus.

[0103] In this embodiment, location history records may correspond to routes within a point of interest. For example, multiple time and location records may correspond to Safeway. TM The store and multiple time and location records can indicate passage through Safeway TM The location compression and analysis module 324 can collect these locations and include them as routes associated with the location history in the store's mobile device 108. This is advantageous because Safeway... TM The application can request routes when it requests information associated with location history, thus enabling Safeway. TM They could improve the store layout, offer coupons, and so on.

[0104] In another embodiment, the location history can be a sub-record of one or more other location history records. For example, multiple time and location records can correspond to Safeway. TM The store and the master record storage information associated with the location history can be generated corresponding to Safeway. TMHowever, the location compression and analysis module 324 can generate additional location history records, which are defined as slave Safeway. TM Recorded sub-location history, and each sub-location history may include mobile device 108 located in Safeway. TM Within the store. For example, there could be a sub-location history indicating that mobile device 108 was in the baking area for up to 30 minutes, and another sub-location history indicating that mobile device 108 was in the production area for up to five minutes. This allows the application to receive more granular information about the location of mobile device 108 and allows for a more flexible approach to organizing information associated with location history when more granularity is required.

[0105] In another embodiment, the location history may correspond to a secondary concern within a primary concern. For example, there may be a history corresponding to Bellagio. TM Multiple time and location records for the club. Location compression and analysis module 324 can generate information about the mobile device 108 located in Bellagio. TM The location history of Bellagio for the entire duration, either in or near it. However, the location compression and analysis module 324 can also generate information about Bellagio. TM The location history of various points of interest within the site (such as Fiori di Como by Dale Chihuly).

[0106] In one embodiment, the location compression and analysis module 324 generates information records associated with historical location data about the closest points of interest. For example, time and location records may indicate that the mobile device 108 was near the Fiori di Como chandelier for up to 10 minutes, or the Bellagio chandelier. TM The fountain lasts for 30 minutes and Bellagio TM The botanical garden is a 25-minute walk away. However, besides producing what corresponds to Bellagio... TM The location compression and analysis module 324 can generate a single location history record for the point of interest, indicating three location histories: one for Fiori di Como, another for Bellagio, and so on. TM The fountain, and the last one about Bellagio. TM The botanical garden.

[0107] In embodiments, the location compression and analysis module 324 may also generate one or more location history records corresponding to points of interest that include one or more previously generated location history records. For example, in a previous example, the location compression and analysis module 324 may also generate location history records for Bellagio. TM Location history.

[0108] In an embodiment, the location compression and analysis module 324 can generate one or more location history records based on the same time and location records previously used to generate one or more location history records (i.e., location history records used to generate the Bellagio fountains and now used to generate the Bellagio fountains). TM Location history records). Specifically, there may be a threshold indicating a limitation, at which location history records corresponding to one or more previously generated location history records are generated, and / or location history records are generated using previously used time and location records. For example, the threshold may be set to a city, so in the example above, with the focus on Las Vegas, another location history record may be generated by the location compression and analysis module 324. However, the location compression and analysis module 324 will not generate location history records for Nevada, as this would violate the threshold.

[0109] In an embodiment, a minimum duration threshold may exist for generating location history records. For example, the location compression and analysis module 324 may use a threshold requiring a duration of at least five minutes for the location history records to be generated. Therefore, if one or more points of interest have an associated duration of only four minutes, the location compression and analysis module 324 will not generate location history records. In another embodiment, the location compression and analysis module 324 may generate location history records for one or more points of interest, but if the duration of a point of interest does not meet a threshold, the location compression and analysis module 324 may delete the location history records. For example, if the threshold is fifteen minutes, then... Figure 5 Location history records 502K can be deleted because the duration (five minutes) in the persistence column 510 of location history records 502K is less than fifteen minutes. Alternatively or additionally, if the duration exceeds or meets a threshold, then the location compression and analysis module 324 may not generate location history records and / or may delete location history records. For example, if the threshold is one hour and the location history record has a duration of five hours, then the location compression and analysis module 324 may delete the specific location history record.

[0110] At box 706, the location compression and analysis module 324 can determine the metadata tags of the POIs associated with one or more location records, as referenced above. Figure 3 The discussion.

[0111] As discussed above, metadata tags can contain sensor data from one or more sensors. For example, if requested by a mobile app, the metadata tag could also contain data from a temperature sensor, as referenced above. Figure 6As discussed above. In one embodiment, the metadata tag may contain all sensor data corresponding to a location record. In another embodiment, the metadata tag may contain sensor data as the average of sensor data, the median of sensor data, the standard deviation of sensor data, or any combination thereof. For example, there may be three location records corresponding to similar locations and associated with heart rate data of 55 bpm, 60 bpm, and 65 bpm from one or more heart rate sensors 224, and may also be associated with temperature data of 98 degrees, 98.5 degrees, and 99.5 degrees from one or more temperature sensors 224. The location compression and analysis module 324 may generate metadata containing an average heart rate of 60 bpm and an average temperature of 98.67 degrees. In one embodiment, the location compression and analysis module 324 may generate metadata tags and may later update the location history with data from one or more sensors 224 when retrieving sensor data.

[0112] In the embodiments, as referenced above Figure 3 As discussed, metadata tags may also include activities associated with the corresponding POI. The location compression and analysis module 324 can determine the activities of the mobile device 108 based on user prompts, user changes, user-defined rules, pre-configured rules, operating system rules, application rules, machine learning, OEM rules, a focus database, payment information, or any combination thereof. For example, the location compression and analysis module 324 may prompt the user to categorize activities when the location compression and analysis module 324 generates metadata tags associated with location history or after the metadata tags have been generated. For example, after the user has left the grocery store, the user may be prompted to categorize activities, and the user may enter and / or select the activity "grocery store shopping". The processor 228 may associate the focus with grocery store shopping for further interaction via user-defined rules and / or machine learning.

[0113] In another instance, a user might have previously defined a shopping mall POI as an activity categorized as "shopping." However, during a given trip, the user of mobile device 108 might have visited a gym in the mall, so the user might, for example, change the classification of the activity for this trip to "fitness." The location compression and analysis module 324 can utilize machine learning to better classify the activities.

[0114] In another example, it could be targeted at Whole Foods. TMRecent trips generate metadata tags associated with location history, but do not prompt the user of mobile device 108. Location compression and analysis module 324 can access a point-of-interest database, which may contain categories of points of interest (in this case, grocery stores). In this case, for example, location compression and analysis module 324 can use this information to categorize the trip as "grocery store shopping".

[0115] In another example, a user of mobile device 108 may access a grocery store located in a shopping mall, but the location engine 322 may not be able to determine the exact location to definitively identify the location of mobile device 108 within the mall. The location compression and analysis module 324 may generate metadata tags associated with the mall's location history and categorize it as "shopping." However, if the user provides payment information via an application on mobile device 108, or if recent transactions can be retrieved via an application (e.g., a user pays with a physical credit card, but the credit card application can quickly retrieve recent transactions), then the location compression and analysis module 324 can use this information to determine that the transaction occurred at the grocery store, use the information to gain attention, and categorize the activity as grocery store shopping.

[0116] In an embodiment, location records may be deleted after a location history record has been generated, after the location compression and analysis module 324 determines that a location history record cannot be generated based on the location record, or any combination thereof. For example, the location compression and analysis module 324 may determine that two location records are not from the same point of interest and may instead indicate that the user of the mobile device 108 is driving or that the location is mapped to a road rather than a point of interest. In such cases, the location compression and analysis module 324 may delete these records.

[0117] refer to Figure 5 In the location ID column 518, location history records can be deleted in response to a lack of location identification in column 518. For example, location history record 502L can be deleted in response to a lack of location identification in location ID column 518.

[0118] The processor 228 can also perform various functions for maintaining the location history database. Figure 8 A flowchart illustrating a method 800 for maintaining a database of location history records according to at least one method of the present invention is provided. At 802, processor 228 selects a location history record. At 804, processor 228 determines whether to remove the location history record from the database.

[0119] In this embodiment, processor 228 can remove location history records that exceed a time threshold. For example, if the time threshold is two months, then processor 228 can delete location history records longer than two months. Figure 5Location history records are 502Z. In this way, location history records have too long a period of time that is meaningless to the user and / or the application.

[0120] In another embodiment, processor 228 may generate calculations related to one or more location histories. By way of example, and not by way of limitation, calculations may include a count of the number of location histories, an average of the time durations 510 of one or more locations, metadata, other statistics about the one or more location histories (e.g., average, standard deviation, etc.), or any combination of the foregoing. For example, processor 228 may generate calculations about each point of interest (e.g., Whole). Statistics, for example, the related focus in the past two months is Whole The number of location history records, in the Whole The average duration, maximum duration, minimum duration, and access to different Wholes are all within the specified time period. The number of stores, visits to each Whole Location, etc. In embodiments, this information can also be generated for specific locations within the point of interest (e.g., throughout the Whole). The average duration in bakeries at Whole (Average duration at the checkout counter, etc.). This information can be stored along with location history and / or in a separate database.

[0121] In one embodiment, processor 228 may determine the time period based on previous application requests. For example, processor 228 may determine that the application requests a one-month time period only for the last five requests. In another instance, processor 228 may use the last time the application made a request as the start time of the time period and use the end time of the time period as the current date.

[0122] Based on these various calculations, processor 228 determines at 804 whether to remove the location history from the database. If processor 228 determines to remove the location history at 804, then at 806, processor 228 determines whether to retain any information associated with the deleted location history, such as associated metadata tags. This may include considerations similar to those regarding whether to delete location history, such as the duration of information use, the level of detail of the information (records with less detail may indicate a lack of importance), lack of detail (records with very little information may indicate a lack of importance), duration, and the like.

[0123] If processor 228 determines to delete the information associated with the location history, then at 808, processor 228 deletes the information. However, if processor 228 determines to retain the information associated with the location history, then at 810, processor 228 stores the information in, for example, memory 210. In any case, at 812, processor 228 deletes the location history. The process then returns to 802, where the processor selects the next location history for analysis.

[0124] In an embodiment, processor 228 may determine various statistics regarding location history records with the same activity. For example, processor 228 may identify locations with... Figure 4 The location history of shopping activities described herein, a subset of shopping activities (e.g., Safeway) TM Location, Trader Joe's location and Whole The processor 228 can further determine the average duration of these location historical records, the average time per day, and so on.

[0125] In an example, if a given application (e.g., the Yelp application) has received information that a user of mobile device 108 has written reviews of the restaurants Chez LaVerne, Chez Maxine, and Chez Patricia, then the application may want to calculate the plausibility of accessing the reviews in relation to location history (related to dining activities). If the calculations related to location history are provided to the application, then the application can determine that mobile device 108 (and by extension, the user of mobile device 108) has a recent location history of being at Chez LaVerne at eight different times over the past two months, with an average duration of thirty minutes per visit. The application can determine that the reviews of Chez LaVerne are highly plausible and / or valuable, and the application can use this information to adjust the weighting of the user's reviews, etc.

[0126] However, if calculations related to location history are provided to the application, the application can determine that mobile device 108 (and by extension, the user of mobile device 108) has no recent location history at Chez Maxine. The application can therefore determine that reviews of Chez Maxine have a low degree of plausibility. If calculations related to location history are provided to the application, the application can determine that mobile device 108 (and by extension, the user of mobile device 108) has a recent location history at Chez Patricia at eighty-five different times over the past two months, with an average duration of four hours per visit. The application can determine that reviews of Chez Patricia have a low degree of plausibility because the location history indicates that the user of mobile device 108 is an employee of Chez Patricia.

[0127] This invention provides a permission model for applications to access location history. For example, current permissions on the Android operating system are insufficient to reveal location history. Currently, only ACCESS_COARSE_LOCATION and ACCESS_FINE_LOCATION are supported.

[0128] This invention provides additional permissions to allow a mobile app to retrieve location history and / or a subset of information within the location history. For example, the ACCESS_COARSE_LOCHISTORY permission allows the mobile app to access all location history. The ACCESS_FINE_LOCHISTORY permission also allows the mobile app to access all location history, but with greater detail. The ACCESS_CATEGORY_LOCHISTORY permission allows the mobile app to access location history for a specific location category. This permission can be extended based on the category (e.g., shopping, fitness, dining, etc.). Furthermore, this accessibility can change in response to the mobile app offering coupons or other promotions to the user of mobile device 108. As will be understood, the mobile app may have other permissions.

[0129] Different mobile apps may have different needs for location history information. For example, a restaurant review app may need certain information to review / upvote reviews written several days after a visit to a restaurant, while a fitness app may need different information to count visits to a gym or park. A department store app may also need other information to count dwell time at department stores or other retailers to tailor recommendations to the user on mobile device 108.

[0130] Therefore, this invention can reveal the detailed hierarchy and granularity of location history based on the needs of the user of the mobile app and / or mobile device 108. The mobile app can access the location history using an API that specifies the type and level of access requested. This logic is implemented in... Figure 3 In the Location History Extraction / Abstract module 326, this is represented as "LocationHistoryAPI()". The information requested using the API includes the time period for retrieving information, the category of information, location history information related to a specific activity, determination of which information the mobile app can access, and calculations of the nature of the location history (e.g., access and dwell time) (e.g., sum, median, average, etc.). Additionally, the mobile app can pass geofencing parameters to the Location History Extraction / Abstract module 326 via the API, and the Location History Extraction / Abstract module 326 can use geofencing information when performing calculations on the nature of the location history.

[0131] Instantiated calls to LocationHistoryAPI() can include:

[0132] getLocHistoryVisits(time, category)

[0133] getLocHistoryVisits(time, geofence)

[0134] getLocHistoryDwellTimes(time, category)

[0135] getLocHistoryDwellTimes(time, activity)

[0136] In an embodiment, a request from a mobile app may include a point of interest, an activity associated with a location in the location history, the type of activity, the type of the app making the request, the type of point of interest, the app's credentials for accessing the location history, a location uncertainty threshold associated with the determination of the location, the technology used to determine the location, the time period for searching the location history, the time when the location history was generated, the app's use of the location history, the specifications of the data generated by the sensors of the mobile device 108, or any combination thereof.

[0137] In an embodiment, the location history extraction / abstraction module 326 can determine whether a mobile app has permission to access the requested information by comparing the information in the request with user prompts, preset permissions, preset rules, previously granted permissions, or any combination thereof.

[0138] In this embodiment, the location history extraction / abstraction module 326 can determine whether the mobile app has permission to access the requested information by utilizing user prompts. For example, during the installation of the mobile app, the user can be prompted to answer whether the application has permission to access the user's location history and whether there are any restrictions on what the application can access from the user's location history. User prompts can also be displayed when the application requests location history to determine whether the application still has permission to access the location history of the mobile device 108.

[0139] In another embodiment, the user prompt may include additional information, such as coupons, rewards, etc. The application request may contain inducements that can be displayed in the user prompt, which can be used to further entice the user to allow the application access to the location history of the mobile device 108. For example, Starbucks... TM The application can request a connection with Starbucks. TM Any location history associated with the store, and the application request may include permission for users on mobile devices 108 to access Starbucks. TM Receive free coffee drinks in exchange for user permission to use Starbucks TM Inducement of application to access the location history of mobile device 108.

[0140] In another instance, carriers, manufacturers, operating system developers, etc., can set permissions on mobile device 108 indicating which applications can access location history and the extent to which applications can access location history.

[0141] In one embodiment, the user of mobile device 108 can set rules indicating which applications can access location history. For example, the user can set a rule allowing all coupon applications to access the number of times mobile device 108 has visited a grocery store in the past week. In this case, if a coupon application instead requests location history information about the number of times the user has visited a department store, the request can be denied or the user can be prompted.

[0142] In another instance, a user may allow a shopping application to access location history information associated with a corresponding storage location. Therefore, when a user installs a new shopping application, the location history extraction / abstraction module 326 can access the user's permission pattern through machine learning and set this permission as the default for the new shopping application.

[0143] In another instance, the user may have previously always allowed the application to access the location history of the mobile device 108, so the location history extraction / abstraction module 326 can grant the application access to the location history of the mobile device 108 for this specific request without having to prompt the user.

[0144] In this embodiment, the location history extraction / abstraction module 326 can prompt the user when the application requests location history information, and the location history extraction / abstraction module 326 can determine whether the application can access the location history based on the user's response to the prompt. For example, when the application requests location history information, a prompt can be displayed to the user to answer whether the application can access the location history information, and the degree to which the request can be displayed.

[0145] Additionally, the application request may include privacy information that allows the user of mobile device 108 to properly control the location history of mobile device 108. For example, refer to Figure 9 The location history information may contain detailed information about the route of mobile device 108 (represented as series points 910), and detailed heart rate sensor information associated with the route. Series points 910 may represent the location of mobile device 108 at periodic GPS locations. The location history may also contain a higher-level view of the route of mobile device 108, wherein the location of mobile device 108 may correspond to multiple access points (e.g., WLAN access points) within the range and accessible by mobile device 108. The coverage area 920 of the access point, etc. Finally, the location history may contain a higher-level view of the location of the mobile device 108, wherein the location of the mobile device 108 may correspond to the coverage area 930 of the cellular base station serving the mobile device 108.

[0146] In the case of a pedometer application, the user of mobile device 108 may grant the application access to the detailed route of mobile device 108 (i.e., serial points 910), but not to the heart rate sensor information associated with the route. However, in the case of a weighted loss application, the user may grant the application access to the heart rate sensor information associated with the route of mobile device 108. However, the user may restrict the permissions of the weighted loss application to only receive access to the advanced area 930 of the location where heart rate sensor information is recorded, rather than providing access to the route of mobile device 108.

[0147] In an embodiment, information in a request for location history information can be used to filter location history records. For example, a request for location history information may include a category or subcategory, such as grocery shopping. Location history extraction / abstraction module 326 may determine whether the requesting application has access to location history records associated with grocery shopping, and if the requesting application has access to location history records associated with grocery shopping, then the location history records may be filtered to include only location history records with interests associated with "grocery shopping".

[0148] refer to Figure 5 For example, location history records 502A to Z will be filtered to include those from Safeway.TM Location history (including location history 502D, 502E, and 502I), and data from Whole Foods. TM Location history (including location history 502F). However, it will not include information related to 7-Eleven. TM The associated location history (e.g., 502M) is because it was not categorized as "grocery shopping".

[0149] In embodiments, the request may include an indication of the granularity level of location history, referred to herein as location granularity. For example, an application might want to know a user's location in a particular store, the duration a user spends at a specific location within the store, the user's route within the store, and so on, while different applications might only want to know the number of times a user was in the store. Location history may contain varying degrees of location granularity based on different application requirements, user permissions, technologies available for determining location, and so on. For example, an application associated with a grocery store might want to know the user's precise location (e.g., Figure 9 The series of points (910) can be used to assist in store route planning, advertising placement, etc., while coupon apps may need the number of times a user has visited a specific store to offer reward coupons. In another example, a user may grant an application access to highly accurate location data (e.g., Figure 9 (Series of points 910), while only allowing another application to access low-precision location data (e.g., Figure 9 (Coverage area 920 or 930).

[0150] In an embodiment, the result may include credentials, such as a key, for the application. The location history extraction / abstraction module 326 may use the credentials to determine whether the application is permitted to access location history records. For example, the location history extraction / abstraction module 326 may compare a key from a request with a key associated with the location history records to determine whether the application is permitted to access the location history information. The key may be stored in a field as at least one of the location history records 502A to 502Z or stored in different portions of memory 210.

[0151] The key may be stored and associated with the following: concern category, activity category, application category, one or more concerns, one or more activities, location uncertainty threshold associated with the determination of the location of mobile device 108, technology used to determine the location of mobile device 108, time period of location history, time of generating location history, use of location history by application, name of application, data generated by the mobile device's sensors, or any combination thereof.

[0152] In embodiments, requests for access to location history may include location uncertainty and / or location technology. For example, Figure 5 Location history 502E may contain locations in location column 506 obtained only from cellular network 101, and location history 502D may contain locations in location column 506 obtained from cellular network 101 and another source (e.g., WiFi). Therefore, if the request restricts location technology to WiFi and the mobile app has permission to access location history, the returned information is limited to location history 502D. In another instance, where location history 502E has a location uncertainty of 1 kilometer and location history 502D has a location uncertainty of 50 meters, and where the request contains a location uncertainty greater than 500 meters, then the application can access location history 502E. However, if the request contains a location uncertainty less than 500 meters, then the application can access location history 502D.

[0153] In an embodiment, the request may include a time period, where the location history is limited to records within that time period. The time period may specify the time when the location history was created, the time when the location was determined, and so on. For example, refer to... Figure 5 If the request includes a time period from 12:00 pm on July 14, 2014 to 3:00 pm on July 14, 2014 (and the processor 228 has determined that the application has permission to access the location history), then the location history 502I (which is within the time period from 12:00 pm on July 14, 2014 to 12:30 pm on July 14, 2014) is provided to the application.

[0154] In another example, a user can enable a privacy mode that blocks one or more applications from accessing location history from the time period in which privacy mode is enabled. A user of mobile device 108 may wish to restrict the sharing of mobile device 108's location history with a single application, but may only want to do so temporarily without changing permission settings. Therefore, the user can enable privacy mode while allowing the application to continue accessing the location history of mobile device 108. In this case, even after the user has disabled privacy mode, other applications may not be allowed to access the location history generated during the period when the device is in privacy mode.

[0155] In an embodiment, the request may include the manner in which location history information will be used. For example, a user may set rules that allow any application to access the location history of mobile device 108 to offer rewards based on the location history of mobile device 108. In this case, if an application requests to indicate that it is using location history to send promotional offers to the user of mobile device 108, then the location history extraction / abstraction module 326 may allow the application to access the location history and may also filter the location history based on the use of the location history.

[0156] In another embodiment, the user of mobile device 108 may allow an application to access its location history based on the application's location history usage. In this case, the location history extraction / abstraction module 326 compares the location history usage in the request with the location history usage permitted by the user, and then determines whether the application can access the location history based on the comparison.

[0157] In an embodiment, the request may include the name of the application. For example, refer to Figure 5 If the request contains Whole As the name of the application, the location history extraction / abstraction module 326 can determine whether the application is accessible to the Whole. Record the location history associated with 502F.

[0158] In an embodiment, the application may request a location history containing data generated by one or more sensors 224 of the mobile device 108. For example, refer to Figure 5 An application may request location history containing data from a heart rate sensor, such as location history 502G, which contains information generated by the heart rate sensor (i.e., 75 bpm) in field 516. Users may allow specific applications, such as fitness apps, to access the sensor data, but may want to control which other applications can access this sensitive data.

[0159] In other situations, users may be persuaded to share their location history with an application. For example, an application could be bundled with a horror movie and offer the user a free ticket to the film while they are in the theater in exchange for monitoring their heart rate. In another instance, an application could be bundled with a drug trial, and the user may want to share information with the application as part of the trial (e.g., remote patient monitoring). In this case, providing pharmaceutical companies with various sensor data from a user throughout the day could allow for a better understanding of the drug's side effects, and so on.

[0160] In an embodiment, the application request may include what information the application wants to extract from location history. For example, refer to... Figure 5 The data derived from location history 502D may include locations from location column 506 obtained from cellular network 101 and another source, and the most recent request from the application to location history 502D was made on July 14, 2014 at 6:10 pm. For example, the application may request that the user visit Safeway within the past thirty days. TM The location history extraction / abstraction module 326 determines the number of times the application can access the exported information, and the user may grant the application permission to access the exported information. After the location history extraction / abstraction module 326 has determined that the application is permitted to access the data exported from the location history, the location history extraction / abstraction module 326 may determine the information exported from the location history.

[0161] In this respect, data derived from location history records may include the number of times mobile device 108 has been at a given location and / or the number of times mobile device 108 has been associated with a given activity. For example, Safeway TM The application can request information about Safeway TM The count of the number of location history records, regarding Safeway TM The average of all time durations in the location history, 510, about Safeway TM Other statistics of the location history (e.g., mean, standard deviation, etc.) and similar, or any combination thereof.

[0162] In this embodiment, the application may be able to modify information in the location history. For example, with Whole The associated application can determine that a user is located in a specific Whole at a specific time. And the application may have users only from Whole The app recognizes users' locations as places where they purchase food. Therefore, it can retrieve the corresponding location history, and if the user has permission, reclassify it from "grocery shopping" to "dining," while retaining other location history categorized as grocery shopping. This allows the app to utilize any information it may have about the user and update the location history to ensure it is properly categorized.

[0163] In this embodiment, the location history information provided to the application may include data derived from location history records, and may also include a summary description and / or calculations based on the location history records. For example, the summary description may include an identifier of the location history records (which may be...) Figure 5 Each location history record includes additional fields 502A to Z and / or a description of the location history. For example, for Figure 5Location history record 502D, the description of which could be "on July 14, 2014 at Safeway" TM Shopping at a general store.

[0164] In embodiments, the activity metadata tags associated with location history can be updated in response to data generated by one or more sensors 224. For example, an activity might be set to shopping because the point of interest is identified as a shopping mall. However, sensor data from a heart rate sensor might indicate a high heart rate that could be associated with running or exercise, thus updating the activity bookmark to "exercise." In some scenarios, additional sensor data from an accelerometer and gyroscope might indicate the pace from the mobile device 108, and acceleration gait might indicate that the user is running, thus the activity in the location history could be further categorized as "running." In another example, referring to... Figure 5 If one of the sensors 224 is a heart rate sensor and the data generated by the heart rate sensor indicates that the user of the mobile device 108 has a heart rate higher than the resting heart rate, then the walking activity can be updated to the running activity.

[0165] In this embodiment, mobile device 108 can dynamically adjust location history tracking and caching based on requests received from the mobile app. Application requests can be used to perform improved location history tracking in several ways. For example, if an application makes a request that mobile device 108 is aware of in advance, the analytics module can perform fine-grained tracking of dwell time in the area where the application request was made, replace location technologies for the requested category if necessary, register additional sensors (e.g., payment systems, music players, video players, pedometers, etc.) based on the application request, remove clusters from the cached location history when no current application request matches, and so on. Additionally, previous application requests can be used as predictors of the categories of mobile apps a user may download in the future. These scenarios can also be used to determine which location history information is important to the user.

[0166] Figure 10 This is a flowchart illustrating a method 1000 according to at least one aspect of the present invention for providing information associated with the location history of a mobile device to one or more applications. At 1002, the processor 228 of the mobile device 108 (e.g., location compression and analysis module 324) may generate one or more location history records based on one or more locations of the mobile device, as referenced above. Figure 7 As described. One or more locations of a mobile device can be determined at a first periodic rate, and the historical record of each location can include one or more points of interest and the duration of the mobile device at one or more points of interest.

[0167] At 1004, the processor 228 of the mobile device 108 (e.g., location history extraction / abstraction module 326) receives an information request from at least one of one or more applications.

[0168] At 1006, the processor 228 of the mobile device 108 (e.g., location history extraction / abstraction module 326) determines a subset of one or more location history records that meet the criteria from the information request.

[0169] At this location 1008, the processor 228 of the mobile device 108 (e.g., location history extraction / abstraction module 326) determines the permission level of at least one application based on the information request and a subset of one or more location history records.

[0170] At 1012, the processor 228 of the mobile device 108 (e.g., location history extraction / abstraction module 326) provides information associated with the subset of the one or more location history records to the at least one application based on the permission level of the at least one application. The information may be all or a subset of various fields of the subset of location history records and / or information derived from the subset of location history records.

[0171] Figure 11 The description indicates an instance of a user device 1100, which is a series of related functional modules. The module 1102 used for generation may correspond, at least in some respects, to, for example, a processing system. Figure 2 The processor 228 in the document is as described herein. The module 1104 for receiving may correspond, at least in some respects, to, for example, a processing system, such as... Figure 2 The processor 228, as discussed herein, is used to determine the module 1106, which may correspond, at least in some respects, to, for example, a processing system. Figure 2 The processor 228, as discussed herein, is used to determine the module 1108, which may correspond, at least in some respects, to, for example, a processing system. Figure 2 The processor 228, as discussed herein, is provided. The module 1110 provided may correspond, at least in some respects, to, for example, a processing system, such as... Figure 2 The processor 228 in the document is as discussed in this article.

[0172] Figure 11The functionality of the modules can be implemented in various ways consistent with the teachings herein. In some designs, the functionality of these modules can be implemented as one or more electrical components. In some designs, the functionality of these modules can be implemented as a processing system including one or more processor components. In some designs, the functionality of these modules can be implemented using, for example, at least a portion of one or more integrated circuits (e.g., ASICs). As discussed herein, an integrated circuit may include a processor, software, other related components, or a combination thereof. Therefore, the functionality of different modules can be implemented as, for example, different subgroups of integrated circuits, as different subgroups of a software module group, or a combination thereof. Furthermore, it will be understood that a given subgroup (e.g., integrated circuits and / or a software module group) can provide at least a portion of the functionality for more than one module.

[0173] in addition, Figure 11 The components and functions represented, as well as other components and functions described herein, can be implemented using any suitable means, which can also be implemented at least in part using the corresponding structures as taught herein. For example, the above-mentioned combination Figure 11 The components described by the “module” for assembly may correspond to similarly specified “devices” for functionality. Thus, in some aspects, one or more of these devices may be implemented using one or more of processor components, integrated circuits, or other suitable structures as taught herein.

[0174] Those skilled in the art will understand that a feature described with reference to one figure in this document is interchangeable with a feature described with reference to other figures in this document, and the absence of a description of a particular figure with reference to a particular figure does not preclude the incorporation of a particular feature into an instance of an aspect described by a particular figure.

[0175] Those skilled in the art understand that information and signals can be represented using any of a variety of different techniques and technologies. For example, data, instructions, commands, information, signals, bits, symbols, and chips referred to herein can be represented by voltage, current, electromagnetic waves, magnetic fields or magnetic particles, light fields or optical particles, or any combination thereof.

[0176] Furthermore, those skilled in the art will understand that the various illustrative logic blocks, modules, circuits, and algorithmic operations described in connection with the aspects disclosed herein can be implemented as electronic hardware, computer software, or a combination of both. To clearly illustrate this interchangeability between hardware and software, various illustrative components, blocks, modules, circuits, and operations have generally been described above in terms of their functionality. Whether this functionality is implemented as hardware or software depends on the specific application and design constraints imposed on the overall system. While those skilled in the art may implement the described functionality in variations for each specific application, such implementation decisions should not be construed as causing a departure from the scope of the aspects disclosed herein.

[0177] The various illustrative logic blocks, modules, and circuits described in conjunction with the embodiments disclosed herein can be implemented or performed by: a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. The general-purpose processor may be a microprocessor, but alternatively, the processor may be any known processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors incorporating a DSP core, or any other such configuration.

[0178] The methods, sequences, and / or algorithms described in connection with the aspects disclosed herein can be implemented directly in hardware, as a software module executed by a processor, or a combination of both. The software module may reside in random access memory (RAM), flash memory, read-only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), registers, hard disks, removable disks, optical disc read-only memory (CD-ROM), or any other form of storage medium known in this art. An exemplary storage medium is coupled to the processor so that the processor can read information from the storage medium and write information to the storage medium. Alternatively, the storage medium may be integral with the processor.

[0179] Therefore, aspects of the present invention may include computer-readable media embodying methods for generating location history records for mobile device 108. Thus, the present invention is not limited to the illustrated examples and any means included in the aspects of the invention for performing the functionality described herein.

[0180] While the foregoing disclosure illustrates illustrative aspects of the invention, it should be noted that various changes and modifications may be made herein without departing from the scope of the invention as defined in the appended claims. The functions, operations, and / or actions of the methods described in the claims according to aspects of the invention need not be performed in any particular order. Furthermore, although elements of the invention may be described or claimed in the singular form, the plural form is also covered unless a limitation on the singular form is expressly stated.

Claims

1. A method for providing information associated with the location history of a mobile device to a first application among a plurality of applications on the mobile device, the method comprising: Independent of the first application, multiple locations of the mobile device are determined by at least one processor of the mobile device, wherein each location corresponds to a different time. Multiple location records corresponding to the multiple locations of the mobile device are stored in the local memory of the mobile device; After storing the plurality of location records, the processor of the mobile device receives a route information request from the first application among the plurality of applications, the information request including criteria for filtering the plurality of location records and one or more requested periodic rates for determining the location of the mobile device. The first periodic rate is determined by the at least one processor of the mobile device based on the one or more requested periodic rates; At the processor of the mobile device, it is determined whether the first application has permission to access the plurality of location records based on the permission level associated with the first application; In response to determining that the first application has permission to access the plurality of location records, information is determined by the at least one processor of the mobile device based on the plurality of location records that satisfy the criteria, wherein the information corresponds to two or more location records associated with the route, and wherein the two or more location records are determined at the first periodic rate. as well as The information is provided to the first application via the at least one processor of the mobile device.

2. The method of claim 1, wherein each of the plurality of location records further comprises: The duration of the mobile device at the location, the points of interest associated with the location, the activities associated with the location, the metadata associated with the location, or any combination thereof.

3. The method of claim 2, wherein the criteria for filtering the plurality of location records include: One or more locations, one or more points of interest, one or more activities, one or more durations, one or more times, one or more location uncertainties, one or more positioning technologies, or any combination thereof.

4. The method according to claim 1, wherein the information is further determined by the at least one processor of the mobile device based on the permission level of the first application.

5. The method of claim 4, wherein determining the information based on the permission level of the first application via the at least one processor of the mobile device further comprises: Obtain the permission level of the first application, wherein the permission level is set by user prompts, preset permissions, preset rules, previously granted permissions, or any combination thereof.

6. The method of claim 1, wherein the information includes one or more location records, a subset of information from the one or more location records, statistics related to the one or more location records, or any combination thereof.

7. The method of claim 4, wherein determining the information by the at least one processor of the mobile device based on the plurality of location records and the criteria, and the permission level of the first application, comprises: A subset of multiple location records is obtained based on the multiple location records and the criteria; The access level is determined based on the permission level of the first application; as well as The information associated with the subset of the plurality of location records is determined based on the access level.

8. The method of claim 7, wherein the access level is further determined based on one or more requirements of the first application.

9. The method of claim 1, wherein one or more of the plurality of location records further include sensor data from one or more sensors, wherein the one or more sensors include: Electric field sensor, magnetic sensor, optical sensor, motion sensor, accelerometer, inertial measurement sensor, pressure sensor, olfactory sensor, heart rate sensor, chemical environment sensor, biosensor, metabolic indicator sensor, radio frequency point of sale sensor, or any combination thereof.

10. An apparatus for providing information associated with the location history of a mobile device to a first application among a plurality of applications on the mobile device, the apparatus comprising: At least one memory of the mobile device; At least one processor of the mobile device, communicatively coupled to the at least one memory, the at least one processor being configured to: Independent of the first application, multiple locations of the mobile device are determined, each location corresponding to a different time. The at least one memory stores multiple location records corresponding to the multiple locations of the mobile device; After storing the plurality of location records in the at least one memory of the mobile device, an information request for a route is received from the first application among the plurality of applications, the information request including criteria for filtering the plurality of location records and one or more requested periodic rates for determining the location of the mobile device; The first periodic rate is determined based on one or more of the requested periodic rates; Whether the first application has permission to access the multiple location records is determined based on the permission level associated with the first application; In response to determining that the first application has permission to access the plurality of location records, information is determined based on the plurality of location records that satisfy the criteria, wherein the information corresponds to two or more location records associated with the route, and wherein the two or more location records are determined at the first periodicity rate; and The information is provided to the first application.

11. The device of claim 10, wherein each of the plurality of location records further comprises: The duration of the mobile device at the location, the points of interest associated with the location, the activities associated with the location, the metadata associated with the location, or any combination thereof.

12. The device of claim 11, wherein the criteria for filtering the plurality of location records include: One or more locations, one or more points of interest, one or more activities, one or more durations, one or more times, one or more location uncertainties, one or more positioning technologies, or any combination thereof.

13. The device of claim 10, wherein the at least one processor is configured to further determine the information based on the permission level of the first application.

14. The device of claim 13, wherein the at least one processor is configured to further determine the information based on the permission level of the first application, including the at least one processor being configured to: Obtain the permission level of the first application, wherein the permission level is set by user prompts, preset permissions, preset rules, previously granted permissions, or any combination thereof.

15. The device of claim 10, wherein the information includes one or more location records, a subset of information from the one or more location records, statistics related to the one or more location records, or any combination thereof.

16. The device of claim 13, wherein the at least one processor is configured to determine the information based on the plurality of location records and the criteria, and the permission level of the first application, including that the at least one processor is configured to: A subset of multiple location records is obtained based on the multiple location records and the criteria; The access level is determined based on the permission level of the first application; as well as The information associated with the subset of multiple location records is determined based on the access level.

17. The device of claim 16, wherein the at least one processor is configured to further determine the permission level based on one or more requirements of the first application.

18. The device of claim 10, wherein one or more of the plurality of location records further comprises sensor data from one or more sensors, wherein the one or more sensors include: Electric field sensor, magnetic sensor, optical sensor, motion sensor, accelerometer, inertial measurement sensor, pressure sensor, olfactory sensor, heart rate sensor, chemical environment sensor, biosensor, metabolic indicator sensor, radio frequency point of sale sensor, or any combination thereof.

19. An apparatus for providing information associated with the location history of a mobile device to a first application among a plurality of applications on the mobile device, the apparatus comprising: A means for determining multiple locations of the mobile device independently of the first application, wherein each location corresponds to a different time; A means for storing multiple location records corresponding to the multiple locations of the mobile device; A means for receiving a route information request from a first application among the plurality of applications after storing the plurality of location records in the mobile device, the information request including criteria for filtering the plurality of location records and one or more requested periodic rates for determining the location of the mobile device. A means for determining a first periodic rate based on one or more requested periodic rates; A means for determining whether the first application has permission to access the plurality of location records based on the permission level associated with the first application; In response to means for determining that the first application has permission to access the plurality of location records, means for determining information based on the plurality of location records that satisfy the criteria, wherein the information corresponds to two or more location records associated with the route, and wherein the two or more location records are determined at the first periodic rate; as well as A means for providing the information to the first application.

20. The device of claim 19, wherein each of the plurality of location records further comprises: The duration of the mobile device at the location, the points of interest associated with the location, the activities associated with the location, the metadata associated with the location, or any combination thereof.

21. The device of claim 20, wherein the criteria for filtering the plurality of location records include: One or more locations, one or more points of interest, one or more activities, one or more durations, one or more times, one or more location uncertainties, one or more positioning technologies, or any combination thereof.

22. The device of claim 19, wherein the means for determining the information is further based on the permission level of the first application.

23. The device of claim 22, wherein the means for further determining the information based on the permission level of the first application includes at least one processor configured to: Obtain the permission level of the first application, wherein the permission level is set by user prompts, preset permissions, preset rules, previously granted permissions, or any combination thereof.

24. The device of claim 19, wherein the information includes one or more location records, a subset of information from the one or more location records, statistics related to the one or more location records, or any combination thereof.

25. The device of claim 22, wherein the means for determining information based on the plurality of location records and the criteria, and the permission level of the first application, comprises: A means for obtaining a subset of multiple location records based on the multiple location records and the criteria; A means for determining an access level based on the permission level of the first application; as well as A means for determining the information associated with the subset of the plurality of location records based on the access level.

26. The device of claim 25, wherein the means for determining the access level is further based on one or more requirements of the first application.

27. The device of claim 19, wherein one or more of the plurality of location records further comprises sensor data from one or more sensors, wherein the one or more sensors comprise: Electric field sensor, magnetic sensor, optical sensor, motion sensor, accelerometer, inertial measurement sensor, pressure sensor, olfactory sensor, heart rate sensor, chemical environment sensor, biosensor, metabolic indicator sensor, radio frequency point of sale sensor, or any combination thereof.

28. A non-transitory computer-readable medium for providing information associated with the location history of a mobile device to a first application of a plurality of applications on the mobile device, comprising processor-executable program code configured to cause the processor to: Independent of the first application, multiple locations of the mobile device are determined, each location corresponding to a different time. Multiple location records corresponding to the multiple locations of the mobile device are stored in the local memory of the mobile device; After storing the plurality of location records in the local memory of the mobile device, the processor of the mobile device receives a route information request from the first application among the plurality of applications, the information request including criteria for filtering the plurality of location records and one or more requested periodic rates for determining the location of the mobile device. The first periodic rate is determined based on one or more of the requested periodic rates; At the processor of the mobile device, it is determined whether the first application has permission to access the plurality of location records based on the permission level associated with the first application; In response to determining that the first application has permission to access the plurality of location records, information is determined by at least one processor of the mobile device based on the plurality of location records that satisfy the criteria, wherein the information corresponds to two or more location records associated with the route, and wherein the two or more location records are determined at the first periodic rate. as well as The information is provided to the first application via the at least one processor of the mobile device.

29. The non-transitory computer-readable medium of claim 28, wherein each of the plurality of location records further comprises: The duration of the mobile device at the location, the points of interest associated with the location, the activities associated with the location, the metadata associated with the location, or any combination thereof.

30. The non-transitory computer-readable medium of claim 29, wherein the criteria for filtering the plurality of location records include: One or more locations, one or more points of interest, one or more activities, one or more durations, one or more times, one or more location uncertainties, one or more positioning technologies, or any combination thereof.

31. The non-transitory computer-readable medium of claim 28, wherein the processor-executable program code is configured to enable the processor to further determine information based on the permission level of the first application via the at least one processor of the mobile device.

32. The non-transitory computer-readable medium of claim 31, wherein the processor executable code is configured to cause the processor to further determine the information based on the permission level of the first application, including the processor executable code being configured to cause the processor to: Obtain the permission level of the first application, wherein the permission level is set by user prompts, preset permissions, preset rules, previously granted permissions, or any combination thereof.

33. The non-transitory computer-readable medium of claim 28, wherein the information comprises one or more location records, a subset of information from the one or more location records, statistics associated with the one or more location records, or any combination thereof.

34. The non-transitory computer-readable medium of claim 31, wherein the processor executable code is configured to cause the processor to determine the information based on the plurality of location records and the criteria, and the permission level of the first application, including the processor executable code being configured to cause the processor to: A subset of multiple location records is obtained based on the multiple location records and the criteria; The access level is determined based on the permission level of the first application; as well as The information associated with the subset of the plurality of location records is determined based on the access level.

Citation Information

Patent Citations

  • Positional accuracy control device and method

    CN104270717A

  • Activity Recognition Systems and Methods

    US20140128105A1