Google Glass之Mirror API探秘与开发实践

今天 Google 对外公布了一系列有关 Google Glass 的硬件细节,同时也公开了 Goo
首页 新闻资讯 行业资讯 Google Glass之Mirror API探秘与开发实践

[[70736]]

Glass应用的设计原则

Google Mirror API 是一种RESTful Web 服务类 API;开发者给 Google Glass 写的应用叫做 "Glassware"。Google 希望 Glass 可以带给用户“下一代的移动互联网体验”,也给出 4 条相应的设计原则:

  • 为Glass而设计。你的应用应该是专门为Glass而设计、开发和测试,以保证适合Glass的用户体验。

  • 不要妨碍用户。Glass的用户希望在需要时使用科技,而在不需要是让科技消失。不要过分使用用户不期待的通知。

  • 及时性。信息的实时性和及时性会让Glass这个平台最有效。

  • 避免用户意料之外的事情。应用中包括用户没有期待的功能在任何平台上都是不好的,但是因为Glass和用户的生活体验太接近了,所以更要避免。你需要对用户诚实解释你应用的目的和所需要的用户授权。

很显然,Google 对待 Glass 的态度有点像对待自己的小孩儿一样,一切都是小心翼翼的,而 Glass 的应用门槛可能也会比 Android 应用要更高一些。

时间轴卡片的一切

Glass 向用户展示信息的主要方式是通过”时间轴卡片“(Timeline Card)。时间轴卡片可以显示文字、图片、视频和 HTML。除了单卡片显示之外,开发者也可以将多张卡片放在一起(bundle),然后用户可以通过声音或者触控浏览。

这当然也意味着开发者们的 "Glassware" 应用最终的信息呈现也是通过这些时间轴卡片。最常见的 API 行为包括:

  • 在时间轴上创建新卡片

  • 更新原来的卡片

  • 通过卡片的菜单获得用户的输入

  • 接受Glass的通知,所以可以对用户的行为做相应的反应

附加背景的时间轴卡片是这样的:

 

下面讲述Mirror API的开发实践,当然,首先是我们最熟悉的Hello World.

#p#

Hello World

每一位程序员在学习一个新语言或 API 时,做的第一件事应该都是写“Hello World “。这是 Glass API 的 "Hello World" 程序:

复制

HTTP/1.1 201 Created Date: Tue, 25 Sep
    2012 23:30:11 GMT Content-Type:
    application/json Content-Length: 303

    { "kind": "glass#timelineItem",
    "id": "1234567890", "selfLink":
    "https://www.googleapis.com/mirror/v1/timeline/1234567890",
    "created": "2012-09-25T23:28:43.192Z",
    "updated": "2012-09-25T23:28:43.192Z",
    "etag":
    "\"G5BI0RWvj-0jWdBrdWrPZV7xPKw/t25selcGS3uDEVT6FB09hAG-QQ\"",
    "text": "Hello world" }
  • 1.

  • 2.

  • 3.

  • 4.

  • 5.

  • 6.

  • 7.

  • 8.

  • 9.

  • 10.

  • 11.

  • 12.

  • 13.

这种语构对于使用过其它 RESTful API 的开发者应该还是比较容易上手的。显示的结果是:

[[70737]]

GPS定位和地图

另一类应该是很常用的 API Call 应该是与地理位置有关的,因为我们可以想象很多 Glass 的应用会是属于 LBS 类型的应用。

开发者可以通过 Mirror API 直接请求用户的最后已知位置,也可以通过 "  订阅”(subscribe)来获取用户位置的更新,但是对于这种订阅式的位置更新,Google 限制 Glass  在只能每十分钟发送一次。这里的原因应该是为了节省电池使用,但应该也有出于用户隐私的一些考虑。

Glass 和 Google 地图有深度结合,可以通过 Mirror API 直接渲染出一个 Google 地图的图片,开发者可以指定地点、路线、地图宽度、地图高度和聚焦等参数。显示结果也是通过时间轴卡片:

分享权限和“联系人”

在默认权限下,Glass 应用只可以控制应用自己创造的时间轴卡片。用户需要通过一种”联系人“方式的授权来容许跨应用的时间轴卡片分享,以及分享用户自己用 Glass 创造的媒体,比如照片和视频。

来获得分享授权,Glass 应用需要发送给用户一个请求,其中要包含应用的 ID、名字和图标。Google 建议图标为 640x360 像素的 PNG 文件。

总而言之

我们可以看得出,不同于 Android API,Google Mirror API  目前并不容许开发者直接与硬件接轨,而且是非常重视用户隐私和遵守权限的。这个原因很多,Glass  是一种全新的智能设备,而且与用户的距离比以前任何一种智能设备要更亲密,所以 Google 在 API  方面最开始采取比较保守的态度是意料之中的。第一代 iPhone 的 API 相比现在的 iOS API 也要单薄很多,Google  必定会继续扩展 Mirror API 中的功能,让开发者们可以实现更多的应用设计。

这是Google Mirror API的地址,Java的示范应用,和Python的示范应用

23    2013-04-17 10:06:55    Google Glass Mirror API