前言
在开发中,有的时候需要我们监听很多系统的状态,比如:是否有耳机插入、当前用户的活动状态(跑步,散步,静止状态等)。通过检测这些状态,我们可以做很多人性化的操作,比如:监听到用户插入了耳机,我们可以打开音乐播放器准备播放音乐。插一句,如果你是安卓的老用户,你可能知道安卓上有一款应用叫Tasker。这款应用是通过用户设定一些条件,当触发了设定好的条件后会执行用户已经指定好的操作。概括起来就是:If this, then that,简称:IFTTT。
如果对Tasker感兴趣的可以看看下面的文章:
今天我们要来看看Google是如何帮助我们实现IFTTT的操作。
介绍
Google Awareness API是用来干嘛的?
官网上是这样概括的:
A unified sensing platform enabling applications to be aware of multiple aspects of a users context, while managing battery and memory health.
翻译过来就是:
它是一个统一的获取手机上各种传感器数据的平台,应用程序使用它能够了解用户当前状态的多个方面的信息,同时能够管理电池和内存运行状况。
不够直白?我的理解是:通过它提供的API能够获取到用户当前使用手机的一些状态信息,像地理位置、天气信息、运动信息等,在调用API的时候,系统已经为我们考虑到了电池以及内存使用的相关情况,无需用户在手动处理了。
有哪些特性?
-
Many signals, one API(一个API提供多种数据)
-
High quality data(高质量数据)
-
Smart battery savings(智能电池管理)
提供哪些信息?
Google Awareness API总共提供七种信息:
-
时间
-
地点(经纬度)
-
位置(位置类别,比如:公园、商店等)
-
活动状态(走路、跑步、骑行等)
-
标志(命名相匹配的附近标志)
-
耳机
-
天气
这七种类别是可以相互组合的,也就是说,在开发中,可以设定某几种状态,只有当这些状态都触发了才可以执行具体的操作。