Real-time location and presence using a push-location client and server

Information

  • Patent Grant
  • 10999802
  • Patent Number
    10,999,802
  • Date Filed
    Thursday, May 23, 2019
    5 years ago
  • Date Issued
    Tuesday, May 4, 2021
    3 years ago
  • Inventors
  • Original Assignees
  • Examiners
    • Doan; Kiet M
    Agents
    • LeonardPatel PC
    • Leonard, II; Michael A.
    • Patel; Sheetal S.
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.
Description
BACKGROUND

Location based services (LBS) targeted for consumers and enterprise applications have started gaining acceptance by the industry.


With the advancements in Global Positioning System (GPS) technology for mobile devices, the accuracy of mobile positioning systems has improved significantly, and consumer LBS applications such as mapping, local search, and real-time navigation are now available from mobile carriers and several other companies.


However, the ability to determine and to constantly maintain a current, real-time location is still not available on mobile devices, and mobile positioning systems and location based applications continue to rely on a pull or request based system, where an application or the system queries and gets a precise current location when it is required and requested.


In case of real-time applications such as turn-by-turn navigation, the current location is determined in real-time by requesting the location repeatedly and in frequent timing intervals for the duration such an application is in use.


However, such a pull or request based system does not maintain a precise current location of device at all times, and doing that in real-time imposes a significant drain of battery resources of the mobile device as well as imposes significant computing costs for the mobile positioning system.


Even in case of an E-911 scenario, if a device shuts down in an unforeseen event or a mishap, a precise current location may not be available, and only an approximate location of a user may be available for emergence response purposes. In such events, mobile carriers can determine an approximate location of the user based on cell-ID, however, a precise current or last known location that can only be determined by querying the device using a GPS or A-GPS solution, which may not be available if the device has already shut down.


In summary, to optimize the computing resources, the mobile positioning system operates as a pull or request based system, and a precise location is only determined when an application requests it. For applications where a precise and current location of a user is required at all times, the mobile positioning system must repeatedly query the device in order to maintain a current, real-time location of the user. With state of the art techniques, an application can specify the frequency or timing intervals of such requests, and can offload this process to another middleware service provider, which can notify the subscribing application(s) when the location changes. However, in order to maintain a precise, current location at all times, the GPS or A-GPS chipset embedded in the device has to be regularly polled, and the battery consumption continues to be a major constraint in enabling such real-time applications.


SUMMARY

In instances such as in an emergency response scenario or in a real-time location or presence application, where a current location of the mobile device is required in real-time, one aspect of the present invention is to provide such information using a push-based method without repeatedly sending location requests from the application(s) or the mobile positioning system.


For most mobile users, the typical location versus time graph is such that for a good part of the day, the user is stationary at selected locations such as home or work, and only during a small part of the day they are either mobile or at other locations. One aspect of the present invention is to manage the power saving modes of the embedded GPS or A-GPS chipset in the device such that while the device is stationary as determined by an accelerometer embedded in the device or by other activity detection methods in the operating system, the GPS or A-GPS chipset is set in a power saving mode.


Another aspect of the present invention is that while the device is determined to be stationary at a pre-determined location, one of the power saving modes of the embedded GPS or A-GPS system in the device is such that much of the power consuming circuits are shut down, and only the receive circuitry is put into the standby mode. Periodically, the receive signals are monitored, and only if there is a threshold change, the embedded system is re-started and the location recomputed.


In another aspect of the present invention, the frequency of location requests are set based on the speed of the mobile device, so that when the user is stationary, the embedded GPS or A-GPS chipset is put in the power saving mode for longer duration, and when moving at a faster speed, the location changes are determined at frequent time intervals.


In yet another aspect of the present invention, the positioning method and frequency of location requests is adjusted based on battery constraints of the mobile device.


By reducing location requests or queries sent by the application(s) or the mobile positioning system to the device, the invention enables such a solution with significantly reduced power consumption requirements for the GPS or A-GPS chipset embedded in the device, and reduces computing resource requirements in the mobile positioning system.


One aspect of the present invention is to determine the real-time location by maintaining a location profile of pre-determined locations of a user and enabling power save modes when user is determined to be at these locations. For instance, if a user is at their home or work, the embedded GPS or A-GPS chip can be set to sleep mode until the mobile positioning system detects a change in location based on other positioning methods such as cell-ID and/or timing advance.


Another aspect of the present invention is for an application to subscribe to a location server with user-controlled permissions in order to receive real-time location updates of the user using a push-location method, whereby the application receives location updates when the user's location changes. Further, the application or the user may specify additional criteria that may limit or restrict when to enable location tracking or to send location updates to the application. For example, an enterprise application may only receive location updates pertaining to the specified places of work.





BRIEF DESCRIPTION OF THE DRAWINGS

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:



FIG. 1 is a block diagram of an exemplary pull-based location request system;



FIG. 2 is a block diagram of an exemplary push-based real-time location and mobile positioning system;



FIG. 3 is a block diagram of a push-client using motion and activity detection methods on a device to manage a GPS Power-save mode;



FIG. 4 is a block diagram of the mobile positioning system using the push-client and a push-server to determine a real-time location of the device and managing the GPS in a power-save-mode;



