Wear OS 上的通知

手表上的通知使用与手机上的通知相同的 API 并且具有相同的结构。

通知可以通过两种方式出现在手表上

  1. 移动应用创建一个通知,系统会自动将该通知桥接到手表
  2. 可穿戴应用创建一个通知。

对于这两种情况,请使用NotificationCompat.Builder类创建通知。使用构建器类构建通知时,系统会负责以正确的方式显示通知。例如,当您从移动应用发出通知时,每个通知都将在通知流中显示为卡片。

查看以下示例,了解通知的显示方式。notification-cards

图 1. 在手机和手表上显示的相同通知。

对于最佳效果,请使用NotificationCompat.Style子类之一。

注意: 使用RemoteViews会剥夺通知的自定义布局,可穿戴设备只会显示文本和图标。

可穿戴设备的推荐通知

将可扩展通知用作所有通知的起点,因为它们是吸引可穿戴设备用户的绝佳方式。折叠状态显示在通知栏中,可以快速浏览。如果用户点击它,通知将展开,显示沉浸式的可滚动体验,其中包含其他内容和操作。

您可以创建可扩展通知,方法与在移动设备上相同,使用任何NotificationCompat.Style子类。例如,使用NotificationCompat.MessagingStyle的标准通知如下所示:expandable-notification

图 2. Wear OS 上的MessagingStyle通知示例。

您可以看到,通知在展开状态底部堆叠了多个操作

例如,NotificationCompat.BigPictureStyleNotificationCompat.BigTextStyleNotificationCompat.InboxStyleNotificationCompat.MessagingStyle,请查看 GitHub 上的 Notification 示例

提示:如果您的通知包含“回复”操作(例如,用于消息应用程序),您可以增强通知的行为。例如,您可以使用 setChoices(),直接从可穿戴设备启用语音输入回复或预定义文本回复。有关更多信息,请阅读 添加回复按钮

避免重复通知

默认情况下,通知会从伴侣手机应用程序桥接到任何配对的手表。如果您没有安装可穿戴设备应用程序,这是一个很好的选择。

但是,如果您构建了一个独立的手表应用程序和一个伴侣手机应用程序,这些应用程序会创建重复的通知。

Wear OS 提供了一种使用桥接 API 停止重复通知的方法。这对于运行 Wear OS 5 或更高版本的设备上的应用程序尤其重要,因为在移动设备上可以取消的一些通知在 Wear OS 设备上是不可取消的。有关更多信息,请阅读 通知的桥接选项

向通知添加可穿戴设备专用功能

如果您需要向通知添加可穿戴设备专用功能(例如,从可穿戴设备通知中隐藏应用程序图标或让用户使用语音输入口述文本回复),您可以使用 NotificationCompat.WearableExtender 类来指定选项。要使用此 API,请执行以下操作:

  1. 创建 WearableExtender 的实例,为通知设置可穿戴设备专用选项。
  2. 创建 NotificationCompat.Builder 的实例,如本指南前面所述,为您的通知设置所需的属性。
  3. 在通知上调用 extend() 并传入 WearableExtender。这会将可穿戴设备选项应用于通知。
  4. 调用 build() 来构建通知。

注意:如果您使用框架的 NotificationManagerNotificationCompat.WearableExtender 中的某些功能将不起作用,因此请确保使用 NotificationCompat

您可以同步用户设备上的通知关闭或取消操作。要同步关闭操作,请使用 setDismissalId() 方法。对于每个通知,在调用 setDismissalId() 时,请传入一个全局唯一的字符串 ID。关闭通知时,所有具有相同关闭 ID 的其他通知也会在手表和伴侣手机上关闭。要检索关闭 ID,请使用 getDismissalId()

指定可穿戴设备专用操作

如果您希望在手表和手机上提供不同的操作,请使用 WearableExtender.addAction()。使用此方法添加操作后,可穿戴设备不会显示使用 NotificationCompat.Builder.addAction() 添加的任何其他操作。使用 WearableExtender.addAction() 添加的操作仅显示在可穿戴设备上,不会显示在手机上。