Android APIs
public static final class

NotificationCompat.WearableExtender

extends Object
implements NotificationCompat.Extender
java.lang.Object
   ↳ android.support.v4.app.NotificationCompat.WearableExtender

Class Overview

Helper class to add wearable extensions to notifications.

See Creating Notifications for Android Wear for more information on how to use this class.

To create a notification with wearable extensions:

  1. Create a NotificationCompat.Builder, setting any desired properties.
  2. Create a NotificationCompat.WearableExtender.
  3. Set wearable-specific properties using the add and set methods of NotificationCompat.WearableExtender.
  4. Call extend(NotificationCompat.Extender) to apply the extensions to a notification.
  5. Post the notification to the notification system with the NotificationManagerCompat.notify(...) methods and not the NotificationManager.notify(...) methods.
 Notification notif = new NotificationCompat.Builder(mContext)
         .setContentTitle("New mail from " + sender.toString())
         .setContentText(subject)
         .setSmallIcon(R.drawable.new_mail)
         .extend(new NotificationCompat.WearableExtender()
                 .setContentIcon(R.drawable.new_mail))
         .build();
 NotificationManagerCompat.from(mContext).notify(0, notif);

Wearable extensions can be accessed on an existing notification by using the WearableExtender(Notification) constructor, and then using the get methods to access values.

 NotificationCompat.WearableExtender wearableExtender =
         new NotificationCompat.WearableExtender(notification);
 List<Notification> pages = wearableExtender.getPages();

Summary

