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

Information

  • Patent Grant
  • 8489111
  • Patent Number
    8,489,111
  • Date Filed
    Saturday, March 20, 2010
    14 years ago
  • Date Issued
    Tuesday, July 16, 2013
    11 years ago
  • Inventors
  • Original Assignees
  • Examiners
    • Doan; Kiet
    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 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 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 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 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 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 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 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 invention will become better understood by referring to the following description taken in conjunction with the accompanying drawings.



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 the push-client using motion and activity detection methods on the device to manage GPS Power-save mode.



FIG. 4 is a block diagram of the system using push-client and push-server to determine 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 push-server inter-process communication.



FIG. 6 is a block diagram of the push-client maintaining a 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 server maintaining a real-time location and status of user while minimizing server updates and reducing network traffic.



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





DETAILED DESCRIPTION


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 system for determining a location of a mobile device, comprising: a mobile device comprising a push-client embedded in the mobile device, the push client configured to maintain a current location of the mobile device; anda mobile positioning system comprising a push-server configured to receive location updates from the push-client, whereinthe push-client is configured to optimally send location updates only when the location of the mobile device changes,the mobile positioning system further comprises a power-saving mode optimized for when the mobile device is determined to be stationary,when in the power-saving mode, the mobile positioning system is configured to detect changes in location using positioning methods with a lower accuracy and with lower battery consumption,when a change in location is detected by the mobile positioning system while in power-saving mode, the mobile positioning system is configured to determine the location with higher accuracy, andthe push-client is further configured to detect a driving or in transit status of the mobile device based on “in vehicle” detection methods, comprising one or more of: a proximity sensor of the mobile device configured to detect proximity of the mobile device to a vehicle, an in-vehicle accessory configured to determine the proximity of the mobile device to the in-vehicle accessory, and by the mobile device determining a connection status to the in-vehicle accessory.
  • 2. The system of claim 1, wherein the push-client is further configured to manage a frequency of location requests based on a speed of the mobile device.
  • 3. The system of claim 1, wherein the push-client is further configured to detect motion of the mobile device using an accelerometer embedded in the mobile device.
  • 4. The system of claim 1, wherein the push-client is further configured to detect motion of the mobile device using activity detection methods available in an operating system of the mobile device.
  • 5. The system of claim 1, wherein the push-client is further configured to detect motion of the mobile device based on a speed of the mobile device.
  • 6. The system of claim 1, wherein the push-client is further configured to detect a driving status of the mobile device based on “in vehicle” detection methods, comprising one or more of: a proximity sensor of the mobile device configured to detect proximity of the mobile device to a vehicle, an in-vehicle accessory configured to determine the proximity of the mobile device to the in-vehicle accessory, and by the mobile device determining a connection status to the in-vehicle accessory.
  • 7. The system of claim 1, wherein the push-server is further configured to maintain a location profile of predetermined locations of the mobile device.
  • 8. The system of claim 7, wherein the system is configured to enable the power-saving mode of the positioning system when the mobile device is determined to be at one of the predetermined locations until the mobile positioning system detects a change in the location of the mobile device.
  • 9. The system of claim 1, wherein when the push-client detects that the mobile device is driving or in transit, the push-client is further configured to enable the power saving mode based on transit start and end points.
  • 10. The system of claim 1, wherein the push-client is configured to only send location updates when street information has changed.
  • 11. An apparatus, comprising: at least one processor; andmemory storing computer program instructions, wherein the computer program instructions are configured to cause the processor to: maintain a current location of the apparatus determined by a mobile positioning system,optimally compute location updates when the location of the apparatus changes, anddetect a driving or in transit status of the apparatus based on “in vehicle” detection methods, comprising one or more of: a proximity sensor of the apparatus configured to detect proximity of the apparatus to a vehicle, an in-vehicle accessory configured to determine the proximity of the apparatus to the in-vehicle accessory, and by the apparatus determining a connection status to the in-vehicle accessory, whereinthe apparatus comprises a mobile positioning system comprising a power-saving mode optimized for when the apparatus is determined to be stationary,when in the power-saving mode, the mobile positioning system is configured to detect changes in location with a lower accuracy and with lower battery consumption, andwhen a change in location is detected by the mobile positioning system while in power-saving mode, the mobile positioning system is configured to determine the location with higher accuracy.
  • 12. The apparatus of claim 11, wherein the power-saving mode is enabled when the apparatus is determined to be stationary.
  • 13. The apparatus of claim 11, wherein the power-saving mode is enabled after the mobile positioning system has been enabled for a predetermined period of time.
  • 14. The apparatus of claim 11, wherein the power-saving mode is disabled when a notification is received that the location of the apparatus has changed.
  • 15. The apparatus of claim 11, wherein the power-saving mode is disabled when a cell-ID of the apparatus changes.
  • 16. The apparatus of claim 11, wherein the mobile device is determined to be stationary when the location has not changed more than a predetermined threshold within a predetermined duration.
  • 17. The apparatus of claim 11, wherein when the apparatus detects that it is driving or in transit, the apparatus is further configured to enable the power saving mode based on transit start and end points.
  • 18. The apparatus of claim 11, wherein the push-client is configured to only send location updates when street information has changed.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation-in-part of, and claims priority to, U.S. patent application Ser. No. 11/838,876, now issued as U.S. Pat. No. 8,050,690, entitled “LOCATION BASED PRESENCE AND PRIVACY MANAGEMENT,” filed on Aug. 14, 2007, and also claims priority to U.S. Provisional Patent Application No. 61/162,263 entitled “REAL-TIME LOCATION AND PRESENCE USING A PUSH-LOCATION CLIENT AND SERVER”, filed on Mar. 21, 2009. The subject matter of these earlier-filed applications is hereby incorporated by reference in its entirety.

