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() 新增的動作只會顯示在穿戴式裝置上,不會顯示在手機上。