Constants
int SCREEN_TIMEOUT_LONG Sentinel value for use with setHintScreenTimeout(int) to keep the screen on for a longer amount of time when this notification is displayed on the screen.
int SCREEN_TIMEOUT_SHORT Sentinel value for use with setHintScreenTimeout(int) to keep the screen on for a short amount of time when this notification is displayed on the screen.
int SIZE_DEFAULT Size value for use with setCustomSizePreset(int) to show this notification with default sizing.
int SIZE_FULL_SCREEN Size value for use with setCustomSizePreset(int) to show this notification full screen.
int SIZE_LARGE Size value for use with setCustomSizePreset(int) to show this notification with a large size.
int SIZE_MEDIUM Size value for use with setCustomSizePreset(int) to show this notification with a medium size.
int SIZE_SMALL Size value for use with setCustomSizePreset(int) to show this notification with a small size.
int SIZE_XSMALL Size value for use with setCustomSizePreset(int) to show this notification with an extra small size.
int UNSET_ACTION_INDEX Sentinel value for an action index that is unset.
Public Constructors
NotificationCompat.WearableExtender()
Create a NotificationCompat.WearableExtender with default options.
NotificationCompat.WearableExtender(Notification notif)
Public Methods
NotificationCompat.WearableExtender addAction(NotificationCompat.Action action)
Add a wearable action to this notification.
NotificationCompat.WearableExtender addActions(List<NotificationCompat.Action> actions)
Adds wearable actions to this notification.
NotificationCompat.WearableExtender addPage(Notification page)
Add an additional page of content to display with this notification.
NotificationCompat.WearableExtender addPages(List<Notification> pages)
Add additional pages of content to display with this notification.
NotificationCompat.WearableExtender clearActions()
Clear all wearable actions present on this builder.
NotificationCompat.WearableExtender clearPages()
Clear all additional pages present on this builder.
NotificationCompat.WearableExtender clone()
Creates and returns a copy of this Object.
NotificationCompat.Builder extend(NotificationCompat.Builder builder)
Apply wearable extensions to a notification that is being built.
List<NotificationCompat.Action> getActions()
Get the wearable actions present on this notification.
Bitmap getBackground()
Get a background image to be displayed behind the notification content.
int getContentAction()
Get the index of the notification action, if any, that was specified as being clickable with the content of this notification.
int getContentIcon()
Get an icon that goes with the content of this notification.
int getContentIconGravity()
Get the gravity that the content icon should have within the notification display.
boolean getContentIntentAvailableOffline()
Get whether the content intent is available when the wearable device is not connected to a companion device.
int getCustomContentHeight()
Get the custom height in pixels for the display of this notification's content.
int getCustomSizePreset()
Get the custom size preset for the display of this notification out of the available presets found in NotificationCompat.WearableExtender, e.g.
PendingIntent getDisplayIntent()
Get the intent to launch inside of an activity view when displaying this notification.
int getGravity()
Get the gravity that this notification should have within the available viewport space.
boolean getHintAvoidBackgroundClipping()
Get a hint that this notification's background should not be clipped if possible, and should instead be resized to fully display on the screen, retaining the aspect ratio of the image.
boolean getHintHideIcon()
Get a hint that this notification's icon should not be displayed.
int getHintScreenTimeout()
Get the duration, in milliseconds, that the screen should remain on for when this notification is displayed.
boolean getHintShowBackgroundOnly()
Get a visual hint that only the background image of this notification should be displayed, and other semantic content should be hidden.
List<Notification> getPages()
Get the array of additional pages of content for displaying this notification.
boolean getStartScrollBottom()
Get whether the scrolling position for the contents of this notification should start at the bottom of the contents instead of the top when the contents are too long to display within the screen.
NotificationCompat.WearableExtender setBackground(Bitmap background)
Set a background image to be displayed behind the notification content.
NotificationCompat.WearableExtender setContentAction(int actionIndex)
Set an action from this notification's actions to be clickable with the content of this notification.
NotificationCompat.WearableExtender setContentIcon(int icon)
Set an icon that goes with the content of this notification.
NotificationCompat.WearableExtender setContentIconGravity(int contentIconGravity)
Set the gravity that the content icon should have within the notification display.
NotificationCompat.WearableExtender setContentIntentAvailableOffline(boolean contentIntentAvailableOffline)
Set whether the content intent is available when the wearable device is not connected to a companion device.
NotificationCompat.WearableExtender setCustomContentHeight(int height)
Set the custom height in pixels for the display of this notification's content.
NotificationCompat.WearableExtender setCustomSizePreset(int sizePreset)
Set the custom size preset for the display of this notification out of the available presets found in NotificationCompat.WearableExtender, e.g.
NotificationCompat.WearableExtender setDisplayIntent(PendingIntent intent)
Set an intent to launch inside of an activity view when displaying this notification.
NotificationCompat.WearableExtender setGravity(int gravity)
Set the gravity that this notification should have within the available viewport space.
NotificationCompat.WearableExtender setHintAvoidBackgroundClipping(boolean hintAvoidBackgroundClipping)
Set a hint that this notification's background should not be clipped if possible, and should instead be resized to fully display on the screen, retaining the aspect ratio of the image.
NotificationCompat.WearableExtender setHintHideIcon(boolean hintHideIcon)
Set a hint that this notification's icon should not be displayed.
NotificationCompat.WearableExtender setHintScreenTimeout(int timeout)
Set a hint that the screen should remain on for at least this duration when this notification is displayed on the screen.
NotificationCompat.WearableExtender setHintShowBackgroundOnly(boolean hintShowBackgroundOnly)
Set a visual hint that only the background image of this notification should be displayed, and other semantic content should be hidden.
NotificationCompat.WearableExtender setStartScrollBottom(boolean startScrollBottom)
Set whether the scrolling position for the contents of this notification should start at the bottom of the contents instead of the top when the contents are too long to display within the screen.
[Expand]
Inherited Methods
From class java.lang.Object
From interface android.support.v4.app.NotificationCompat.Extender

Constants

public static final int SCREEN_TIMEOUT_LONG

Sentinel value for use with setHintScreenTimeout(int) to keep the screen on for a longer amount of time when this notification is displayed on the screen.

Constant Value: -1 (0xffffffff)

public static final int SCREEN_TIMEOUT_SHORT

Sentinel value for use with setHintScreenTimeout(int) to keep the screen on for a short amount of time when this notification is displayed on the screen. This is the default value.

Constant Value: 0 (0x00000000)

public static final int SIZE_DEFAULT

Size value for use with setCustomSizePreset(int) to show this notification with default sizing.

For custom display notifications created using setDisplayIntent(PendingIntent), the default is SIZE_MEDIUM. All other notifications size automatically based on their content.

Constant Value: 0 (0x00000000)

public static final int SIZE_FULL_SCREEN

Size value for use with setCustomSizePreset(int) to show this notification full screen.

This value is only applicable for custom display notifications created using setDisplayIntent(PendingIntent).

Constant Value: 5 (0x00000005)

public static final int SIZE_LARGE

Size value for use with setCustomSizePreset(int) to show this notification with a large size.

This value is only applicable for custom display notifications created using setDisplayIntent(PendingIntent).

Constant Value: 4 (0x00000004)

public static final int SIZE_MEDIUM