FIG. 5 is an overview of the push-client and the push-server inter-process communication;



FIG. 6 is a block diagram of the push-client maintaining the real-time location as a user moves to an indoor environment where GPS signal may not be available,



FIG. 7 is a block diagram of the push-client and the push-server maintaining the real-time location and status of an user while minimizing server updates and reducing network traffic; and



FIG. 8 is a block diagram of an exemplary system for detecting driving status using “In Car” detection methods.





DETAILED DESCRIPTION OF THE EMBODIMENTS


FIG. 1 provides a general description of a pull-based location request and response system 100, which is an overview of how the mobile positioning systems currently operate. In such a system, an application 110 requests location from a location server or a location middleware provider 108. The location middleware provider, in turn, requests location from the mobile positioning system, unless a current location is available from another recent request. In the case of a GSM based system, the mobile positioning system includes a Gateway Mobile Location Center (GMLC) 106 and a Serving Mobile Location Center (SMLC) 104, which in case of a Global Positioning System (GPS) capable device, requests location from the mobile device 102, unless a request was recently made by the system and a current location is already available in the mobile positioning system. After a valid location is determined by the device 102 that meets the accuracy criteria requested by the application 110, the location is sent to the SMLC 104, which further sends it to the GMLC 106. The GMLC, if the application has met the credentials for accessing the device's location, forwards the location to the location server or middleware provider 108, which then sends it the requesting application 110. In the case of such a pull-based request and response system, a location request has to be periodically made to refresh the current location of the user.


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.


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.



FIG. 2 provides an overview of the push-based real-time location system 200 proposed by the invention. In such an exemplary system, in addition to a standard mobile device 210 and a pull-based mobile positioning system 220 which was described in block diagram 100 earlier, the system includes a mobile device 230, push-based mobile location server (PMLS) 240, an application server 250, and one or more real-time location application(s) 260. The mobile device 230 includes a push-location client 232, an embedded GPS 234 and an embedded real-time location application 236. The push-location client 232 manages the GPS 234 and maintains the current location of the device, and provides location updates to the real-time location application 236, as well as to the push-based mobile location server 240. The location server 240 can provide location updates to subscribing application(s) such as real-time location application 260 either directly or through an application server 250. The key advantage of this system is that a real-time or an “always-on” location application is not required to request or receive continuous location updates from the location server in order to maintain the current location of the device, and instead location updates are sent the application intelligently when the location changes.


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.


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.



FIG. 3 is an exemplary block diagram of the push-client maintaining a real-time location of the device by monitoring when the device is stationary, and only when motion is detected, or a user activity is detected on the device, a location refresh request is sent to the embedded GPS or A-GPS. In this exemplary implementation 300, in the block 302, the Push-Client 232 sends a request to the accelerometer embedded in the device and/or to the mobile operating system to receive the measurements from the accelerometer in order to determine motion of the device. In the decision block 304, when the device is considered to be stationary, the Push-Client sends the command to put GPS in the power save mode. If motion is detected, the Push-Client requests current location and speed from the embedded GPS 234. In the block 310, the Push-Client 232 waits for specified time interval or in case of accelerometers or other motion detection methods that can provide event triggers when motion is detected, Push-Client 232 repeats the above steps. Further, the motion or activity of a mobile device 230 may be detected by an accelerometer or other sensors embedded in the mobile device 230, or by other activity detection methods provided by the mobile operating system. In an advanced implementation, this method may be integrated within the GPS chip 230.


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.



FIG. 4 is a more detailed flowchart of the push-based location system described in 200. In this implementation 400, in the block 402, Push-Client 232 requests location and speed from embedded GPS 234. In the decision block 404, when the device is determined to be stationary at a pre-determined location within specified thresholds, in block 410, the Push-Client 232 puts GPS 234 in a power saving mode. Additionally, in the decision block 412, if it is determined that the location has changed compared to last known location, in block 414, Push-Client 232 sends a location update to Push-Server 240. If the location has not changed in decision block 412, as well as after sending the update to Push-Server in case of block 414, in the block 416, the Push-Client 232, working in conjunction with the push-server to monitor and detect if the device location has changed, waits for notification from either the motion or activity detection methods as described in block diagram 300, or in case, such an option is not available, from the push-server 300 indicating that the location may have changed.


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.


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.


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.



FIG. 5 is an exemplary description of the inter-process communication between the push-client 502, and push-location-server 504 and an exemplary web based real-time application client 506, and application server 508, and another exemplary embedded real-time mobile application 510, such as a presence application, and a real-time application server 512 such as a presence server. A push-client 502 sends a registration request to the push-server, and sends the user's privacy settings to the server. Once the registration is done, the current location is sent, and subsequently location updates are sent to the push-server 504.


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.



