Google's new Awareness API - part of Google Play Services - is legitimately cool. In theory. Announced at I/O, it allows apps to access what you're doing, in a general sense, and then give you information based on that status. For now, the API offers two ways for apps to monitor your current status, per Google's blog post.
- The Snapshot API lets your app easily request information about the user's current context. For example, "give me the user's current location and the current weather conditions".
- The Fence API lets your app react to changes in user’s context - and when it matches a certain set of conditions. For example, "tell me whenever the user is walking and their headphones are plugged in". Similar to the Geofencing API, once an awareness fence is registered, it can send callbacks to your app even when it's not running.
Both of these obviously have promise. The ability for Google Play Music to suggest a walking-appropriate playlist when you have headphones connected and are moving is exactly the sort of "giving you what you want before you know you want it" behavior Google has been striving to give us for years. It's the future. The Snapshot API could use your current location - a store, for example - to suggest a coupon for that store. It all sounds, to use the parlance of our times, delightful.
But you don't have to look far to see how a tool like this could - and inevitably will - be utterly abused by certain app developers simply looking to get you on their MAU rolls or to buy something. One of Google's examples of a "good" Awareness implementation is, I would argue, already kind of annoying. Using the Awareness API, Trulia, a real estate app, will suggest nearby open houses that the user "is interested in" - which presumably means any listing you've previously opened. And while this sounds fairly innocent, it makes the problems with a tool like this obvious: all the judgment of what is an "appropriate" context in which to serve a notification lies with the app, not the user.
Of course, most apps allow granular disabling of notifications, and this will no doubt become one of such toggles you can turn to "off" in your favorite app. But for all the cool possibilities Awareness might allow, I'm already feeling a bit anxious about the collective "learning experience" we'll all have to suffer through as this feature's adoption grows. Because for every largely-behaved app with a well-intentioned independent developer, there's a corporate behemoth who just looks at you as citrus ripe for the contextual squeezing.
It is unclear when the Awareness API is rolling out to users via Play Services (the Awareness API is part of Play Services 9.2), so let us know if you see a contextual notification like those in Google's blog post.
- Android Developers Blog