根據研究機構IDC統計,2015年智能可穿戴技術市場將成長至2014年的5倍之多,產品出貨量預計超過2500萬單位,且絕大部分都將采用 Bluetooth? Smart為用戶提供無縫、簡單易行的連接體驗。未來可穿戴設備、智能手機和基于云的互聯網服務將更好地協同工作,再也不需用戶采取任何復雜的操作或花時間了解這些專業知識。
可穿戴技術正在騰飛,應用形式日新月異,從智能手表到各式運動手環,甚至還有智能假發!而Bluetooth Smart就在這一切變革的中心。文章講述了打造Android Wear體驗所涉及的標準和延展安卓通知等基礎問題。并繼續和大家討論如何創建在可穿戴設備上獨立運行的APP。
Android Wear
2014 年,谷歌推出了新的Android Wear版本,這是面向可穿戴設備的安卓操作系統。一般來說,像Moto 360 智能手表這樣的Android Wear設備都需要與安卓智能手機協同工作,而Android Wear支持可穿戴設備與其他運行完整安卓系統的設備進行雙向通信。
Bluetooth Smart的架構和角色
在 Android Wear的世界中,設備就相當于節點,這些節點各自具備不同的功能,并被連接到可穿戴的網絡中。一般來說,智能手機相當于可穿戴網絡的中樞,與其他類型如智能手表的節點相連接。節點與節點之間就是通過Bluetooth Smart進行通信的,但Android Wear開發者其實并不需要全盤地了解Bluetooth Smart。通過Android Wear的API就可以輕松加愉快地實現藍牙技術的功能!
Android Wear APP
你也許會想,既然拓展通知就能實現很多功能,為什么還要在可穿戴設備上開發APP呢?我們不妨就從這個問題出發。通過開發Android WearAPP,我們可以更好地控制用戶界面,還能像智能手機一樣創建自定義的UI布局。此外,還能實現雙向設備通信,讓可穿戴設備和智能手機之間能夠相互發送信息。
Android Wear APP能夠脫離智能手機APP獨立運行,但開發者需要注意第一篇中提到的智能手機和可穿戴設備的相對能力差異,利用更強大的智能手機處理需要多方資源支持的復雜操作。舉例來說,持續掃描Beacon就需要比較多的資源,因此決定把這一工作交給智能手機處理。探測到Beacon后,手機會將相關的展品信息發送給智能手表上的Android Wear APP,用戶就可以在智能手表屏幕上瀏覽這些信息了。
Android Wear API
Google Play Services 庫提供了以下主要的Android Wear API,在可穿戴博物館導覽APP中都有用到。
DataApi
這一API能夠將所有與Android Wear連接的節點自動進行數據同步,在博物館導覽APP中指的就是智能手機和智能手表之間。
一般通過PutDataRequest類創建DataItem對象,制定特定路徑,以確認通過同步過程接收的節點數據類型。然后只需要調用Wearable.DataApi.putDataItem,將數據交給API同步。
節點使用DataListener接口,通過onDataChanged方法接收同步的數據。
MessageApi
MessageApi 讓開發者能夠從一個節點向另一個節點發送字節數組。MessageApi的使用通常作為一種遠程過程調用(Remote Procedure Call,簡稱RPC)機制。Capability API可用來發現能夠理解并處理特定類型信息的節點。調用Wearable.MessageApi.sendMessage在藍牙連接中發送信息,實施了 MessageListener 界面的接收節點即會通過onMessageReceived方法被調用。
CapabilityApi
APP中可以在名為wear.xml的源文件中注冊處理特定類型信息的功能。“功能”是由字符串值定義的,字符串值是開發者創建并通過Capability API引用。下圖是小編為博物館導覽智能手機APP創建的wear.xml文件。
圖8 – 在Wear中聲明能力
NodeApi
這一API將會在可穿戴網絡中提供互聯節點訪問和相關信息。
文章后面將提到這些API的例子。
Android Wear 博物館導覽用戶界面(User Interface, UI)
此處需要一個和第一節中一樣使用延展通知創建的多頁面、互動UI。GridViewPager類為此提供了最佳的基礎。當靠近展品時,一共需要展示三個頁面:應用標題頁、帶有“喜歡”反饋按鈕的展品名稱頁、展品信息頁。APP完成后的截屏如下圖:
圖9 – APP完成后的截屏
如果附近沒有Beacon,可穿戴APP就只顯示標題頁,而無法進入展品信息頁。如果智能手機APP探測到了附近的Beacon,則會立即向可穿戴APP發送展品照片和簡介,并展示展品信息頁。
發送展品信息至可穿戴設備
小編使用數據層API從智能手機向可穿戴設備傳輸展品圖像和信息。在發送端(智能手機APP),使用Asset對象形成圖像容器,再使用 PutDataMapRequest項啟動智能手表同步。然后使用Google Play可穿戴DataApi啟動智能手表同步。這里需要注意,數據PutDataRequest中包含一個時間戳。因為DataApi會緩沖數據,但如果較上次同步事件之后沒有變化則不需要進行數據傳輸。
圖10 – 智能手機APP使用數據層API 向可穿戴設備發送數據
在Android Wear APP中實施DataApi.DataListener界面,處理onDataChanged方法中的數據同步事件。
圖11– 使用Capability API
搞定“喜歡”按鈕
讓可穿戴APP在用戶按下“喜歡”按鈕之后立即通知智能手機APP,并使用Message API來完成這一步。此外,還使用Capability API來確保信息能夠選對智能手機節點。
圖12 – 使用Capability API
當用戶按下“喜歡”的按鈕時,會發送一個包含了路徑的信息,這個信息代表“將此事件作為“按下喜歡按鍵”處理”,同時還包含了這個展品的名稱等信息,這個信息由可穿戴APP發送到智能手機APP。
圖13 – 通過信息API從可穿戴設備向智能手機發送信息
智能手機APP中的MessageApi.MessageListener界面通過調用onMessageReceived 方法接收信息。
圖14 – 智能手機APP從可穿戴設備APP上接收信息
總結
可穿戴網絡中的Android Wear API加上Bluetooth Smart的節點間低功耗無線傳輸,Android Wear其樂無窮!
也就是說,Android Wear允許開發者直接使用如android.bluetooth.le.BluetoothLeScanner這樣的標準Bluetooth Smart API。這樣,可穿戴設備就可以脫離手機的輔助,直接與其他Bluetooth Smart設備互動了。
可穿戴設備要比智能手機中樞的功能少得多,因此可穿戴設備通常要和智能手機協同工作,將一些高難的計算工作交由智能手機處理。在本文中我們將重點關注這樣的使用場景。
圖1 – 架構
開發可穿戴博物館導覽APP的三大方法
有三種方法可以將之前介紹過的智能手機博物館導覽APP拓展到Moto 360智能手表上:
1. 使用標準Android Notifications
2. 使用面向Android Wear設備的Extend Notifications
3. 開發在可穿戴設備上運行的Android WearAPP
本文先為大家介紹前兩個基于通知的方法,再向大家介紹Android Wear APP的開發。
標準通知(Standard Notifications)
告訴你一個好消息:安卓智能手機發出的任何通知都會被自動發送至相應的、已連接的可穿戴設備上。因此,如果已經在安卓智能手機APP上使用了通知,那么即使不再另外編寫專門的代碼,APP通知在可穿戴設備上顯示也不成問題,酷吧!
圖2 –Moto 360上GetYourBeacOn應用的標準通知
可穿戴設備的擴展通知
安卓API提供一些方法為可穿戴設備定制信息,而不是單純地把可穿戴設備作為智能手機通知提示的顯示屏。例如,我們可以利用特殊的文本樣式,設置通知的背景圖像,建立多重頁面讓用戶可以通過劃屏查看通知詳情,還可以在通知中添加一些操作,增加可穿戴設備的互動性。
我決定為用戶在Android Wear設備上提供多個信息頁面,再添加一些互動,讓用戶可以對特定的展覽內容做出“喜歡”或“不喜歡”的反饋。這不難實現,只要借助一個名為WearableExtender的工具即可。我們來簡要地看一下代碼吧。
我們先來創建三個包括主要的展覽信息頁面,為讓使用者更容易在可穿戴設備上閱讀信息,我們可以使用文字形式呈現。
圖3 – 創建通知頁面
接下來我們需要創建Action物件,以回應用戶對互動選項“喜歡”和“不喜歡”的選擇。Action與頁面類似,但需要有一個與之相關聯的Intent包括在PendingIntent對象里。安卓系統里,Intent是即將執行的操作,而PendingIntent是可以交由另一個應用執行的 Intent。在這里的情況下,前述“另一個應用”指的就是博物館導覽APP,我規定PendingIntent需要啟動一個名為 NotificationActionHandler的Activity。
圖4 – 創建操作,為通知增加互動功能
最后,我們再創建一個包括附加頁面和操作的WearableExtender,再建立一個包含它的通知,再加上代表一些基本設置的數據和我們的第一個通知頁面。觸發通知,就成了!可穿戴設備會收到一個多頁的、互動的通知。
圖5 – 為通知添加可穿戴拓展
通知就會像下圖的形式顯示在智能手表屏幕上
圖6 – 可穿戴設備上的拓展互動通知
當用戶選擇“喜歡”或“不喜歡”的操作后,NotificationActionHandlerActivity就會在智能手機上啟動,顯示以下屏幕之一:
圖7 – 智能手機APP對可穿戴設備上選定的操作的回應
你看,單單利用安卓通知,就能實現這么多功能!
Android Wear還是很容易上手的。通知(Notification)對于大多數安卓應用開發者都不陌生,Bluetooth Smart會默默地在幕后幫你搞定智能手機和可穿戴設備之間的通訊,而不需要開發者花太多時間專門了解它。
評論
查看更多