手表上的通知所使用的 API 和采用的结构与手机上的通知相同。
通知可以通过两种方式显示在手表上:
- 由移动应用创建通知,系统会将通知自动桥接到手表。
- 由穿戴式应用创建通知。
在这两种情况下,都需要使用 NotificationCompat.Builder
类来创建通知。当您使用 builder 类构建通知时,系统负责正确显示通知。例如,当您从移动应用发出通知时,每条通知都会显示为通知流中的一张卡片。
请查看以下示例,了解通知的显示方式。
为获得最佳效果,请使用某个 NotificationCompat.Style
子类。
注意:
使用RemoteViews
删除自定义布局的通知,穿戴式设备仅显示文本和图标。
建议在穿戴式设备上使用的通知
对于所有通知,都可以首先考虑使用展开式通知,因为此类通知是吸引穿戴式设备用户注意的理想方式。此类通知会以收起状态显示在通知栏中,以便一目了然地显示简短信息。如果用户点按通知,通知便会展开,显示更多可滚动浏览的内容和相关操作,提供沉浸式体验。
您可以使用任何 NotificationCompat.Style
子类,按照与在移动设备上相同的方式,创建展开式通知。例如,使用 NotificationCompat.MessagingStyle
的标准通知如下所示:
您可以看到,在展开状态下,通知底部堆叠排列了多项操作。
若要查看 NotificationCompat.BigPictureStyle
、NotificationCompat.BigTextStyle
、NotificationCompat.InboxStyle
和 NotificationCompat.MessagingStyle
的示例,请参阅 GitHub 上的通知示例。
提示:如果通知包含“回复”操作,例如即时通讯应用的通知,您可以增强通知的这一行为。例如,您可以启用直接从穿戴式设备进行语音输入回复的功能,或者启用通过 setChoices()
预定义的文本回复。如需了解详情,请阅读添加回复按钮。
避免显示重复的通知
默认情况下,通知会从配对手机应用桥接到配对手表。如果您没有安装穿戴式应用,这是一个不错的选择。
不过,如果您构建了独立手表应用和配对手机应用,这些应用会创建重复的通知。
Wear OS 提供了一种使用桥接 API 停止显示重复通知的方式。这是 对搭载 Wear OS 5 或更高版本的设备上的应用尤其重要,因为某些 在移动设备上可关闭的通知在 Wear OS 设备上不可关闭。 有关详情,请参阅 通知的桥接选项。
向通知中添加穿戴式设备专属功能
如果您需要向通知中添加穿戴式设备专属功能,例如在穿戴式设备通知中隐藏应用图标,或允许用户通过语音输入文本回复,可以使用 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()
添加的操作只会出现在穿戴式设备上,而不会出现在手机上。