FIG. 6 is a block diagram of a method used by the Push-Client 232 to maintain a real-time location as a user moves to an indoor environment where GPS signal may not be available. In this exemplary implementation 600, Push-Client 232 requests location and speed from the embedded GPS in block 602, and as described earlier, in blocks 604, 606, and 608, sets the received GPS location as the current location if the user is determined to be stationary, and waits for specified time interval and/or event triggers indicating that the user may have moved before requesting location from GPS again. In the decision block 604, if the user is determined to be in motion, Push-Client 232 periodically monitors the location updates from the GPS 234, and if a valid location update is received from the GPS 234, in block 622 it sets the new location as the current location. However, if in decision block 612, a valid location update is not received, as may be the case in an indoor location where GPS signal may not be available, in block 614, Push-Client 232 maintains the last known location as the current location, and in block 616, requests location from other indoor positioning modes, such as WiFi based location to monitor changes to last known location. In such a case, often the GPS may take longer to determine location or may not receive the location depending on the indoor environment. In block 618, the Push-Client waits for specified time interval, and if valid location is received, in block 620 and 622, it updates the current location, and until a GPS location is received it maintains the last known location as the current location.



FIG. 7 is a block diagram of the push-client and server maintaining a real-time location and status of user while minimizing server updates and reducing network traffic. In the block diagram 700, as described earlier in block diagram 400, in block 702, when the Push-Client 232 receives a new location update from the GPS 234, it determines if the location has changed, and if it is a distinct new location compared to last known location. In order to determine this, in block 704, it calculates distance between the new location and previously saved location. If in the decision block 706, the distance is greater than the minimum specified threshold for determining a distinct location, then in block 708, the Push-Client 232 saves it as the current location of the user.


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.


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.



FIG. 8 is a block diagram of an exemplary system for detecting driving status using “In Car” detection methods. In block diagram 800, in addition to determining transit status based on the speed threshold as described earlier and here again in blocks 802, 804 and 806, additional “In Car” methods may be used for detecting the driving status. In decision block 808, if an “In Car” method is enabled, the detection test is started in block 810. In one implementation, a proximity sensor may be used inside the car to detect the mobile device is inside the car. In the decision block 812, if a proximity sensor based detection method is available and enabled, in block 814, it is used to determine the “In Car” mode. In another implementation, connectivity status to an “In Car” accessory may be used for driving detection, as described in blocks 816 and 818. Additionally, if a user is determined to be in transit, and the device has a Bluetooth “In Car” profile setup, connection can be established using the Bluetooth profile to enable the driving profile as described in blocks 820 and 822. If the driving status is detected in blocks 814, 818, or 822, or assumed as the default option in block 806, the driving status is set and a corresponding transit update sent to the Push-Server 240. In another implementation, user can optionally specify the mode of transit, which is used as a default option when the user is determined to be in transit based on the speed threshold.

Claims
  • 1. A method, comprising: determining, by a client of a mobile device, whether a mobile device is considered to be driving or in transit based on a speed at which the mobile device is traveling;when the client of the mobile device determines that the mobile device is driving or in transit: sending, by the client, a transit message to a server, andmonitoring a current location and speed of the mobile device, by the client; andwhen the client detects that the speed of the mobile device has fallen below a speed threshold, and the mobile device is considered to be at an end point of a street along the driving or transit, sending the current location, the speed, and a heading at a start point and the end point to the server, by the client.
  • 2. The method of claim 1, further comprising: when the user is at the end point: sending a sleep command to an embedded positioning system of the mobile device, andinitiating a power saving mode that reduces consumption of battery power by the mobile device.
  • 3. The method of claim 1, further comprising: determining an address of the end point, by the client of the mobile device or the server, based on location coordinates.
  • 4. The method of claim 1, further comprising: when the end point is a business or point of interest (POI) location, updating a location status of the mobile device with information corresponding to the business or the POI; andwhen the end point is not at a business or a POI location, determining the location status based on geographical area level information or a sharing level status of a user.
  • 5. The method of claim 1, further comprising: maintaining recently visited end point locations where the mobile device is determined to be stationary for a specified period of time.
  • 6. The method of claim 1, further comprising: maintaining a profile of specified and/or pre-determined locations of the mobile device where the mobile device is stationary for a specified period of time.
  • 7. The method of claim 6, further comprising: enabling a power saving mode when the mobile device is determined to be at one of the specified and/or pre-determined locations of the profile.
  • 8. The method of claim 6, further comprising: assigning, by the mobile device, a privacy level of a plurality of privacy levels for sharing corresponding location information with each application specified by a user.
  • 9. The method of claim 8, wherein at a first privacy level, no location information is shared,at a second privacy level or two or more intermediate privacy levels, location information is shared based on privacy criteria, andat a third or final privacy level, all location information is shared with selected users and/or applications at all times.
  • 10. The method of claim 1, further comprising: determining a presence status of the mobile device based on a location profile, privacy settings of a plurality of users, and location updates received from a server; andsharing the presence status with the plurality of users or one or more applications, whereinthe presence status for a given user is based on the privacy settings for that respective user.
  • 11. The method of claim 1, wherein the client only sends start and end points of the driving or transit to the server, thereby reducing server updates from the mobile device while driving or in transit, and thus, reducing network traffic and improving battery performance of the mobile device.
  • 12. The method of claim 1, further comprising: determining, by the client, when a heading or the speed of the mobile device changes more than a heading threshold or a speed change threshold, respectively; andsending a location update to the server, by the client, when the heading threshold or the speed change threshold are exceeded.
  • 13. The method of claim 1, further comprising: determining, by the client, when street information has likely changed or the current location cannot be interpolated by the server; andsending the current location to the server, by the client, when the street information has likely changed or the current location cannot be interpolated by the server.
  • 14. A method, comprising: determining, by a client of a mobile device, whether a mobile device is considered to be driving or in transit based on a speed at which the mobile device is traveling; andwhen the client of the mobile device determines that the mobile device is driving or in transit: monitoring a current location and speed of the mobile device, by the client,when the client detects that the speed of the mobile device has fallen below a speed threshold, and the mobile device is considered to be at an end point of the driving or transit, sending the end point to the server, by the client, andmaintaining, by the client, recently visited end point locations where the mobile device is determined to be stationary for a specified period of time.
  • 15. The method of claim 14, further comprising: maintaining a profile of specified and/or pre-determined locations of the mobile device where the mobile device is stationary for a specified period of time; andenabling a power saving mode when the user is determined to be at one of the specified and/or pre-determined locations of the profile.
  • 16. The method of claim 15, further comprising: assigning a privacy level of a plurality of privacy levels to each of the specified and/or pre-determined locations, whereinat a first privacy level, no location information is shared, andat a second privacy level or two or more intermediate privacy levels, location information is shared based on privacy criteria, andat a third or final privacy level, all location information is shared with selected users and/or applications at all times.
  • 17. The method of claim 14, further comprising: determining a presence status of the mobile device based on a location profile, privacy settings of a plurality of users, and location updates received from a server; andsharing the presence status with the plurality of users, whereinthe presence status for a given user is based on the privacy settings for that respective user.
  • 18. A method, comprising: determining, by a client of a mobile device, whether a mobile device is considered to be driving or in transit based on a speed at which the mobile device is traveling; andwhen the client of the mobile device determines that the mobile device is driving or in transit: sending, by the client, a transit message to a server, andmonitoring a current location and speed of the mobile device, by the client, whereinthe client only sends start and end points of the driving or transit to the server, thereby reducing server updates from the mobile device while driving or in transit, and thus, reducing network traffic and improving battery performance of the mobile device.
  • 19. The method of claim 18, further comprising: determining, by the client, when a heading or the speed of the mobile device changes more than a heading threshold or a speed change threshold, respectively; andsending a location update to the server, by the client, when the heading threshold or the speed change threshold are exceeded.
