One of the smaller items of news from Google IO is that there are now three new Android Geo APIs that will make it easier to build location and activity information into apps.
As well as rolling out a refreshed look to Google Maps there were also some new APIs included in the new Google Play Services API update.
The Fused location provider sounds odd, but the "fused" refers to the fusing of information from a range of location sensors. It makes use of GPS, WiFi and cell tower locations to pin down your location, but via a single unified API. It also has a power saving option which claims to reduce the power hungry nature of location finding to only 1% of battery life per hour. Of course to do this you have to trade some accuracy of location. Essentially the app can tailor accuracy against battery life as it operates.
Geofencing isn't new, but the new API makes it very easy to detect when a user enters or leaves a specified area. You can use it to alert the user when they are close to a location of interest. Geofences are circular, you supply a location and a radius and they can have an expiration time associated with them.
The final new API is Activity recognition. This uses the accelerometer to work out what the user is doing - remaining still, walking, cycling and in-vehicle. As it avoids using the GPS, this API is also low on battery drain. Apparently it makes use of machine learning to estimate what the user is doing. It will also provide confidence values for each detected state.
Of course, the three APIs fit together nicely so that you can use, say, data from the Activity recognition API to modify the behavior of the app - getting more location up-dates if the user is in a car, say. The more creative will also notice the opportunity to make the Activity recognition API work with Geofences to set different units of proximity.
The three new APIs are available through the Google Play service.
Google Maps - The Alternative iOS Mapping SDK