Size value for use with setCustomSizePreset(int) to show this notification with a medium size.

This value is only applicable for custom display notifications created using setDisplayIntent(PendingIntent).

Constant Value: 3 (0x00000003)

public static final int SIZE_SMALL

Size value for use with setCustomSizePreset(int) to show this notification with a small size.

This value is only applicable for custom display notifications created using setDisplayIntent(PendingIntent).

Constant Value: 2 (0x00000002)

public static final int SIZE_XSMALL

Size value for use with setCustomSizePreset(int) to show this notification with an extra small size.

This value is only applicable for custom display notifications created using setDisplayIntent(PendingIntent).

Constant Value: 1 (0x00000001)

public static final int UNSET_ACTION_INDEX

Sentinel value for an action index that is unset.

Constant Value: -1 (0xffffffff)

Public Constructors

public NotificationCompat.WearableExtender ()

Create a NotificationCompat.WearableExtender with default options.

public NotificationCompat.WearableExtender (Notification notif)

Parameters
notif Notification

Public Methods

public NotificationCompat.WearableExtender addAction (NotificationCompat.Action action)

Add a wearable action to this notification.

When wearable actions are added using this method, the set of actions that show on a wearable device splits from devices that only show actions added using addAction(NotificationCompat.Action). This allows for customization of which actions display on different devices.

Parameters
action NotificationCompat.Action: the action to add to this notification
Returns
NotificationCompat.WearableExtender this object for method chaining

public NotificationCompat.WearableExtender addActions (List<NotificationCompat.Action> actions)

Adds wearable actions to this notification.

When wearable actions are added using this method, the set of actions that show on a wearable device splits from devices that only show actions added using addAction(NotificationCompat.Action). This allows for customization of which actions display on different devices.

Parameters
actions List: the actions to add to this notification
Returns
NotificationCompat.WearableExtender this object for method chaining

public NotificationCompat.WearableExtender addPage (Notification page)

Add an additional page of content to display with this notification. The current notification forms the first page, and pages added using this function form subsequent pages. This field can be used to separate a notification into multiple sections.

Parameters
page Notification: the notification to add as another page
Returns
NotificationCompat.WearableExtender this object for method chaining

See also:

public NotificationCompat.WearableExtender addPages (List<Notification> pages)

Add additional pages of content to display with this notification. The current notification forms the first page, and pages added using this function form subsequent pages. This field can be used to separate a notification into multiple sections.

Parameters
pages List: a list of notifications
Returns
NotificationCompat.WearableExtender this object for method chaining

See also:

public NotificationCompat.WearableExtender clearActions ()

Clear all wearable actions present on this builder.

Returns
NotificationCompat.WearableExtender this object for method chaining.

public NotificationCompat.WearableExtender clearPages ()

Clear all additional pages present on this builder.

Returns
NotificationCompat.WearableExtender this object for method chaining.

public NotificationCompat.WearableExtender clone ()

Creates and returns a copy of this Object. The default implementation returns a so-called "shallow" copy: It creates a new instance of the same class and then copies the field values (including object references) from this instance to the new instance. A "deep" copy, in contrast, would also recursively clone nested objects. A subclass that needs to implement this kind of cloning should call super.clone() to create the new instance and then create deep copies of the nested, mutable objects.

Returns
NotificationCompat.WearableExtender a copy of this object.

public NotificationCompat.Builder extend (NotificationCompat.Builder builder)

Apply wearable extensions to a notification that is being built. This is typically called by the extend(NotificationCompat.Extender) method of NotificationCompat.Builder.

Parameters
builder NotificationCompat.Builder: the builder to be modified.
Returns
NotificationCompat.Builder the build object for chaining.

public List<NotificationCompat.Action> getActions ()

Get the wearable actions present on this notification.

Returns
List<NotificationCompat.Action>

public Bitmap getBackground ()

Get a background image to be displayed behind the notification content. Contrary to the NotificationCompat.BigPictureStyle, this background will work with any notification style.

Returns
Bitmap the background image

public int getContentAction ()

Get the index of the notification action, if any, that was specified as being clickable with the content of this notification. This action will no longer display separately from the notification's content.

For notifications with multiple pages, child pages can also have content actions set, although the list of available actions comes from the main notification and not from the child page's notification.

If wearable specific actions were added to the main notification, this index will apply to that list, otherwise it will apply to the regular actions list.

Returns
int the action index or UNSET_ACTION_INDEX if no action was selected.