CROSS REFERENCE TO RELATED APPLICATIONS

This application is a divisional of U.S. Nonprovisional patent application Ser. No. 15/956,924 filed Apr. 19, 2018, which is a continuation of U.S. Nonprovisional patent application Ser. No. 14/619,136 filed Feb. 11, 2015 (now issued as U.S. Pat. No. 9,980,231), which is a continuation of U.S. Nonprovisional patent application Ser. No. 13/923,722 filed Jun. 21, 2013 (now issued as U.S. Pat. No. 8,965,464), which is a continuation of U.S. Nonprovisional patent application Ser. No. 12/728,216 filed Mar. 20, 2010 (now issued as U.S. Pat. No. 8,489,111), which is a continuation-in-part (CIP) of U.S. Nonprovisional patent application Ser. No. 11/838,876 (now issued as U.S. Pat. No. 8,050,690). U.S. Nonprovisional patent application Ser. No. 12/728,216 also claims the benefit of U.S. Provisional Patent Application No. 61/162,263 filed Mar. 21, 2009. The subject matter of these earlier filed applications is hereby incorporated by reference in its entirety.

US Referenced Citations (253)
Number Name Date Kind
5946647 Miller et al. Aug 1999 A
6055513 Katz et al. Apr 2000 A
6057872 Candelore May 2000 A
6101484 Halbert et al. Aug 2000 A
6157841 Bolduc et al. Dec 2000 A
6269343 Pallakoff Jul 2001 B1
6295528 Marcus et al. Sep 2001 B1
6381303 Vu et al. Apr 2002 B1
6385458 Papadimitriou et al. May 2002 B1
6400956 Richton Jun 2002 B1
6442391 Johansson et al. Aug 2002 B1
6442530 Miller Aug 2002 B1
6446004 Cao et al. Sep 2002 B1
6452498 Stewart Sep 2002 B2
6505123 Root et al. Jan 2003 B1
6515619 McKay Feb 2003 B1
6542820 Lamance et al. Apr 2003 B2
6556975 Wittsche Apr 2003 B1
6560534 Abraham et al. May 2003 B2
6587835 Treyz et al. Jul 2003 B1
6611751 Warren Aug 2003 B2
6631404 Philyaw Oct 2003 B1
6647257 Owensby Nov 2003 B2
6651000 Van Diggelen et al. Nov 2003 B2
6668167 Mcdowell et al. Dec 2003 B2
6754585 Root et al. Jun 2004 B2
6756882 Benes et al. Jun 2004 B2
6756917 Gould et al. Jun 2004 B2
6760046 I Anson et al. Jul 2004 B2
6760601 Suoknuuti et al. Jul 2004 B1
6763299 Jones Jul 2004 B2
6763300 Jones Jul 2004 B2
6764003 Martschitsch et al. Jul 2004 B1
6788766 Logan Sep 2004 B2
6826617 Ansell et al. Nov 2004 B1
6829535 Van Diggelen et al. Dec 2004 B2
6836730 Root et al. Dec 2004 B2
6839554 Mcdowell et al. Jan 2005 B2
6847959 Arrouye et al. Jan 2005 B1
6850837 Paulauskas et al. Feb 2005 B2
6868396 Smith et al. Mar 2005 B2
6871140 Florance et al. Mar 2005 B1
6873997 Majjasie et al. Mar 2005 B1
6912398 Domnitz Jun 2005 B1
6912517 Agnihotri et al. Jun 2005 B2
6931254 Egner et al. Aug 2005 B1
6937998 Swartz et al. Aug 2005 B1
6944467 Ala-Luukko Sep 2005 B2
6944679 Parupudi et al. Sep 2005 B2
6947976 Devitt et al. Sep 2005 B1
6954633 Metternich et al. Oct 2005 B1
6954697 Smith Oct 2005 B1
6957393 Fano et al. Oct 2005 B2
6965868 Bednarek Nov 2005 B1
6965872 Grdina Nov 2005 B1
6973322 Buchmann et al. Dec 2005 B2
6973438 Philyaw Dec 2005 B1
6975872 Cheng Dec 2005 B2
6983146 Spratt Jan 2006 B2
6985813 Root et al. Jan 2006 B2
6988037 Root et al. Jan 2006 B2
6992617 Diggelen et al. Jan 2006 B2
6996402 Logan et al. Feb 2006 B2
6996579 Leung et al. Feb 2006 B2
7071842 Brady, Jr. Jul 2006 B1
7092964 Dougherty et al. Aug 2006 B1
7116985 Wilson et al. Oct 2006 B2
7206568 Sudit Apr 2007 B2
7219303 Fish May 2007 B2
7224978 Zellner et al. May 2007 B2
7224987 Bhela et al. May 2007 B1
7236799 Wilson et al. Jun 2007 B2
7237201 Fish Jun 2007 B2
7242946 Kokkonen et al. Jul 2007 B2
7245925 Zellner Jul 2007 B2
7266443 Hirose Sep 2007 B2
7315259 Sacks Jan 2008 B2
7352322 Tsujimoto et al. Apr 2008 B2
7412400 Bhela et al. Aug 2008 B1
7417544 Artem et al. Aug 2008 B2
7418267 Karaoguz Aug 2008 B2
7418451 Leung et al. Aug 2008 B2
7418503 Zellner et al. Aug 2008 B2
7426436 Van Watermulen et al. Sep 2008 B1
7532900 Wilson et al. May 2009 B2
7589628 Brady, Jr. Sep 2009 B1
7628704 Uhlir et al. Dec 2009 B1
7669070 Asmi Feb 2010 B2
7761414 Freedman Jul 2010 B2
8046721 Chaudhri et al. Oct 2011 B2
8068857 Wilson et al. Nov 2011 B2
8070608 Uhlir et al. Dec 2011 B2
8074172 Kocienda et al. Dec 2011 B2
8126889 Pitt Feb 2012 B2
9014973 Ruckart Apr 2015 B2
20010048449 Baker Dec 2001 A1
20020002504 Engel et al. Jan 2002 A1
20020035605 McDowell et al. Mar 2002 A1
20020065111 Otsuka et al. May 2002 A1
20020067308 Robertson Jun 2002 A1
20020077130 Owensby Jun 2002 A1
20020091568 Kraft et al. Jul 2002 A1
20020102993 Hendrey et al. Aug 2002 A1
20020111172 DeWolf et al. Aug 2002 A1
20020188589 Salmenkaita et al. Dec 2002 A1
20020198851 Hashimoto et al. Dec 2002 A1
20030055983 Callegari Mar 2003 A1
20030060214 Hendrey et al. Mar 2003 A1
20030078053 Abtin et al. Apr 2003 A1
20030093314 Leung et al. May 2003 A1
20030105719 Berger Jun 2003 A1
20030191578 Paulauskas et al. Oct 2003 A1
20030207683 Lempio et al. Nov 2003 A1
20030220835 Barnes, Jr. Nov 2003 A1
20030229592 Florance et al. Dec 2003 A1
20040023666 Moon et al. Feb 2004 A1
20040036622 Dukach et al. Feb 2004 A1
20040111335 Black et al. Jun 2004 A1
20040192351 Duncan Sep 2004 A1
20040203561 Jakubowski Oct 2004 A1
20040203879 Gardner et al. Oct 2004 A1
20040203888 Mikan Oct 2004 A1
20040203901 Wilson et al. Oct 2004 A1
20040203918 Moriguchi Oct 2004 A1
20040203922 Hines et al. Oct 2004 A1
20050027437 Takenaga et al. Feb 2005 A1
20050027608 Wiesmuller et al. Feb 2005 A1
20050079873 Caspi et al. Apr 2005 A1
20050085952 Park et al. Apr 2005 A1
20050096013 Lehikoinen et al. May 2005 A1
20050096040 Haberman et al. May 2005 A1
20050144291 Frank et al. Jun 2005 A1
20050153729 Logan et al. Jul 2005 A1
20050165788 Yang et al. Jul 2005 A1
20050177416 Linden Aug 2005 A1
20050202832 Sudit Sep 2005 A1
20050227711 Orwant et al. Oct 2005 A1
20050250517 Fukui et al. Nov 2005 A1
20050261001 Marley et al. Nov 2005 A1
20050272413 Bourne Dec 2005 A1
20060020508 Gorti Jan 2006 A1
20060022048 Johnson Feb 2006 A1
20060046744 Dublish et al. Mar 2006 A1
20060116817 Salmre et al. Jun 2006 A1
20060135177 Winterbottom et al. Jun 2006 A1
20060218151 Adelman et al. Sep 2006 A1
20060253453 Chmaytelli et al. Nov 2006 A1
20060258368 Granito et al. Nov 2006 A1
20060277290 Shank Dec 2006 A1
20070019587 Okamoto et al. Jan 2007 A1
20070037610 Logan Feb 2007 A1
20070042788 Duan Feb 2007 A1
20070042789 Moton et al. Feb 2007 A1
20070047479 Shaffer et al. Mar 2007 A1
20070049287 Dunn Mar 2007 A1
20070049288 Lamprecht et al. Mar 2007 A1
20070049289 Woo Mar 2007 A1
20070049292 Emond Mar 2007 A1
20070049293 Russell Mar 2007 A1
20070060171 Sudit Mar 2007 A1
20070072619 Wei et al. Mar 2007 A1
20070072621 Mukkavilli et al. Mar 2007 A1
20070072625 Fournier et al. Mar 2007 A1
20070072626 Babu et al. Mar 2007 A1
20070077939 Uematsu et al. Apr 2007 A1
20070077942 Heaven et al. Apr 2007 A1
20070077943 Hamilla Apr 2007 A1
20070080830 Sacks Apr 2007 A1
20070082614 Mock Apr 2007 A1
20070082668 Silver et al. Apr 2007 A1
20070082680 Fish Apr 2007 A1
20070082681 Kim et al. Apr 2007 A1
20070082682 Kim et al. Apr 2007 A1
20070088490 Sutardja Apr 2007 A1
20070091838 Kobayashi et al. Apr 2007 A1
20070093257 McDougall et al. Apr 2007 A1
20070096900 Contractor May 2007 A1
20070099625 Rosenfeld May 2007 A1
20070099627 Kofol et al. May 2007 A1
20070105565 Enzmann et al. May 2007 A1
20070105566 Sharony et al. May 2007 A1
20070117571 Musial May 2007 A1
20070117572 Adam et al. May 2007 A1
20070117573 Kennedy et al. May 2007 A1
20070124062 Janky et al. May 2007 A1
20070129082 Thacher Jun 2007 A1
20070129083 Creamer et al. Jun 2007 A1
20070135136 Ische Jun 2007 A1
20070142059 Wang et al. Jun 2007 A1
20070142060 Moton et al. Jun 2007 A1
20070149208 Syrbe et al. Jun 2007 A1
20070149210 McKiou et al. Jun 2007 A1
20070149211 Dunn et al. Jun 2007 A1
20070149212 Gupta et al. Jun 2007 A1
20070149213 Lamba et al. Jun 2007 A1
20070149214 Walsh et al. Jun 2007 A1
20070149216 Misikangas Jun 2007 A1
20070155399 Alberth et al. Jul 2007 A1
20070155400 Madsen Jul 2007 A1
20070159322 Campbell et al. Jul 2007 A1
20070161381 Chen et al. Jul 2007 A1
20070161382 Melinger et al. Jul 2007 A1
20070161401 Sheynblat Jul 2007 A1
20070162582 Belali et al. Jul 2007 A1
20070167170 Fitchett et al. Jul 2007 A1
20070167171 Bishop Jul 2007 A1
20070168127 Zaruba et al. Jul 2007 A1
20070168524 Chao et al. Jul 2007 A1
20070185768 Vengroff et al. Aug 2007 A1
20070197217 Sutardja Aug 2007 A1
20070233385 Dicke et al. Oct 2007 A1
20080065408 Salonen Mar 2008 A1
20080070593 Altman Mar 2008 A1
20080071749 Schloter Mar 2008 A1
20080085689 Zellner Apr 2008 A1
20080132251 Altman et al. Jun 2008 A1
20080134088 Tse et al. Jun 2008 A1
20080147546 Weichselbaumer et al. Jun 2008 A1
20080172173 Chang Jul 2008 A1
20080209332 Chevsky et al. Aug 2008 A1
20080214161 Jakl Sep 2008 A1
20080242231 Gray Oct 2008 A1
20080248810 Obradovich Oct 2008 A1
20080248815 Busch Oct 2008 A1
20080252517 Fuchs et al. Oct 2008 A1
20080266324 Lynch et al. Oct 2008 A1
20080288545 Hegedus et al. Nov 2008 A1
20080299900 Lesyna Dec 2008 A1
20080316091 Wigren et al. Dec 2008 A1
20090005127 Frenger Jan 2009 A1
20090006480 Fuchs et al. Jan 2009 A1
20090009397 Taylor et al. Jan 2009 A1
20090009398 Taylor et al. Jan 2009 A1
20090033553 Tusjimoto et al. Feb 2009 A1
20090042584 Nagata et al. Feb 2009 A1
20090043491 Haatainen Feb 2009 A1
20090047972 Neeraj Feb 2009 A1
20090063304 Meggs Mar 2009 A1
20090082024 Elliott Mar 2009 A1
20090098880 Lindquist Apr 2009 A1
20090163226 Karkaria et al. Jun 2009 A1
20090176475 Salkini et al. Jul 2009 A1
20090278738 Gopinath Nov 2009 A1
20100017874 Piccinini et al. Jan 2010 A1
20100020776 Youssef et al. Jan 2010 A1
20100042320 Salmre et al. Feb 2010 A1
20100280874 Thorn Nov 2010 A1
20100296441 Barkan Nov 2010 A1
20110077046 Durand et al. Mar 2011 A1
20110238517 Ramalingam et al. Sep 2011 A1
20120046051 Wilson et al. Feb 2012 A1
20120276926 Pitt Nov 2012 A1
20120284105 Li Nov 2012 A1
Foreign Referenced Citations (15)
Number Date Country
1418784 May 2004 EP
2002334030 Nov 2002 JP
2002354522 Dec 2002 JP
2003161771 Jun 2003 JP
2003344092 Dec 2003 JP
2005323404 Nov 2005 JP
2006153863 Jun 2006 JP
051869 Mar 2007 JP
2007189584 Jul 2007 JP
2007189594 Jul 2007 JP
2010539738 Dec 2010 JP
1020050004662 Jan 2005 KR
1020050014940 Feb 2005 KR
1020070053539 May 2007 KR
2006070877 Jul 2006 WO
Non-Patent Literature Citations (59)
Entry
An Exploration on Mobile Social Networking: Dodgeball as a Case in Point, Nina Ziv et al., Mobile Business, 2006, ICMB '06, International Conference of IEEE Computer Society, p. 21, XP031056542, DOI: 10.1109/ICMB.2006.8, ISBN: 978-0-7695-2595-2 (Jun. 1, 2006).
“CardStar iPhone App Wrangles Multiple Membership Cards,” written by Dong Ngo on May 15, 2009, http://news.cnet.com/8301-17938_105-10241727-1.html (last accessed May 22, 2013).
“Mobile Context Inference using Low-Cost Sensors”, Evan Welbourne et al., Lecture Notes in Computer Science—LNCS, Springer, DE, vol. 3479, pp. 254-263, XP007915205, ISSN: 0302-9743 (Jan. 1, 2005).
“Modular Bayesian Networks for Inferring Landmarks on Mobile Daily Life”, Keum-Sung Hwang et al., AI 2006: Advances in Artificial Intelligence Lecture Notes in Computer Science, Lecture Notes in Artificial Intelligence, LNCS, Springer, Berlin, DE, pp. 929-933, XP019052024, ISBN: 978-3-540-49787-5 (Jan. 1, 2006).
“Unique in the Crowd: The Privacy Bounds of Human Mobility,” Yves-Alexandre de Montjoye, César A. Hidalgo, Michel Verleysen & Vincent D. Blondel, Scientific Reports 3, Article No. 1376 (Mar. 25, 2013).
“WatchMe: Communication and Awareness between members of a Closely-Knit Group”, Natalia Marmasse et al., UbiComp 2004: Ubiquitous Computing: 6th International Conference, Nottingham, UK, Sep. 7-10, 2004, Lecture Notes in Computer Science, vol. 3205 (Nov. 2, 2004).
Apple Store POS Handhelds forum posts from Sep. 25, 2008, through Sep. 28, 2013, http://www.everythingcafe.com/forum/threads,apple-store-pos-handhelds.32824 (last accessed May 22, 2013).
Congvan Tran, “Notice of Allowance” dated Oct. 6, 2014 for U.S. Appl. No. 13/241,048.
Doan, “Non-Final Office Action” dated Nov. 1, 2013 for U.S. Appl. No. 13/923,722.
“Non-Final Office Action” dated Nov. 1, 2013 for U.S. Appl. No. 131923,722.
Extended European Search Report dated May 29, 2012, for European Application No. 08797761.7.
Final Office Action dated May 9, 2012, issued in U.S. Appl. No. 12/728,217.
Final Office Action issued in U.S. Appl. No. 12/728,216 dated Dec. 28, 2012.
Final Office Action issued in U.S. Appl. No. 12/728,217 dated Apr. 28, 2014.
Final Office Action issued in U.S. Appl. No. 13/052,193 dated Jun. 18, 2013.
Final Office Action issued in U.S. Appl. No. 13/923,722 dated Sep. 10, 2014.
Final Office Action received in U.S. Appl. No. 13/069,380 dated Apr. 22, 2013.
Indian Office Action issued in related Indian Application No. 1765/DELNP/2010 dated Aug. 7, 2017.
International Search Report and Written Opinion issued in International Application No. PCT/US2011/028566 dated Oct. 25, 2011.
International Search Report and Written Opinion issued in International Application No. PCT/US2008/072977 dated Jan. 30, 2009.
Japanese Office Action issued in divisional Japanese Appln. No. 2014-093925 dated Mar. 3, 2015.
Japanese Office Action issued in Japanese Application No. 2014-093925 dated Oct. 20, 2015.
Katherine Gager Kolosowski, “Final Office Action” dated Feb. 23, 2015 for U.S. Appl. No. 13/052,193.
Katherine Kolosowski-Gager, “Non-Final Office Action ” dated Jul. 14, 2014 for U.S. Appl. No. 13/052,193.
Kiet M Doan, “Non-Final Office Action”, dated Dec. 5, 2018, U.S. Appl. No. 15/956,924.
Kiet M Doan, “Notice of Allowance”, dated Mar. 1, 2019, U.S. Appl. No. 15/956,924.
Kiet M Doan, “Restriction Requirement”, dated Sep. 11, 2018, U.S. Appl. No. 15/956,924.
Kiet M. Doan, “Final Office Action” dated Sep. 19, 2016 for U.S. Appl. No. 14/619,136.
Kiet M. Doan, “Final Office Action”, dated Jul. 5, 2017, U.S. Appl. No. 14/619,136.
Kiet M. Doan, “Non-Final Office Action” dated May 2, 2016 for U.S. Appl. No. 14/619,136.
Kiet M. Doan, “Non-Final Office Action” dated Nov. 24, 2015 for U.S. Appl. No. 14/619,136.
Kiet M. Doan, “Non-Final Office Action”, dated Mar. 2, 2017 for U.S. Appl. No. 14/619,136.
Kiet M. Doan, “Notice of Allowance” dated Oct. 14, 2014 for U.S. Appl. No. 13/923,722.
Marshall M McLeod, “Final Office Action”, dated Jul. 9, 2013 for U.S. Appl. No. 12/728,217.
Neeraj Chawla, “Notice of Allowance”, dated Jan. 19, 2018, U.S. Appl. No. 14/619,136.
Non-Final Office Action for U.S. Appl. No. 12/728,217 dated Nov. 29, 2012.
Non-Final Office Action for U.S. Appl. No. 13/069,380 dated Nov. 29, 2012.
Non-final Office Action issued in U.S. Appl. No. 13/923,722 dated Apr. 14, 2014.
Non-Final Office Action dated Jul. 27, 2012, in U.S. Appl. No. 12/728,216.
Non-Final Office Action dated Oct. 30, 2013, received in U.S. Appl. No. 12/728,217.
Notice of Allowance issued in U.S. Appl. No. 12/728,216 dated Mar. 15, 2013.
Notice of Allowance issued in U.S. Appl. No. 14/056,477 dated May 18, 2016.
Notice of Allowance issued in Japanese Appln. Serial No. 2014-093925 dated Jan. 31, 2017.
Notice of Allowance dated Apr. 1, 2014, in JP Application No. 2010-521129, which corresponds to U.S. Appl. No. 11/838,876.
Nov. 22, 2011 International Search Report and Written Opinion issued in International Application No. PCT/US2011/028734.
Office Action (Non-Final) from U.S. Appl. No. 11/838,876 dated Mar. 24, 2011.
Office Action (Non-Final) from U.S. Appl. No. 11/838,876 dated Oct. 19, 2010.
Office Action (Non-Final) from U.S. Appl. No. 12/728,217 dated Dec. 20, 2011.
Office Action issued in U.S. Appl. No. 13/052,193 dated Jan. 2, 2013.
Office Action issued in Japanese Appln. Serial No. 2014-93925 dated Sep. 13, 2016.
Office Action issued in related Japanese Patent Application No. 2010-521129 dated Dec. 3, 2013. No translation.
Office Action issued in related Japanese Patent Application No. 2010-521129 dated Feb. 4, 2013. English translation provided on pp. 6-9.
Phouc Huu Doan, “Non-Final Office Action” dated Oct. 21, 2014 for U.S. Appl. No. 14/056,477.
Phuoc Huu Doan, “Final Office Action” dated Apr. 7, 2015 for U.S. Appl. No. 14/056,477.
Phuoc Huu Doan, “Final Office Action” dated Oct. 15, 2015 for U.S. Appl. No. 14/056,477.
Phuoc Huu Doan, “Non-Final Office Action” dated Feb. 8, 2016 for U.S. Appl. No. 14/056,477.
Hearing Notice for Indian Application No. 1765/DELNP/2010 dated Sep. 17, 2019.
Letter of Grant issued in Indian Application No. 1765/DELNP/2010 dated Sep. 9, 2020.
Review Petition Decision issued in Indian Application No. 1765/DELNP/2010 on Sep. 9, 2020.
Related Publications (1)
Number Date Country
20190281553 A1 Sep 2019 US
Provisional Applications (1)
Number Date Country
61162263 Mar 2009 US
Divisions (1)
Number Date Country
Parent 15956924 Apr 2018 US
Child 16420273 US
Continuations (3)
Number Date Country
Parent 14619136 Feb 2015 US
Child 15956924 US
Parent 13923722 Jun 2013 US
Child 14619136 US
Parent 12728216 Mar 2010 US
Child 13923722 US
Continuation in Parts (1)
Number Date Country
Parent 11838876 Aug 2007 US
Child 12728216 US