LiveCard
這個類別可讓您建立使用中的資訊卡,並發布至時間軸。
如要進一步瞭解如何建立即時資訊卡,請參閱 即時資訊卡開發人員指南。
即時資訊卡的生命週期
即時資訊卡需要長時間執行其本身,才能在上線期間擁有這些資訊卡
發布版本,因此應該在背景 Service
中進行管理。接著
在服務開始後立即發布即時資訊卡,或是回應其他
服務監控器同樣地,一旦資訊卡不再相關或出現錯誤,您應將卡片取消發布
系統就會刪除服務
發布即時資訊卡時,你可以選擇這對於使用者的影響。在靜音模式發布時 資訊卡就會插入時間軸中,但不會有任何明顯效果:使用者必須滑動資訊卡前往 就能看到卡片您也可以讓即時資訊卡在直播開始後立即自動顯示 已發布如果應用程式的主要使用者介面為即時資訊卡,這個做法通常會很實用 而不是活動
在即時資訊卡上顯示內容
即時資訊卡可顯示來自版面配置資源的內容,或允許程式碼轉譯 直接繪製到繪圖介面上請根據您的應用程式選擇最合適的方法 例如資訊卡內容更新頻率 或任意形式的圖像內容
使用遠端檢視畫面加載版面配置
如果您的應用程式只需要標準小工具且不常更新 (約幾秒鐘或
的延遲時間),然後使用 RemoteViews
類別建立資訊卡。
RemoteViews
物件可讓 Glass 時間軸從獨立程序執行
來加載您建立的版面配置。
LiveCard liveCard; // initialized elsewhere RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.my_layout); liveCard.setViews(views);
請注意,使用 RemoteViews
的資訊卡發布後,
除非您明確呼叫,否則時間軸中不會顯示呼叫 set*
方法
再次按下即時資訊卡上的 setViews
,即可強制更新。
直接在即時資訊卡表面上繪圖
如果您的應用程式需要更頻繁的更新 (每秒多次) 或轉譯更多
使用比標準小工具支援的精美圖形、能直接呈現,並加上
資訊卡表面的 SurfaceHolder.Callback
。
LiveCard liveCard; // initialized elsewhere liveCard.setDirectRenderingEnabled(true); liveCard.getSurfaceHolder().addCallback(callback);
接著,您可以直接在背景執行緒的平面上繪製,或是回應外部
事件 (例如感應器或位置更新通知)。使用 surfaceCreated
和
在資訊卡發生時,開始及停止顯示邏輯的 surfaceDestroyed
方法
還是隱藏或隱藏
請注意,系統不會在主 UI 執行緒上叫用途徑容器的回呼方法。
處理動態卡片選取作業
即時資訊卡必須提供動作 (PendingIntent
才能啟動活動。
或執行廣播)。
通常您會使用此動作啟動活動,其中會顯示選項選單或
使用者插入應用程式的其他部分您至少應提供選項
可讓使用者從時間軸中移除即時資訊卡。
LiveCard liveCard; // initialized elsewhere Intent intent = new Intent(context, MyActivity.class); liveCard.setAction(PendingIntent.getActivity(context, 0, intent, 0));
沒有動作的即時資訊卡不會顯示。
巢狀類別 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
列舉 | LiveCard.PublishMode | 決定資訊卡發布時向使用者顯示的方式。 |
常數 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
String | EXTRA_FROM_LIVECARD_VOICE | 布林值額外項目,表示Intent 是透過即時卡片透過語音啟動。 |
公用建構函式 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
公用方法 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
LiveCard | |||||||||||
SurfaceHolder | |||||||||||
布林值 | |||||||||||
void |
navigate()
|
||||||||||
void | |||||||||||
LiveCard | |||||||||||
LiveCard | |||||||||||
LiveCard |
setRenderer(GlRenderer 轉譯器)
|
||||||||||
LiveCard |
setViews(RemoteViews 檢視畫面)
|
||||||||||
LiveCard |
setVoiceActionEnabled(布林啟用)
|
||||||||||
void |
繼承的方法 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
常數
公用建構函式
公開 LiveCard (「情境」背景資訊、String 標記)
使用指定標記建立即時資訊卡。
請注意,資訊卡經過明確發布後才會顯示。
參數
情境 | 應用程式的結構定義 |
---|---|
標記 | 非空值的標記;以便偵錯 |
公用方法
公開 SurfaceHolder getSurfaceHolder ()
啟用直接轉譯後,使用者即可存取要繪製的 Surface
。
請注意,傳回的 SurfaceHolder
只能做為存取
管理介面改變表面形狀和類型的方法並非自動化。
另請注意,此物件的回呼並不是在 UI 執行緒中製作。
公開 布林值 isPublished ()
如果卡片目前已發布,則傳回 true
。
公開 void 發布 (LiveCard.PublishMode 模式)
將這張資訊卡發布到時間軸。
資訊卡只會在有動作,且已啟用直接顯示功能的情況下才會顯示 設定遠端檢視。
參數
模式 | 決定資訊卡的呈現方式 |
---|
公開 LiveCard setAction (PendingIntent 意圖)
選取資訊卡時執行的動作。
參數
意願 | 選取卡片後就會觸發 |
---|
傳回
- 這個物件用於呼叫鏈結
公開 LiveCard setDirectRenderingEnabled (啟用布林值)
參數
啟用 | 是否應該啟用直接顯示功能 |
---|
傳回
- 這個物件用於呼叫鏈結
另請參閱
公開 LiveCard setRenderer (GlRenderer 轉譯器)
新增以 OpenGL 為基礎的轉譯器。
轉譯器將用於繪製到要求 (自動) 的途徑上 算繪。
傳回
- 這個物件用於呼叫鏈結
公開 LiveCard setViews (RemoteViews 檢視表)
變更用來顯示這張資訊卡 UI 的 RemoteViews
。
直接對 否則變更內容就不會反映在時間軸上。
如果啟用了直接顯示功能,這個方法就不會產生任何作用。
參數
次觀看 | 資訊卡的 UI |
---|
傳回
- 這個物件用於呼叫鏈結
公開 LiveCard setVoiceActionEnabled (啟用布林值)
在時間軸顯示資訊卡時啟用語音操作。
設定後,卡片會監聽「ok Glass」這種文字呈現在時間軸上
當系統朗讀這段守衛詞組時,就會啟動由
setAction(PendingIntent)
方法。如果意圖啟動了
實作內容語音選單的活動,活動就會自動
在第一個選單項目中開啟 (viz,就像活動內部朗讀「ok Glass」時)
其本身)。這項功能可讓您在即時資訊卡上導入內容語音選單。
參數
啟用 | 是否應啟用語音指令 |
---|
傳回
- 這個物件用於呼叫鏈結
公開 void 取消發布 ()
從時間軸取消發布這張資訊卡。