public int getContentIcon ()

Get an icon that goes with the content of this notification.

Returns
int

public int getContentIconGravity ()

Get the gravity that the content icon should have within the notification display. Supported values include START and END. The default value is END.

Returns
int

See also:

public boolean getContentIntentAvailableOffline ()

Get whether the content intent is available when the wearable device is not connected to a companion device. The user can still trigger this intent when the wearable device is offline, but a visual hint will indicate that the content intent may not be available. Defaults to true.

Returns
boolean

public int getCustomContentHeight ()

Get the custom height in pixels for the display of this notification's content.

This option is only available for custom display notifications created using setDisplayIntent(PendingIntent). See also setCustomSizePreset(int) and setCustomContentHeight(int).

Returns
int

public int getCustomSizePreset ()

Get the custom size preset for the display of this notification out of the available presets found in NotificationCompat.WearableExtender, e.g. SIZE_LARGE.

Some custom size presets are only applicable for custom display notifications created using setDisplayIntent(PendingIntent). Check the documentation for the preset in question. See also setCustomContentHeight(int) and setCustomSizePreset(int).

Returns
int

public PendingIntent getDisplayIntent ()

Get the intent to launch inside of an activity view when displaying this notification. This PendingIntent should be for an activity.

Returns
PendingIntent

public int getGravity ()

Get the gravity that this notification should have within the available viewport space. Supported values include TOP, CENTER_VERTICAL and BOTTOM. The default value is BOTTOM.

Returns
int

public boolean getHintAvoidBackgroundClipping ()

Get a hint that this notification's background should not be clipped if possible, and should instead be resized to fully display on the screen, retaining the aspect ratio of the image. This can be useful for images like barcodes or qr codes.

Returns
boolean true if it's ok if the background is clipped on the screen, false otherwise. The default value is false if this was never set.

public boolean getHintHideIcon ()

Get a hint that this notification's icon should not be displayed.

Returns
boolean true if this icon should not be displayed, false otherwise. The default value is false if this was never set.

public int getHintScreenTimeout ()

Get the duration, in milliseconds, that the screen should remain on for when this notification is displayed.

Returns
int the duration in milliseconds if > 0, or either one of the sentinel values SCREEN_TIMEOUT_SHORT or SCREEN_TIMEOUT_LONG.

public boolean getHintShowBackgroundOnly ()

Get a visual hint that only the background image of this notification should be displayed, and other semantic content should be hidden. This hint is only applicable to sub-pages added using addPage(Notification).

Returns
boolean

public List<Notification> getPages ()

Get the array of additional pages of content for displaying this notification. The current notification forms the first page, and elements within this array form subsequent pages. This field can be used to separate a notification into multiple sections.

Returns
List<Notification> the pages for this notification

public boolean getStartScrollBottom ()

Get whether the scrolling position for the contents of this notification should start at the bottom of the contents instead of the top when the contents are too long to display within the screen. Default is false (start scroll at the top).

Returns
boolean

public NotificationCompat.WearableExtender setBackground (Bitmap background)

Set a background image to be displayed behind the notification content. Contrary to the NotificationCompat.BigPictureStyle, this background will work with any notification style.

Parameters
background Bitmap: the background bitmap
Returns
NotificationCompat.WearableExtender this object for method chaining

See also:

public NotificationCompat.WearableExtender setContentAction (int actionIndex)

Set an action from this notification's actions to be clickable with the content of this notification. This action will no longer display separately from the notification's content.

For notifications with multiple pages, child pages can also have content actions set, although the list of available actions comes from the main notification and not from the child page's notification.

Parameters
actionIndex int: The index of the action to hoist onto the current notification page. If wearable actions were added to the main notification, this index will apply to that list, otherwise it will apply to the regular actions list.
Returns
NotificationCompat.WearableExtender

public NotificationCompat.WearableExtender setContentIcon (int icon)

Set an icon that goes with the content of this notification.

Parameters
icon int
Returns
NotificationCompat.WearableExtender

public NotificationCompat.WearableExtender setContentIconGravity (int contentIconGravity)

Set the gravity that the content icon should have within the notification display. Supported values include START and END. The default value is END.

Parameters
contentIconGravity int
Returns
NotificationCompat.WearableExtender

public NotificationCompat.WearableExtender setContentIntentAvailableOffline (boolean contentIntentAvailableOffline)

