Notifications on watches use the same APIs and have the same structure as notifications on phones.
Notifications can appear on a watch in two ways:
- A mobile app creates a notification and the system automatically bridges that notification to the watch.
- A wearable app creates a notification.
  For both scenarios, use the
  NotificationCompat.Builder
  class to create notifications. When you build notifications with the builder class, the system
  takes care of displaying notifications properly. For example, when you issue a notification from
  your mobile app, each notification appears as a card on the Notification Stream.
  Review the following example to see how notifications display.
 
Figure 1. The same notification displayed on a phone and on a watch.
  Use one of the
  NotificationCompat.Style
  subclasses for the best results.
Note:
  Using RemoteViews
  strips notifications of custom layouts, and the wearable only displays the text and icons.
Recommended notifications for wearables
Use expandable notifications as the starting point for all notifications, as they are a great way to engage wearable users. The collapsed state displays in the notification tray for a short, glanceable experience. If the user taps it, the notification expands, revealing an immersive, scrollable experience of additional content and actions.
  You can Create an expandable notification
  the same way you would on mobile, using any of the NotificationCompat.Style
  subclasses. For example, a standard notification using
  NotificationCompat.MessagingStyle
  looks like this:
 
Figure 2. Example of a MessagingStyle notification on Wear OS.
You can see the notification has multiple actions stacked at the bottom of the expanded state.
  For examples of
  NotificationCompat.BigPictureStyle,
  NotificationCompat.BigTextStyle,
  NotificationCompat.InboxStyle,
  and NotificationCompat.MessagingStyle,
  check out the Notification sample
  on GitHub.
  Tip: If your notifications include a "reply" action, such as for a messaging
  app, you can enhance the behavior of the notification. For example, you can enable voice input
  replies directly from the wearable or pre-defined text responses with
  setChoices().
  For more information, read
  Add the reply button.
Avoid duplicate Notifications
By default, notifications are bridged from a companion phone app to any paired watches. This is a great option if you don't have a wearable app installed.
However, if you build a standalone watch app and a companion phone app, the apps create duplicate notifications.
Wear OS provides a way to stop duplicate notifications with the Bridging APIs. This is particularly important for apps on devices that run Wear OS 5 or higher, because some notifications that are dismissible on a mobile device aren't dismissible on the Wear OS device. For more information, read Bridging options for notifications.
Add wearable-specific features to a notification
  If you need to add wearable-specific features to a notification, such as hiding
  an app icon from the wearable notification or letting users dictate a text response
  with voice input, you can use the
  NotificationCompat.WearableExtender class to specify the options.
  To use this API, do the following:
- 
    Create an instance of a
    
    WearableExtender, setting the wearable-specific options for the notification.
- 
    Create an instance of
    NotificationCompat.Builder, setting the desired properties for your notification as described earlier in this guide.
- 
    Call
    
    extend()on the notification and pass in theWearableExtender. This applies the wearable options to the notification.
- 
    Call
    
    build()to build the notification.
Note:
  If you use the framework's NotificationManager,
  some features from
  NotificationCompat.WearableExtender don't work, so make sure to use
  
  NotificationCompat.
  You can sync dismissals or cancellations of notifications across the user's devices. To
  sync a dismissal, use the
  
  setDismissalId() method. For each notification, pass a globally unique
  ID as a string when you call
  setDismissalId(). When the notification is dismissed, all other
  notifications with the same dismissal ID are dismissed on the watch and on the
  companion phone. To retrieve a dismissal ID, use
  
  getDismissalId().
Specify wearable-only actions
  If you want different actions available on the watch and the phone, then use
  
  WearableExtender.addAction(). Once you add an action with this method,
  the wearable does not display any other actions added with
  
  NotificationCompat.Builder.addAction(). The actions added with
  WearableExtender.addAction() appear only on the wearable, not
  on the phone.
Launch your phone app from a wearable device
If you are using bridged notifications, any notification automatically includes a button to launch the app on the phone. However, if you are using a local notification, created on the watch, use the following steps to create a button that launches the app on the phone:
- Create a new Activitythat extendsConfirmationActivity.
- Use RemoteActivityHelperin the newActivityto launch the phone app.
- When building the Intentto launch theActivityfrom the notification, set theEXTRA_ANIMATION_TYPEextra toOPEN_ON_PHONE_ANIMATION.
  Note: You can't use a BroadcastReceiver as the target
  of the notification action.
