Abstract:
A mobile device can provide predictive user assistance based on various sensor readings, independently of or in addition to a location of the mobile device. The mobile device can determine a context of an event. The mobile device can store the context and a label of the event on a storage device. The label can be provided automatically by the mobile device or by the external system without user input. At a later time, the mobile device can match new sensor readings with the stored context. If a match is found, the mobile device can predict that the user is about to perform the action or recognize that the user has performed the action again. The mobile device can perform various operations, including, for example, providing user assistance, based on the prediction or recognition.
Abstract:
Methods, systems, and computer program products for determining transit routes through crowd-sourcing, for determining an estimated time of arrival (ETA) of a vehicle of the transit route at a given location, and for providing predictive reminders to a user for catching a vehicle of the transit route. A server receives signal source information about wireless signal sources detected by user devices, including information about a first wireless signal source detected by some devices. The server determines that the first wireless signal source is moving. The server determines that the first wireless signal source is associated with a public transit route upon determining that the signal source information satisfies one or more selection criteria. The server stores information associating the first wireless signal source with the public transit route as transit movement data corresponding to the public transit route.
Abstract:
Systems, methods, and program products for determining a location of a mobile device using a location application programming interface (API) are described. A mobile device can receive an input requesting the mobile device to monitor entry into and exit from a significant location. The mobile device can call a start-monitoring instance function of an object of a location manager class as declared in the API to start monitoring, and call a stop-monitoring instance function of the object as declared in the API to stop monitoring. The mobile device can store the entry and exit, or provide a record of the entry or exit to a function that is conformant to the API for performing various tasks.
Abstract:
Systems, methods, and program products for providing services to a user by a mobile device based on the user's daily routine of movement. The mobile device determines whether a location cluster indicates a significant location for the user based on one or more hints that indicate an interest of the user in locations in the cluster. The mobile device can perform adaptive clustering to determine a size of area of the significant location based on how multiple locations converge in the location cluster. The mobile device can provide location-based services for calendar items, including predicting a time of arrival at an estimated location of a calendar item. The mobile device can provide various services related to a location of the mobile device or a significant location of the user through an application programming interface (API).
Abstract:
A mobile device enables its user to retroactively “check in,” on social media, to locations to which the device has previously been. The mobile device automatically tracks the locations to which it goes during some time interval. As the mobile device goes to each location, the mobile device stores data that specifies that location. Following the time interval, and potentially in response to a request by the device's user to view the locations previously visited, the mobile device presents a list of at least some of the locations on its display. The device's user can select one or more of the presented locations. The selection of a location causes the mobile device to post, to an Internet-based social media service, information pertaining to the selected location. For example, such information can indicate that the device's user had been at the selected location.
Abstract:
Methods, systems, and computer program products for determining transit routes through crowd-sourcing, for determining an estimated time of arrival (ETA) of a vehicle of the transit route at a given location, and for providing predictive reminders to a user for catching a vehicle of the transit route. A server receives signal source information about wireless signal sources detected by user devices, including information about a first wireless signal source detected by some devices. The server determines that the first wireless signal source is moving. The server determines that the first wireless signal source is associated with a public transit route upon determining that the signal source information satisfies one or more selection criteria. The server stores information associating the first wireless signal source with the public transit route as transit movement data corresponding to the public transit route.
Abstract:
Some embodiments of the invention provide a novel prediction engine that (1) can formulate predictions about current or future destinations and/or routes to such destinations for a user, and (2) can relay information to the user about these predictions. In some embodiments, this engine includes a machine-learning engine that facilitates the formulation of predicted future destinations and/or future routes to destinations based on stored, user-specific data. The user-specific data is different in different embodiments. In some embodiments, the stored, user-specific data includes data about any combination of the following: (1) previous destinations traveled to by the user, (2) previous routes taken by the user, (3) locations of calendared events in the user's calendar, (4) locations of events for which the user has electronic tickets, and (5) addresses parsed from recent e-mails and/or messages sent to the user. In some embodiments, the prediction engine only relies on user-specific data stored on the device on which this engine executes. Alternatively, in other embodiments, it relies only on user-specific data stored outside of the device by external devices/servers. In still other embodiments, the prediction engine relies on user-specific data stored both by the device and by other devices/servers.
Abstract:
Computer-implemented methods, computer-readable storage media storing instructions and computer systems for labeling significant locations based on contextual data can be implemented to perform operations that include determining a location of a computing device, and determining a label for the determined location based on contextual data associated with the significant location. The location can be a significant location that has meaning to a user of the device.
Abstract:
A mobile device may install and monitor geofences. The application or the operating system (OS) may store a set of geofences. The application or OS may determine the mobile device's current location and generate a first bounding area around the current location. The application or OS may determine the size or radius of the first bounding area such that no more than a specified number of geofences fall inside the first bounding area. The application or OS may monitor the mobile device's location in the first bounding area and determine whether the mobile device exits the first bounding area. In response to determining that the mobile device exits the first bounding area, the application or OS may determine the mobile device's location and generate a second bonding area such that no more than the specified number of the geofences fall inside the second bounding area.
Abstract:
Described herein are techniques to enable a mobile device to perform multi-source estimation of an altitude for a location. A baseline altitude may be determined at ground level for a location and used to calibrate a barometric pressure sensor on the mobile device. The calibrated barometric pressure sensor can then estimate changes in altitude relative to ground level based on detected pressure differentials, allowing a relative altitude to ground to be determined. Baseline calibration for the barometric sensor calibration can be performed to determine an ambient ground-level barometric pressure.