US Referenced Citations (208)
Number Name Date Kind
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
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
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
6850837 Paulaskas 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 Mettemich 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
6996579 Leung et al. Feb 2006 B2
7071842 Brady, Jr. Jul 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
7589628 Brady, Jr. Sep 2009 B1
8126889 Pitt Feb 2012 B2
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
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
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
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
20040203922 Hines et al. Oct 2004 A1
20050027437 Takenaga et al. Feb 2005 A1
20050027608 Wiesmuller et al. Feb 2005 A1
20050085952 Park et al. Apr 2005 A1
20050096013 Lehikoinen et al. May 2005 A1
20050096040 Haberman et al. May 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 et al. 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
20060277290 Shank Dec 2006 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 et al. 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
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
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
20070129082 Thacher Jun 2007 A1
20070129083 Creamer et al. Jun 2007 A1
20070135136 Ische Jun 2007 A1
20070142059 Wang 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
20080071749 Schloter Mar 2008 A1
20080132251 Altman et al. Jun 2008 A1
20080147546 Weichselbaumer et al. Jun 2008 A1
20080172173 Chang et al. Jul 2008 A1
20080214161 Jakl Sep 2008 A1
20080242231 Gray Oct 2008 A1
20080248810 Obradovich 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
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
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
20100280874 Thorn Nov 2010 A1
20110238517 Ramalingam et al. Sep 2011 A1
20120276926 Pitt Nov 2012 A1
20120284105 Li Nov 2012 A1
Foreign Referenced Citations (4)
Number Date Country
1 418 784 May 2004 EP
2007-51869 Dec 2005 JP
10-2005-0004662 Jan 2005 KR
10-2007-0053539 May 2007 KR
Non-Patent Literature Citations (15)
Entry
Oct. 25, 2011 International Search Report and Written Opinion issued in International Application No. PCT/US2011/028566.
Nov. 22, 2011 International Search Report and Written Opinion issued in International Application No. PCT/US2011/028734.
International Search Report for PCT/US2008/072977 mailed Jan. 30, 2009 (corresponds with PCT application for U.S. Appl. No. 11/838,876).
Office Action from U.S. Appl. No. 11/838,876 dated Oct. 19, 2010.
Office Action from U.S. Appl. No. 11/838,876 dated Mar. 24, 2011.
Office Action (Non-Final) from U.S. Appl. No. 12/728,217 dated Dec. 20, 2011.
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).
“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).
“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).
Final Office Action dated May 9, 2012, issued in U.S. Appl. No. 12/728,217.
Extended European Search Report issued on May 29, 2012, for European Application No. 08797761.7.
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.
Office Action issued in U.S. Appl. No. 13/052,193 on Jan. 2, 2013.
Related Publications (1)
Number Date Country
20110159884 A1 Jun 2011 US
Provisional Applications (1)
Number Date Country
61162263 Mar 2009 US
Continuation in Parts (1)
Number Date Country
Parent 11838876 Aug 2007 US
Child 12728216 US