Google Glass之Mirror API探秘與開發(fā)實(shí)踐
Glass應(yīng)用的設(shè)計(jì)原則
Google Mirror API 是一種RESTful Web 服務(wù)類 API;開發(fā)者給 Google Glass 寫的應(yīng)用叫做 "Glassware"。Google 希望 Glass 可以帶給用戶“下一代的移動(dòng)互聯(lián)網(wǎng)體驗(yàn)”,也給出 4 條相應(yīng)的設(shè)計(jì)原則:
- 為Glass而設(shè)計(jì)。你的應(yīng)用應(yīng)該是專門為Glass而設(shè)計(jì)、開發(fā)和測(cè)試,以保證適合Glass的用戶體驗(yàn)。
 - 不要妨礙用戶。Glass的用戶希望在需要時(shí)使用科技,而在不需要是讓科技消失。不要過(guò)分使用用戶不期待的通知。
 - 及時(shí)性。信息的實(shí)時(shí)性和及時(shí)性會(huì)讓Glass這個(gè)平臺(tái)最有效。
 - 避免用戶意料之外的事情。應(yīng)用中包括用戶沒(méi)有期待的功能在任何平臺(tái)上都是不好的,但是因?yàn)镚lass和用戶的生活體驗(yàn)太接近了,所以更要避免。你需要對(duì)用戶誠(chéng)實(shí)解釋你應(yīng)用的目的和所需要的用戶授權(quán)。
 
很顯然,Google 對(duì)待 Glass 的態(tài)度有點(diǎn)像對(duì)待自己的小孩兒一樣,一切都是小心翼翼的,而 Glass 的應(yīng)用門檻可能也會(huì)比 Android 應(yīng)用要更高一些。
時(shí)間軸卡片的一切
Glass 向用戶展示信息的主要方式是通過(guò)”時(shí)間軸卡片“(Timeline Card)。時(shí)間軸卡片可以顯示文字、圖片、視頻和 HTML。除了單卡片顯示之外,開發(fā)者也可以將多張卡片放在一起(bundle),然后用戶可以通過(guò)聲音或者觸控瀏覽。
這當(dāng)然也意味著開發(fā)者們的 "Glassware" 應(yīng)用最終的信息呈現(xiàn)也是通過(guò)這些時(shí)間軸卡片。最常見的 API 行為包括:
- 在時(shí)間軸上創(chuàng)建新卡片
 - 更新原來(lái)的卡片
 - 通過(guò)卡片的菜單獲得用戶的輸入
 - 接受Glass的通知,所以可以對(duì)用戶的行為做相應(yīng)的反應(yīng)
 
附加背景的時(shí)間軸卡片是這樣的:

下面講述Mirror API的開發(fā)實(shí)踐,當(dāng)然,首先是我們最熟悉的Hello World.
#p#
Hello World
每一位程序員在學(xué)習(xí)一個(gè)新語(yǔ)言或 API 時(shí),做的第一件事應(yīng)該都是寫“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" }
這種語(yǔ)構(gòu)對(duì)于使用過(guò)其它 RESTful API 的開發(fā)者應(yīng)該還是比較容易上手的。顯示的結(jié)果是:
GPS定位和地圖
另一類應(yīng)該是很常用的 API Call 應(yīng)該是與地理位置有關(guān)的,因?yàn)槲覀兛梢韵胂蠛芏?Glass 的應(yīng)用會(huì)是屬于 LBS 類型的應(yīng)用。
開發(fā)者可以通過(guò) Mirror API 直接請(qǐng)求用戶的最后已知位置,也可以通過(guò) " 訂閱”(subscribe)來(lái)獲取用戶位置的更新,但是對(duì)于這種訂閱式的位置更新,Google 限制 Glass 在只能每十分鐘發(fā)送一次。這里的原因應(yīng)該是為了節(jié)省電池使用,但應(yīng)該也有出于用戶隱私的一些考慮。
Glass 和 Google 地圖有深度結(jié)合,可以通過(guò) Mirror API 直接渲染出一個(gè) Google 地圖的圖片,開發(fā)者可以指定地點(diǎn)、路線、地圖寬度、地圖高度和聚焦等參數(shù)。顯示結(jié)果也是通過(guò)時(shí)間軸卡片:

分享權(quán)限和“聯(lián)系人”
在默認(rèn)權(quán)限下,Glass 應(yīng)用只可以控制應(yīng)用自己創(chuàng)造的時(shí)間軸卡片。用戶需要通過(guò)一種”聯(lián)系人“方式的授權(quán)來(lái)容許跨應(yīng)用的時(shí)間軸卡片分享,以及分享用戶自己用 Glass 創(chuàng)造的媒體,比如照片和視頻。
來(lái)獲得分享授權(quán),Glass 應(yīng)用需要發(fā)送給用戶一個(gè)請(qǐng)求,其中要包含應(yīng)用的 ID、名字和圖標(biāo)。Google 建議圖標(biāo)為 640x360 像素的 PNG 文件。
總而言之
我們可以看得出,不同于 Android API,Google Mirror API 目前并不容許開發(fā)者直接與硬件接軌,而且是非常重視用戶隱私和遵守權(quán)限的。這個(gè)原因很多,Glass 是一種全新的智能設(shè)備,而且與用戶的距離比以前任何一種智能設(shè)備要更親密,所以 Google 在 API 方面最開始采取比較保守的態(tài)度是意料之中的。第一代 iPhone 的 API 相比現(xiàn)在的 iOS API 也要單薄很多,Google 必定會(huì)繼續(xù)擴(kuò)展 Mirror API 中的功能,讓開發(fā)者們可以實(shí)現(xiàn)更多的應(yīng)用設(shè)計(jì)。
這是Google Mirror API的地址,Java的示范應(yīng)用,和Python的示范應(yīng)用。















 
 
 

 
 
 
 