REAL-TIME LOCATION AND PRESENCE USING A PUSH-LOCATION CLIENT AND SERVER
20260040226 ยท 2026-02-05
Assignee
Inventors
Cpc classification
H04W52/0251
ELECTRICITY
H04W52/0274
ELECTRICITY
H04W52/0254
ELECTRICITY
H04W52/0258
ELECTRICITY
H04W64/006
ELECTRICITY
Y02D30/70
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
International classification
G01S5/00
PHYSICS
Abstract
A system for providing real-time always-on location is presented for maintaining the current location of a mobile device, while saving the battery by managing the GPS in a power-saving mode while the device is considered to be stationary. The system also provides a real-time location in an indoor environment where a GPS signal may not be available. Additionally, methods for driving detection are also presented.
Claims
1. A computer-implemented method, comprising: determining, by a mobile computing device, that a location of a user changed above a specified threshold; sending, by the mobile computing device, information pertaining to the change in the location of the user to one or more servers that are configured to provide location information to one or more applications based on a respective sharing level of the one or more other applications; determining, by the mobile computing device, that the mobile computing device is stationary with a specified threshold of accuracy and waiting for a specified time or until a trigger or notification is received indicating that the location of the user has changed before requesting location information from a mobile positioning system; displaying, by the mobile computing device, a sharing level interface screen comprising a plurality of privacy or sharing level options to a user; receiving, by the mobile computing device, one or more privacy and/or sharing level setting changes from the user; and changing, by the mobile computing device, one or more of the plurality of privacy and/or sharing level options based on the privacy and/or sharing level setting changes received from the user, wherein the plurality of privacy and/or sharing level options correspond with an amount of detail that is provided pertaining to the location of the user.
2. The computer-implemented method of claim 1, wherein one or more privacy and/or sharing levels associated with the plurality of privacy and/or sharing level options comprise or correspond to a security or access level provided to the application or a user with whom the location information is to be shared.
3. The computer-implemented method of claim 1, wherein one or more privacy and/or sharing levels associated with the plurality of privacy and/or sharing level options comprise a time and/or duration of a location access level granted to the application or a user with whom the location information is to be shared.
4. The computer-implemented method of claim 1, wherein one or more privacy and/or sharing levels associated with the plurality of privacy and/or sharing level options comprise application activity levels granted by the mobile computing device.
5. One or more non-transitory computer-readable media storing one or more computer programs, the one or more computer programs configured to cause at least one processor to: display a location privacy interface screen comprising a plurality of privacy or sharing level options to a user for one or more applications for a mobile computing device; receive one or more privacy and/or sharing level setting changes from the user corresponding to an application of the one or more applications; and change the privacy and/or sharing level settings for the application of the one or more applications, wherein location information shared with the application of the one or more applications by the mobile computing device corresponds to the one or more privacy and/or sharing level setting changes from the user.
6. The one or more non-transitory computer-readable media of claim 5, wherein the one or more computer programs are further configured to cause the at least one processor to: determine that a location of a user changed above a specified threshold; and send information pertaining to the change in the location of the user to one or more servers that are configured to provide location information to the one or more applications based on a respective sharing level of the one or more other applications.
7. The one or more non-transitory computer-readable media of claim 6, wherein the one or more computer programs are further configured to cause the at least one processor to: determine that the mobile computing device is stationary with a specified threshold of accuracy and wait for a specified time or until a trigger or notification is received indicating that the location of the user has changed before requesting location information from a mobile positioning system.
8. The one or more non-transitory computer-readable media of claim 5, wherein the plurality of privacy and/or sharing level options correspond with an amount of detail that is provided pertaining to the location of the user.
9. The one or more non-transitory computer-readable media of claim 5, wherein one or more privacy and/or sharing levels associated with the plurality of privacy and/or sharing level options comprise or correspond to a security or access level provided to the application or a user with whom the location information is to be shared.
10. The one or more non-transitory computer-readable media of claim 5, wherein one or more privacy and/or sharing levels associated with the plurality of privacy and/or sharing level options comprise a time and/or duration of a location access level granted to the application or a user with whom the location information is to be shared.
11. The one or more non-transitory computer-readable media of claim 5, wherein one or more privacy and/or sharing levels associated with the plurality of privacy and/or sharing level options comprise application activity levels granted by the mobile computing device.
12. A mobile computing device, comprising: memory storing computer program instructions; and at least one processor configured to execute the computer program instructions, wherein the computer program instructions are configured to cause the at least one processor to: display a location privacy interface screen comprising a plurality of privacy or sharing level options to a user for one or more applications for a mobile computing device, receive one or more privacy and/or sharing level setting changes from the user corresponding to an application of the one or more applications, and change the privacy and/or sharing level settings for the application of the one or more applications, wherein location information shared with the application of the one or more applications by the mobile computing device corresponds to the one or more privacy and/or sharing level setting changes from the user.
13. The mobile computing device of claim 12, wherein the computer program instructions are further configured to cause the at least one processor to: determine that a location of a user changed above a specified threshold; and send information pertaining to the change in the location of the user to one or more servers that are configured to provide location information to the one or more applications based on a respective sharing level of the one or more other applications.
14. The mobile computing device of claim 13, wherein the computer program instructions are further configured to cause the at least one processor to: determine that the mobile computing device is stationary with a specified threshold of accuracy and wait for a specified time or until a trigger or notification is received indicating that the location of the user has changed before requesting location information from a mobile positioning system.
15. The mobile computing device of claim 12, wherein the plurality of privacy and/or sharing level options correspond with an amount of detail that is provided pertaining to the location of the user.
16. The mobile computing device of claim 12, wherein one or more privacy and/or sharing levels associated with the plurality of privacy and/or sharing level options comprise or correspond to a security or access level provided to the application or a user with whom the location information is to be shared.
17. The mobile computing device of claim 12, wherein one or more privacy and/or sharing levels associated with the plurality of privacy and/or sharing level options comprise a time and/or duration of a location access level granted to the application or a user with whom the location information is to be shared.
18. The mobile computing device of claim 12, wherein one or more privacy and/or sharing levels associated with the plurality of privacy and/or sharing level options comprise application activity levels granted by the mobile computing device.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0017] Foregoing aspects of the present invention will become better understood by referring to the following more detailed description and claims taken in conjunction with the accompanying drawings, wherein:
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
DETAILED DESCRIPTION OF THE EMBODIMENTS
[0026]
[0027] In another implementation of such a pull-based location request and response system, an application 110 can request the location directly from the GPS embedded in the mobile device 102, however, a location has to be continuously and periodically determined by the GPS to maintain a current location of the user. Further, if the application 110 requires such a real-time location be maintained on a location server on an operator or service provider network, such location updates have to be continuously transmitted using the mobile network, and take up a significant network traffic as well as drain the battery on the mobile device 102.
[0028] In another implementation of such a pull-based location request and response system, an application 110 can register with a location listener on the mobile device 102 that continuously requests location from the GPS embedded in the mobile device 102, which may eliminate the need for the application 110 to make such requests repeatedly, however, the listener is still periodically polling the GPS, and sending location updates to the subscribing application each time a location is determined by the GPS embedded in the mobile device 102.
[0029]
[0030] An exemplary real-time application 260 sends a subscription request with appropriate user-permissions and credentials, and the push-based mobile location server 250 first responds with the current location of the device, and subsequently sends location updates to the requesting application or middleware service provider as the location changes. The real-time application 260 or an embedded real-time application 236 are not required to repeatedly send location refresh requests to the server 250 or the GPS 234, and the push-location server similarly also doesn't need to send periodically repeated location refresh requests to the push-client 232 embedded in the mobile device in order to maintain a real-time location of the device.
[0031] The push-location server 250 also maintains a profile of specified or pre-determined locations of the user, where the user is stationary for a specified period of time. When the user is at these pre-determined locations, the push-location server 250 can optionally receive and monitors cell-ID and timing advance information to detect a location change, and if a location is changed, and it hasn't received an update from the push-client, it can then send a refresh request to the push-client 232. During this time when the user is at these pre-specified or per-determined locations, the push-client can send a sleep command to the embedded GPS 234 for saving power consumption of the battery on the mobile device. When a location change is detected either by an activity detection method such as one described in block diagram 300, or by a notification from the push-server such as one described in block diagram 400, the push-client 232 can wake up the GPS chip 234 and request a location update.
[0032]
[0033] In another implementation, the GPS 234 may be embedded inside or integrated with another chip inside the mobile device. In yet another implementation, another global navigation satellite system (GNSS) such as Galileo may be used for determining location, or a different positioning method, such as Wi-Fi based positioning method, used for determining location.
[0034]
[0035] When a notification or an event trigger is received, Push-Client 232 wakes up the GPS 234, and requests a location update from the GPS as in block 402. If in the decision block 404, the speed as determined by the GPS indicates that the device is in motion or at a new location, in block 406, the Push-Client sends a location update to the server, and waits for a specified time interval before requesting a location update from the GPS 234. To further optimize the location updates between Push-Client 232 and Push-Server 240, and to reduce the network traffic as the location changes when the user is in motion or when the user is at a new location, the details of blocks 402, 404, 406, 408 and 412 are further described in block diagram 700.
[0036] When the device 230 is stationary at a pre-determined location, in blocks 418,420, 422, and 424 the push-location server 240 periodically requests and monitors cell-ID and timing advance information from the mobile positioning system 220. If the location is determined to have changed within specified thresholds, the push-location server sends a request to the push-client 232 to send an updated location. The push-client 232 then wakes up the GPS or A-GPS chip 234, and refreshes the current location.
[0037] When the push-client 232 requests location from the embedded GPS or A-GPS 234, it also requests the speed. If the device is considered to be moving, it requests the location repeatedly to maintain a real-time location. The time for repeating the request when the device 230 is in motion is calculated based on the speed of the device, such that a near real-time location is maintained by the push-client 232. When the device is determined to be stationary, the GPS 234 is sent the command to be put into a power-saving mode.
[0038]
[0039] An exemplary web-based client application 506 and an application server 508 can subscribe to receive real-time location updates from the Push-Location Server 504, with user-permission and based on user-specified privacy settings. In the case of an exemplary embedded mobile application 510, which is a real-time location based presence application, the client application can subscribe to the Push-Location Server, and receive location updates on the mobile device directly from the Push-Client, while the Application Server 512, a Presence Server determines the presence status based on location profile, privacy settings, and location updates received from the push-location server and the status updates received from the Presence Client 510. The presence status is then shared with other users based on the privacy settings with respect to each user.
[0040]
[0041]
[0042] In decision block 710, a determination is made if the speed is above the specified threshold for the user to be considered driving or in transit, and further, additional methods may be used to determine the driving status of the user, as described later in block diagram 800. If the user is determined to be in transit or driving, a transit message is sent to the Push-Server 240. Subsequently, in block 714, the Push-Client 232 periodically monitors the location and speed at specified time intervals, and saves the current location of the user, and periodically sends location updates to the Push-Server 240 so the server can maintain a real-time location of the user. In another implementation, the Push-Client 232 may only send the transit start and end points to the server to reduce the network traffic, and in yet another implementation, the Push-Client may intelligently determine when the heading or speed changes more than specified thresholds, and thereby only sending location updates when street information has likely changed, or when current location can't be interpolated by the server.
[0043] In decision block 716, if it is determined that the user is now considered stationary, in decision block 718, it is further determined if the user is at a pre-determined or a favorite location. If the user is at such a location, the corresponding favorite location and status update is sent to the Push-Server 240. However, if in decision block 718, user is determined to be at a new location, Push-Client 232 sends a location update to the Push-Server 240, and a corresponding address or POI information is determined by the server based on reverse geocode and POI search APIs. Subsequently, in block 726, the Push-Client 232 waits for specified time interval and/or event triggers indicating the user may have moved before requesting another update from the GPS 234.
[0044]