Set whether the content intent is available when the wearable device is not connected to a companion device. The user can still trigger this intent when the wearable device is offline, but a visual hint will indicate that the content intent may not be available. Defaults to true.

Parameters
contentIntentAvailableOffline boolean
Returns
NotificationCompat.WearableExtender

public NotificationCompat.WearableExtender setCustomContentHeight (int height)

Set the custom height in pixels for the display of this notification's content.

This option is only available for custom display notifications created using setDisplayIntent(PendingIntent). See also setCustomSizePreset(int) and getCustomContentHeight().

Parameters
height int
Returns
NotificationCompat.WearableExtender

public NotificationCompat.WearableExtender setCustomSizePreset (int sizePreset)

Set the custom size preset for the display of this notification out of the available presets found in NotificationCompat.WearableExtender, e.g. SIZE_LARGE.

Some custom size presets are only applicable for custom display notifications created using setDisplayIntent(PendingIntent). Check the documentation for the preset in question. See also setCustomContentHeight(int) and getCustomSizePreset().

Parameters
sizePreset int
Returns
NotificationCompat.WearableExtender

public NotificationCompat.WearableExtender setDisplayIntent (PendingIntent intent)

Set an intent to launch inside of an activity view when displaying this notification. The PendingIntent provided should be for an activity.

 Intent displayIntent = new Intent(context, MyDisplayActivity.class);
 PendingIntent displayPendingIntent = PendingIntent.getActivity(context,
         0, displayIntent, PendingIntent.FLAG_UPDATE_CURRENT);
 Notification notif = new NotificationCompat.Builder(context)
         .extend(new NotificationCompat.WearableExtender()
                 .setDisplayIntent(displayPendingIntent)
                 .setCustomSizePreset(NotificationCompat.WearableExtender.SIZE_MEDIUM))
         .build();

The activity to launch needs to allow embedding, must be exported, and should have an empty task affinity. It is also recommended to use the device default light theme.

Example AndroidManifest.xml entry:

 <activity android:name="com.example.MyDisplayActivity"
     android:exported="true"
     android:allowEmbedded="true"
     android:taskAffinity=""
     android:theme="@android:style/Theme.DeviceDefault.Light" />

Parameters
intent PendingIntent: the PendingIntent for an activity
Returns
NotificationCompat.WearableExtender this object for method chaining

See also:

public NotificationCompat.WearableExtender setGravity (int gravity)

Set the gravity that this notification should have within the available viewport space. Supported values include TOP, CENTER_VERTICAL and BOTTOM. The default value is BOTTOM.

Parameters
gravity int
Returns
NotificationCompat.WearableExtender

public NotificationCompat.WearableExtender setHintAvoidBackgroundClipping (boolean hintAvoidBackgroundClipping)

Set a hint that this notification's background should not be clipped if possible, and should instead be resized to fully display on the screen, retaining the aspect ratio of the image. This can be useful for images like barcodes or qr codes.

Parameters
hintAvoidBackgroundClipping boolean: true to avoid clipping if possible.
Returns
NotificationCompat.WearableExtender this object for method chaining

public NotificationCompat.WearableExtender setHintHideIcon (boolean hintHideIcon)

Set a hint that this notification's icon should not be displayed.

Parameters
hintHideIcon boolean: true to hide the icon, false otherwise.
Returns
NotificationCompat.WearableExtender this object for method chaining

public NotificationCompat.WearableExtender setHintScreenTimeout (int timeout)

Set a hint that the screen should remain on for at least this duration when this notification is displayed on the screen.

Parameters
timeout int: The requested screen timeout in milliseconds. Can also be either SCREEN_TIMEOUT_SHORT or SCREEN_TIMEOUT_LONG.
Returns
NotificationCompat.WearableExtender this object for method chaining

public NotificationCompat.WearableExtender setHintShowBackgroundOnly (boolean hintShowBackgroundOnly)

Set a visual hint that only the background image of this notification should be displayed, and other semantic content should be hidden. This hint is only applicable to sub-pages added using addPage(Notification).

Parameters
hintShowBackgroundOnly boolean
Returns
NotificationCompat.WearableExtender

public NotificationCompat.WearableExtender setStartScrollBottom (boolean startScrollBottom)

Set whether the scrolling position for the contents of this notification should start at the bottom of the contents instead of the top when the contents are too long to display within the screen. Default is false (start scroll at the top).

Parameters
startScrollBottom boolean
Returns
NotificationCompat.WearableExtender