今年I/O大会上谷歌向开发者介绍了全新版Awareness API,其作用是Android App根据用户设备环境使用作出更加智能化的反馈,让设备比用户更了解自己。日前,谷歌正式发布了Awareness API,所有开发者可通过最新版本的Google Play Service下载使用。
Awareness API可检测到7种不同类型的情景环境,包括位置、地点、信号灯、当地时间、活动状态、耳机是否插入、天气状况,App可以更好地理解用户当前状态,并使用这些信息来提供优化或定制体验。
Awareness API类型
目前Awareness API被分为两大类:
Snapshot API
让应用程序轻松请求有关用户当前环境状态的信息。例如,为用户提供当前位置或当前天气状况。Fence API
应用匹配一个特定条件下请求用户当前行为。类似于Geofencing API,一旦意识到地理围栏定位技术被应用,它不管应用是否在运行都会回调应用程序,具有更好的灵活性。例如,检测到用户跑步并带上耳机时,音乐应用将会自动推荐适合跑步的应用。
独立地从表面上看,Awareness API以一种新的方法结合最优环境信号,不仅可以提供更加准确和精辟的上下文线索,而且节省电池消耗和缩减带宽等系统资源。
Android上使用Awareness API开发
设置Google Play Services: Awareness API是Google Play Services一部分,App开发项目中必须包含Google Play Services。通过SDK Manager下载并安装Google Play Services,然后添加库到项目中。
添加API key:添加API key到应用程序中,代码如下:
<application>
...
<meta-data
android:name="com.google.android.awareness.API_KEY"
android:value="YOUR_API_KEY"/>
</application>
如果获取位置快照,声明如下:
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="YOUR_API_KEY" />
如果获取信号快照或使用信号围栏,声明如下:
<meta-data
android:name="com.google.android.nearby.messages.API_KEY"
android:value="YOUR_API_KEY" />
AndroidMainifest.xml中声明Android权限: App是使用的每一个API都必须声明权限。所需的权限取决于应用程序所使用的API方法和Fence类型。
连接Awareness API:必须先创建一个Google Play Services API客户端。调用onCreate()方法,使用GoogleApiClient.Builder创建 Google API Client实例。使用生成器添加Awareness API,如下所示:
android.content.Context context;
GoogleApiClient client = new GoogleApiClient.Builder(context)
.addApi(Awareness.API)
.build();
client.connect();
案例
使用Awareness API的两个案例:
- Trulia
一个住宅房地产网站,使用Fence API可显示空房。当天气不错且用户接近房子并感兴趣的条件下,Trulia网站会推送通知提醒用户周围有空房子。这种定制通知可帮助用户在最佳时机看房。
- SuperPlayer Music
使用Snapshot API和Fence API可播放适合当时心情的音乐。无论你是否已完成了跑步还是刚开始运动、踏上了漫长的旅途或刚去健身房,这个应用助手可以进行情景判断并推荐合适的播放列表。
总结
Awareness API一方面让用户的生活更加智能化;但另外一方面,对用户的隐私也带来了一定的威胁。
第一时间掌握最新移动开发相关信息和技术,请关注mobilehub公众微信号(ID: mobilehub)。