Abstract:
A method for identifying a suggested application on a mobile device is disclosed. The method includes detecting an event, determining a first location of the mobile device, identifying that the first location is within a first location region of a plurality of predetermined location regions, and then measuring one or more sensor values at one or more times. The measured sensor values may then be used to create a first-data point. In response to identifying the first location region, a plurality of clusters of data points may be retrieved. A first cluster of the plurality of clusters corresponding to the first data point may then be identified. The method may further include identifying a set of one or more applications, and then providing a message to the user based on the identified set of one or more applications.
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:
Techniques of category-based fence are described. A category-based fence can correspond to a group of signal sources instead of a point location fixed to latitude and longitude coordinates. The group of signal sources can represent a category of entities, e.g., a particular business chain. The signal sources can be distributed to multiple discrete locations. A category-based fence associated with the group, accordingly, can correspond to multiple locations instead of a single point location and a radius. Each signal source in the group can be associated with a category identifier unique to the group and uniform among signal sources in the group. The category identifier can be programmed into each signal source. A mobile device can enter the category-based fence by entering any of the discrete locations when the mobile device detects the signal identifier. The mobile device can then execute an application program associated with the category-based fence.
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:
An automated environment can include an accessory device that operates according to an automation rule, to take a prescribed action when a triggering condition occurs. A controller device for the automated environment can determine a user's regular routine and can detect when the user is deviating from the regular routine. The controller device can communicate with accessory devices in the automated environment to modify their behavior relative to the automation rules.
Abstract:
Techniques of range free proximity determination are described. A mobile device can determine an entry into or exit from a proximity fence upon determining that the mobile device is sufficiently close to a signal source. The proximity fence can be a virtual fence defined by the signal source and associated with a service. The mobile device can detect signals from multiple signal sources. The mobile device can determine that, among the signal sources, one or more signal sources are located closest to the mobile device based on a ranking of the signal sources using signal strength. The mobile device can determine a probability indicating a confident level of the ranking. The mobile device can determine that the mobile device entered or exited a proximity fence associated with a highest ranked signal source satisfying a confidence threshold.
Abstract:
Techniques of category-based fence are described. A category-based fence can correspond to a group of signal sources instead of a point location fixed to latitude and longitude coordinates. The group of signal sources can represent a category of entities, e.g., a particular business chain. The signal sources can be distributed to multiple discrete locations. A category-based fence associated with the group, accordingly, can correspond to multiple locations instead of a single point location and a radius. Each signal source in the group can be associated with a category identifier unique to the group and uniform among signal sources in the group. The category identifier can be programmed into each signal source. A mobile device can enter the category-based fence by entering any of the discrete locations when the mobile device detects the signal identifier. The mobile device can then execute an application program associated with the category-based fence.
Abstract:
Techniques for modeling significant locations are described. A significant location can be a location that is significant to a user of a mobile device for a variety of reasons. The mobile device can determine that a place or region is a significant location upon determining that, with sufficient certainty, the mobile device has stayed at the place or region for a sufficient amount of time. The mobile device can construct a state model that is an abstraction of one or more significant locations. The state model can include states representing the significant locations, and transitions representing movement of the mobile device between the locations. The mobile device can use the state model to provide predictive user assistance.
Abstract:
Implementations are disclosed for obtaining a range state of a device operating in an indoor environment with radio frequency (RF) signal sources. In some implementations, windowed signal measurements obtained from RF signals transmitted by an RF signal source are classified into range classes that are defined by threshold values obtained from a RF signal propagation model. A range class observation is obtained by selecting a range class among a plurality of range classes based on a percentage of a total number of windowed signal measurements that are associated with the range class. The range class observation is provided as input to a state estimator that estimates a range class that accounts for process and/or measurement noise. The output of the state estimator is provided as input to a state machine which outputs a range state that can be used to initiate one or more actions on the device, such as communicating with the RF signal source or other devices associated with the environment.
Abstract:
Methods, program products, and systems for monitoring a location fingerprint database (104) are described. A location fingerprint database can store location data associated with multiple signal sources (SS1, SS2, SS3). A mobile device (114) can use signals of the signal sources and the location data to determine a current location. A location server (102) can monitor the location fingerprint database, including detecting if any one of the signal sources has moved or otherwise becomes unsuitable for location determination. The location server can prevent location data associated with the unsuitable signal source from being used by the mobile device to determine the current location of the mobile device.