手錶通知使用和手機通知相同的 API 和結構。
通知在手錶上有兩種顯示方式:
- 由行動應用程式建立通知,然後由系統自動橋接到手錶。
- 由穿戴式應用程式建立通知。
在這兩種情況下都可使用 NotificationCompat.Builder
類別建立通知。您使用 builder 類別建構通知時,系統可以妥善處理顯示通知作業。舉例來說,當您從行動應用程式發出通知時,每個通知都會以卡片形式顯示在通知串中。
請查看下列範例,瞭解通知的顯示方式。
圖 1:手機和手錶顯示相同的通知。
為求最佳結果,請用 NotificationCompat.Style
子類別。
注意:使用 RemoteViews
可移除自訂版面配置的通知,穿戴式裝置則只會顯示文字和圖示。不過,您可以建立使用自訂卡片版面配置的自訂通知,手錶可以正確顯示這種版面配置。
建議讓穿戴式裝置使用的通知
請將展開式通知當做所有通知的基礎樣式,這是一種和穿戴式裝置使用者互動的優良方式。通知列會顯示收合狀態的通知,以便使用者一目瞭然。當使用者輕觸通知,通知便會展開並顯示更多內容和操作,提供使用者可以捲動的沈浸式體驗。
展開式通知的建立方式和您在行動裝置上使用任何 NotificationCompat.Style
子類別建立通知的方式相同。舉例來說,一般使用 NotificationCompat.MessagingStyle
的通知看起來會像這樣:
圖 2:Wear OS 上的 MessagingStyle
通知範例。
您可以看到通知在展開狀態時底部會顯示多種操作。
NotificationCompat.BigPictureStyle
、NotificationCompat.BigTextStyle
、NotificationCompat.InboxStyle
及 NotificationCompat.MessagingStyle
等範例請參考 GitHub 的 Notification 範例。
提示:如果您的通知內有「回覆」操作 (例如訊息應用程式等),您可以加強通知的行為。舉例來說,您可以啟用直接透過穿戴式裝置語音輸入回覆內容的功能,或是利用 setChoices()
提供預先定義好的文字回覆內容。詳情請參閱「新增回覆按鈕」。
避免重複通知
系統預設會把隨附手機應用程式的通知橋接給任何配對的手錶。如果您並未安裝任何穿戴式裝置應用程式,這個選項便相當實用。
但是,如果您建構了獨立的手錶應用程式,並有隨附的手機應用程式,那麼應用程式便會建立重複的通知。
Wear OS 可以利用橋接 API 達到防止重複通知的效果。詳情請參閱通知的橋接設定選項。
為通知新增穿戴式裝置特有的功能
如果您需要為通知新增穿戴式裝置特有的功能,例如從穿戴式裝置通知中隱藏應用程式圖示,或是讓使用者利用語音輸入文字回覆內容等等,您可以用 NotificationCompat.WearableExtender
類別指定選項。如要使用這個 API,請按照下列步驟操作:
-
建立
WearableExtender
的執行個體,為通知設定穿戴式裝置特有的選項。 -
建立
NotificationCompat.Builder
的執行個體,為通知設定您想要的屬性,如本指南之前所說明的一樣。 -
在通知上呼叫
extend()
,並傳遞給WearableExtender
。這樣做即可把穿戴式裝置選項套用到通知內。 -
呼叫
build()
以便建構通知。
注意:如果您使用架構的 NotificationManager
,則 NotificationCompat.WearableExtender
的部分功能將無法使用,因此請務必使用 NotificationCompat
。
您可以橫跨使用者多部裝置同步處理關閉或取消通知行為。如果想同步處理關閉行為,請用 setDismissalId()
方法。在針對每個通知呼叫 setDismissalId()
時,用字串形式傳遞全域專屬 ID。在使用者關閉通知時,系統會關閉手錶和配對手機上使用相同關閉 ID 的通知。如果想擷取關閉 ID,請用 getDismissalId()
。
指定穿戴式裝置專用操作
如果您希望在手錶和手機上分別提供不同操作,請用 WearableExtender.addAction()
。使用此方法新增操作後,穿戴式裝置便不會顯示任何設有 NotificationCompat.Builder.addAction()
的操作。設有 WearableExtender.addAction()
的操作只會顯示在穿戴式裝置上,不會顯示在手機上。