Abstract:
In general, in one aspect, a method includes receiving, on a mobile device, an indication that an application executing on the mobile device has entered a background state, determining, based on data received from a location system of the mobile device, that the mobile device has remained within a geographic area during a time interval, the geographic area being defined by a radius determined according to an application type of the application, and disabling at least a portion of the location system of the mobile device.
Abstract:
Automated behaviors in an environment can be implemented based on aggregation of individual user routines. For example, mobile devices used by users in the environment can provide information about the users' behavior patterns to a coordinator device that can be located in the environment. The coordinator device can analyze the information to detect an aggregate pattern that involves multiple mobile devices and/or multiple users. Based on a detected aggregate patterns, the coordinator can identify behaviors to automate.
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 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:
In general, in one aspect, a mobile device can perform reverse geocoding based on context, in addition to latitude and longitude coordinates. The reverse geocoding can be used to determine in which geofence among multiple geofences the mobile device is located. Thus, the mobile device can be associated with a street address, a postal code, a named land feature, or a commercial, cultural, or political entity associated with the geofence. The context can include a pattern of movement, as well as an accuracy of the latitude and longitude coordinates. Information in the context can be compared to selection criteria of the geofence. A geofence having selection criteria that match the context the best can be selected.
Abstract:
A parameter related to the Earth's magnetic field can be used to determine accuracy of a magnetometer of a mobile device. In one aspect, a first instance of a parameter related to Earth's magnetic field is determined using data generated by the magnetometer. The magnetometer data can be based in part on a position of the mobile device with respect to the Earth. A second instance of the parameter can be determined using data generated by a model of Earth's magnetic field. The model data can also be based in part on the position of the mobile device with respect to the Earth. The first instance of the parameter can be compared with the second instance of the parameter. An accuracy metric for the magnetometer can be determined based on a result of the comparison. An indication of the accuracy metric can be presented by the mobile device.
Abstract:
A journaling subsystem on a mobile device stores event data related to applications or other subsystems running on the mobile device. The event data can be stored and indexed in a journal database so that a timeline of past events can be reconstructed in response to search queries. In some implementations, a timeline can be reconstructed with markers on a map display based on search results. When the user interacts with a marker on the map display, the event data collected by the mobile device is made available to the user.
Abstract:
In general, in one aspect, a mobile device can perform reverse geocoding based on context, in addition to latitude and longitude coordinates. The reverse geocoding can be used to determine in which geofence among multiple geofences the mobile device is located. Thus, the mobile device can be associated with a street address, a postal code, a named land feature, or a commercial, cultural, or political entity associated with the geofence. The context can include a pattern of movement, as well as an accuracy of the latitude and longitude coordinates. Information in the context can be compared to selection criteria of the geofence. A geofence having selection criteria that match the context the best can be selected.