Abstract:
Techniques are disclosed for state-based location monitoring and determining a location of a mobile device. An application processor identifies a desired movement state. The application processor notifies a coprocessor of the desired state and enters a low power mode. The coprocessor monitors movement data to determine whether the desired state has occurred. In the event the desired state has occurred, the coprocessor will notify the application processor. The application processor can then determine whether it should switch to a high power mode.
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:
Among other things, we describe a method that includes receiving, on a mobile device, an indication that an application executing on the mobile device has entered a background state, receiving, from the application, a value indicating a condition for providing location data to the application, disabling a resource associated with the application, while the resource associated with the application is disabled, storing location data received from a location system of the mobile device, and when the condition indicated by the value is met, enabling the resource associated with the application, and providing the stored location data to the application.
Abstract:
Private and secure autocomplete suggestions are enabled based on a user contacts database, even when an application has not been granted access to the user contacts database. A keyboard process can receive and display suggestions based on input provided via the keyboard. The suggestions are generated based on a contacts database of a user. The suggestions are generated without exposing the contacts database to the application. Suggestions are then displayed to the user without exposing the suggestions to the application. Once a suggestion is selected by a user, the selected suggestion is provided to the application for insertion into a text field.
Abstract:
Described herein are techniques to enable limited access to a photos library by enabling application specific virtual photo libraries. When an application requests access to the photos library, the user can select an option to enable or configure a virtual photos library, and then select specific assets (e.g., photos, videos) within the photos library to be selected for inclusion into an application specific virtual photos library.
Abstract:
Reduced resolution location determination for improved anonymity of a user location is disclosed. In some implementations, a first location of a computing device operating in a geographic area is determined. A population density of the geographic area is estimated. A grid overlay is generated, including a number of cells based on the estimated population density. Using the grid overlay, a second location is generated for the computing device that is less precise than the first location. The less precise second location can be used in a local search or other application to improve the anonymity of the user location.
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:
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:
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).