Wear OS 通知

手錶通知使用和手機通知相同的 API 和結構。

通知在手錶上有兩種顯示方式:

  1. 由行動應用程式建立通知,然後由系統自動橋接到手錶。
  2. 由穿戴式應用程式建立通知。

在這兩種情況下都可使用 NotificationCompat.Builder 類別建立通知。您使用 builder 類別建構通知時,系統可以妥善處理顯示通知作業。舉例來說,當您從行動應用程式發出通知時,每個通知都會以卡片形式顯示在通知串中。

請查看下列範例,瞭解通知的顯示方式。通知卡片

圖 1:手機和手錶顯示相同的通知。

為求最佳結果,請用 NotificationCompat.Style 子類別。

注意:使用 RemoteViews 可移除自訂版面配置的通知,穿戴式裝置則只會顯示文字和圖示。不過,您可以建立使用自訂卡片版面配置的自訂通知,手錶可以正確顯示這種版面配置。

建議讓穿戴式裝置使用的通知

請將展開式通知當做所有通知的基礎樣式,這是一種和穿戴式裝置使用者互動的優良方式。通知列會顯示收合狀態的通知,以便使用者一目瞭然。當使用者輕觸通知,通知便會展開並顯示更多內容和操作,提供使用者可以捲動的沈浸式體驗。

展開式通知的建立方式和您在行動裝置上使用任何 NotificationCompat.Style 子類別建立通知的方式相同。舉例來說,一般使用 NotificationCompat.MessagingStyle 的通知看起來會像這樣:展開式通知

圖 2:Wear OS 上的 MessagingStyle 通知範例。

您可以看到通知在展開狀態時底部會顯示多種操作

NotificationCompat.BigPictureStyleNotificationCompat.BigTextStyleNotificationCompat.InboxStyleNotificationCompat.MessagingStyle 等範例請參考 GitHub 的 Notification 範例

提示:如果您的通知內有「回覆」操作 (例如訊息應用程式等),您可以加強通知的行為。舉例來說,您可以啟用直接透過穿戴式裝置語音輸入回覆內容的功能,或是利用 setChoices() 提供預先定義好的文字回覆內容。詳情請參閱「新增回覆按鈕」。

避免重複通知

系統預設會把隨附手機應用程式的通知橋接給任何配對的手錶。如果您並未安裝任何穿戴式裝置應用程式,這個選項便相當實用。

但是,如果您建構了獨立的手錶應用程式,並有隨附的手機應用程式,那麼應用程式便會建立重複的通知。

Wear OS 可以利用橋接 API 達到防止重複通知的效果。詳情請參閱通知的橋接設定選項

為通知新增穿戴式裝置特有的功能

如果您需要為通知新增穿戴式裝置特有的功能,例如從穿戴式裝置通知中隱藏應用程式圖示,或是讓使用者利用語音輸入文字回覆內容等等,您可以用 NotificationCompat.WearableExtender 類別指定選項。如要使用這個 API,請按照下列步驟操作:

  1. 建立 WearableExtender 的執行個體,為通知設定穿戴式裝置特有的選項。
  2. 建立 NotificationCompat.Builder 的執行個體,為通知設定您想要的屬性,如本指南之前所說明的一樣。
  3. 在通知上呼叫 extend(),並傳遞給 WearableExtender。這樣做即可把穿戴式裝置選項套用到通知內。
  4. 呼叫 build() 以便建構通知。

注意:如果您使用架構的 NotificationManager,則 NotificationCompat.WearableExtender 的部分功能將無法使用,因此請務必使用 NotificationCompat

您可以橫跨使用者多部裝置同步處理關閉或取消通知行為。如果想同步處理關閉行為,請用 setDismissalId() 方法。在針對每個通知呼叫 setDismissalId() 時,用字串形式傳遞全域專屬 ID。在使用者關閉通知時,系統會關閉手錶和配對手機上使用相同關閉 ID 的通知。如果想擷取關閉 ID,請用 getDismissalId()

指定穿戴式裝置專用操作

如果您希望在手錶和手機上分別提供不同操作,請用 WearableExtender.addAction()。使用此方法新增操作後,穿戴式裝置便不會顯示任何設有 NotificationCompat.Builder.addAction() 的操作。設有 WearableExtender.addAction() 的操作只會顯示在穿戴式裝置上,不會顯示在手機上。