Push Templates by CleverTap

June 4, 2026 · View on GitHub

CleverTap Push Templates SDK helps you engage with your users using fancy push notification templates built specifically to work with CleverTap.

Table of contents

Installation

(Back to top)

Out of the box

  1. Add the dependencies to the build.gradle
implementation "com.clevertap.android:push-templates:2.4.0"
implementation "com.clevertap.android:clevertap-android-sdk:8.3.0" // 4.4.0 and above
  1. Add the following line to your Application class before the onCreate()

Kotlin

CleverTapAPI.setNotificationHandler(PushTemplateNotificationHandler() as NotificationHandler);

Java

CleverTapAPI.setNotificationHandler((NotificationHandler)new PushTemplateNotificationHandler());

Custom Handling Push Notifications

Add the following code in your custom FirebaseMessageService class

public class PushTemplateMessagingService extends FirebaseMessagingService {
    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        CTFcmMessageHandler()
                .createNotification(getApplicationContext(), remoteMessage);
    }
    @Override
    public void onNewToken(@NonNull final String s) {
        //no-op
    }
}

Dashboard Usage

(Back to top)

While creating a Push Notification campaign on CleverTap, just follow the steps below -

  1. On the "WHAT" section pass the desired values in the "title" and "message" fields (NOTE: We prioritise title and message provided in the key-value pair - as shown in step 2, over these fields)

Basic

  1. Click on "Advanced" and then click on "Add pair" to add the Template Keys

KVs

  1. You can also add the above keys into one JSON object and use the pt_json key to fill in the values

KVs in JSON

  1. Send a test push and schedule!

Template Types

(Back to top)

Basic Template

Basic Template is the basic push notification received on apps.

(Expanded and unexpanded example)

Basic with color

Auto carousel is an automatic revolving carousel push notification.

(Expanded and unexpanded example)

Auto-Carousel

This is the manual version of the carousel. The user can navigate to the next image by clicking on the arrows.

(Expanded and unexpanded example)

Manual

If only one image can be downloaded, this template falls back to the Basic Template

Filmstrip Variant

The manual carousel has an extra variant called filmstrip. This can be used by adding the following key-value -

Template KeyRequiredValue
pt_manual_carousel_typeOptionalfilmstrip

(Expanded and unexpanded example)

Filmstrip

Rating Template

Rating template lets your users give you feedback, this feedback is captured in the event "Rating Submitted" with in the property wzrk_c2a.
(Expanded and unexpanded example)

Rating

Product Catalog Template

Product catalog template lets you show case different images of a product (or a product catalog) before the user can decide to click on the "BUY NOW" option which can take them directly to the product via deep links. This template has two variants.

Vertical View

(Expanded and unexpanded example)

Product Display

Linear View

Use the following keys to enable linear view variant of this template.

Template KeyRequiredValue
pt_product_display_linearOptionaltrue

Product Display

Five Icons Template

Five icons template is a push notification with no text, just 5 icons which can help your users go directly to the functionality of their choice with a button's click.

If at least 3 icons are not retrieved, the library doesn't render any notification. The bifurcation of each CTA is captured in the event Notification Clicked with in the property wzrk_c2a.

If user clicks on any notification area except the five icons, then by default it will launch an activity intent.

Timer Template

This template features a live countdown timer. You can even choose to show different title, message, and background image after the timer expires.

Timer notification is only supported for Android O (8) and above. For OS versions below O, the library falls back to the Basic Template.

Timer

Zero Bezel Template

The Zero Bezel template ensures that the background image covers the entire available surface area of the push notification. All the text is overlayed on the image.

The library will fallback to the Basic Template if the image can't be downloaded.

Zero Bezel

Input Box Template

The Input Box Template lets you collect any kind of input including feedback from your users. It has four variants.

With CTAs

The CTA variant of the Input Box Template use action buttons on the notification to collect input from the user.

To set the CTAs use the Advanced Options when setting up the campaign on the dashboard.

Input_Box_CTAs

Template KeyRequiredValue
pt_dismiss_on_clickOptionalDismisses the notification without opening the app

*Note If pt_dismiss_on_click is false we'll have to add the below code to not dismiss the notification for Android 12 and above

fun dismissNotification(intent: Intent?, applicationContext: Context){
    intent?.extras?.apply {
        var autoCancel = true
        var notificationId = -1

        getString("actionId")?.let {
            Log.d("ACTION_ID", it)
            autoCancel = getBoolean("autoCancel", true)
            notificationId = getInt("notificationId", -1)
        }
        /**
         * If using InputBox template, add ptDismissOnClick flag to not dismiss notification
         * if pt_dismiss_on_click is false in InputBox template payload. Alternatively if normal
         * notification is raised then we dismiss notification.
         */
        val ptDismissOnClick = intent.extras!!.getString(PTConstants.PT_DISMISS_ON_CLICK,"")

        if (autoCancel && notificationId > -1 && ptDismissOnClick.isNullOrEmpty()) {
            val notifyMgr: NotificationManager =
                applicationContext.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
            notifyMgr.cancel(notificationId)
        }
    }
}

CTAs with Remind Later option

This variant of the Input Box Template is particularly useful if the user wants to be reminded of the notification after sometime. Clicking on the remind later button raises an event to the user profiles, with a custom user property p2 whose value is a future time stamp. You can have a campaign running on the dashboard that will send a reminder notification at the timestamp in the event property.

To set one of the CTAs as a Remind Later button set the action id to remind from the dashboard.

Template KeyRequiredValue
pt_event_nameRequiredfor e.g. Remind Later,
pt_event_property_<property_name_1>Optionalfor e.g. <property_value>,
pt_event_property_<property_name_2>Requiredfuture epoch timestamp. For e.g., $D_1592503813
pt_dismiss_on_clickRequiredValue should be true. It dismisses the notification without opening the app and raises a required event to the user profile, needed to send a reminder notification.

Input_Box_CTA_Remind

Reply as an Event

This variant raises an event capturing the user's input as an event property. The app is not opened after the user sends the reply.

To use this variant, use the following values for the keys.

Template KeyRequiredValue
pt_input_labelRequiredfor e.g., Search
pt_input_feedbackRequiredfor e.g., Thanks for your feedback
pt_event_nameRequiredfor e.g. Searched,
pt_event_property_<property_name_1>Optionalfor e.g. <property_value>,
pt_event_property_<property_name_2>Required to capture inputfixed value - pt_input_reply

Input_Box_CTA_No_Open

Reply as an Intent

This variant passes the reply to the app as an Intent. The app can then process the reply and take appropriate actions.

To use this variant, use the following values for the keys.

Template KeyRequiredValue
pt_input_labelRequiredfor e.g., Search
pt_input_feedbackRequiredfor e.g., Thanks for your feedback
pt_input_auto_openRequiredfixed value - true


To capture the input, the app can get the pt_input_reply key from the Intent extras.

Input_Box_CTA_With_Open

Template Keys

(Back to top)

Basic Template

Basic Template KeysRequiredDescription
pt_idRequiredValue - pt_basic
pt_titleRequiredTitle
pt_msgRequiredMessage
pt_msg_summaryRequiredMessage line when Notification is expanded
pt_subtitleOptionalSubtitle
pt_bgOptionalBackground Color in HEX
pt_big_imgOptionalImage
pt_big_img_alt_textOptionalAlt Text for Image
pt_gifOptionalGIF
pt_gif_framesOptionalNumber of frames to extract from the GIF
pt_scale_typeOptionalScaleType for the big image in the ImageView ("center_crop"/"fit_center")
pt_icoOptionalLarge Icon
pt_dl1OptionalOne Deep Link (minimum)
pt_title_clrOptionalTitle Color in HEX
pt_msg_clrOptionalMessage Color in HEX
pt_small_icon_clrOptionalSmall Icon Color in HEX
pt_stickyOptionalShould the notification be sticky? ("true"/"false")
pt_dismissOptionalAuto dismiss the notification after a set time (value in seconds)
pt_jsonOptionalAbove keys in JSON format
Auto Carousel Template KeysRequiredDescription
pt_idRequiredValue - pt_carousel
pt_titleRequiredTitle
pt_msgRequiredMessage
pt_msg_summaryOptionalMessage line when Notification is expanded
pt_subtitleOptionalSubtitle
pt_dl1RequiredDeep Link (Max one)
pt_img1RequiredImage One
pt_img1_alt_textOptionalAlt Text for Image One
pt_img2RequiredImage Two
pt_img2_alt_textOptionalAlt Text for Image Two
pt_img3RequiredImage Three
pt_img3_alt_textOptionalAlt Text for Image Three
pt_imgnOptionalImage N
pt_imgn_alt_textOptionalAlt Text for Image N
pt_scale_typeOptionalScaleType for the big image in the ImageView ("center_crop"/"fit_center")
pt_bgOptionalBackground Color in HEX
pt_icoOptionalLarge Icon
pt_title_clrOptionalTitle Color in HEX
pt_msg_clrOptionalMessage Color in HEX
pt_small_icon_clrOptionalSmall Icon Color in HEX
pt_stickyOptionalShould the notification be sticky? ("true"/"false")
pt_dismissOptionalAuto dismiss the notification after a set time (value in seconds)
pt_jsonOptionalAbove keys in JSON format
Manual Carousel Template KeysRequiredDescription
pt_idRequiredValue - pt_manual_carousel
pt_titleRequiredTitle
pt_msgRequiredMessage
pt_msg_summaryOptionalMessage line when Notification is expanded
pt_subtitleOptionalSubtitle
pt_dl1RequiredDeep Link One
pt_dl2OptionalDeep Link Two
pt_dlnOptionalDeep Link for the nth image
pt_img1RequiredImage One
pt_img1_alt_textOptionalAlt Text for Image One
pt_img2RequiredImage Two
pt_img2_alt_textOptionalAlt Text for Image Two
pt_img3RequiredImage Three
pt_img3_alt_textOptionalAlt Text for Image Three
pt_imgnOptionalImage N
pt_imgn_alt_textOptionalAlt Text for Image N
pt_scale_typeOptionalScaleType for the big image in the ImageView ("center_crop"/"fit_center")
pt_bgOptionalBackground Color in HEX
pt_icoOptionalLarge Icon
pt_title_clrOptionalTitle Color in HEX
pt_msg_clrOptionalMessage Color in HEX
pt_small_icon_clrOptionalSmall Icon Color in HEX
pt_stickyOptionalShould the notification be sticky? ("true"/"false")
pt_dismissOptionalAuto dismiss the notification after a set time (value in seconds)
pt_jsonOptionalAbove keys in JSON format
pt_manual_carousel_typeOptionalfilmstrip

Rating Template

Rating Template KeysRequiredDescription
pt_idRequiredValue - pt_rating
pt_titleRequiredTitle
pt_msgRequiredMessage
pt_big_imgOptionalImage
pt_gifOptionalGIF
pt_gif_framesOptionalNumber of frames to extract from the GIF
pt_big_img_alt_textOptionalAlt Text for Image
pt_scale_typeOptionalScaleType for the big image in the ImageView ("center_crop"/"fit_center")
pt_msg_summaryOptionalMessage line when Notification is expanded
pt_subtitleOptionalSubtitle
pt_default_dlRequiredDefault Deep Link for Push Notification
pt_dl1RequiredDeep Link for first/all star(s)
pt_dl2OptionalDeep Link for second star
pt_dl3OptionalDeep Link for third star
pt_dl4OptionalDeep Link for fourth star
pt_dl5OptionalDeep Link for fifth star
pt_bgOptionalBackground Color in HEX
pt_icoOptionalLarge Icon
pt_title_clrOptionalTitle Color in HEX
pt_msg_clrOptionalMessage Color in HEX
pt_small_icon_clrOptionalSmall Icon Color in HEX
pt_stickyOptionalShould the notification be sticky? ("true"/"false")
pt_dismissOptionalAuto dismiss the notification after a set time (value in seconds)
pt_jsonOptionalAbove keys in JSON format

Product Catalog Template

Product Catalog Template KeysRequiredDescription
pt_idRequiredValue - pt_product_display
pt_titleRequiredTitle
pt_msgRequiredMessage
pt_subtitleOptionalSubtitle
pt_img1RequiredImage One
pt_img1_alt_textOptionalAlt Text for Image One
pt_img2RequiredImage Two
pt_img2_alt_textOptionalAlt Text for Image Two
pt_img3RequiredImage Three
pt_img3_alt_textOptionalAlt Text for Image Three
pt_scale_typeOptionalScaleType for the big image in the ImageView ("center_crop"/"fit_center")
pt_bt1RequiredBig text for first image
pt_bt2RequiredBig text for second image
pt_bt3RequiredBig text for third image
pt_st1RequiredSmall text for first image
pt_st2RequiredSmall text for second image
pt_st3RequiredSmall text for third image
pt_dl1RequiredDeep Link for first image
pt_dl2RequiredDeep Link for second image
pt_dl3RequiredDeep Link for third image
pt_price1RequiredPrice for first image
pt_price2RequiredPrice for second image
pt_price3RequiredPrice for third image
pt_bgOptionalBackground Color in HEX
pt_product_display_actionRequiredAction Button Label Text
pt_product_display_linearOptionalLinear Layout Template ("true"/"false")
pt_product_display_action_clrRequiredAction Button Background Color in HEX
pt_title_clrOptionalTitle Color in HEX
pt_msg_clrOptionalMessage Color in HEX
pt_small_icon_clrOptionalSmall Icon Color in HEX
pt_stickyOptionalShould the notification be sticky? ("true"/"false")
pt_dismissOptionalAuto dismiss the notification after a set time (value in seconds)
pt_jsonOptionalAbove keys in JSON format

Five Icons Template

Five Icons Template KeysRequiredDescription
pt_idRequiredValue - pt_five_icons
pt_img1RequiredIcon One
pt_img1_alt_textOptionalAlt Text for Icon One
pt_img2RequiredIcon Two
pt_img2_alt_textOptionalAlt Text for Icon Two
pt_img3RequiredIcon Three
pt_img3_alt_textOptionalAlt Text for Icon Three
pt_img4OptionalIcon Four
pt_img4_alt_textOptionalAlt Text for Icon Four
pt_img5OptionalIcon Five
pt_img5_alt_textOptionalAlt Text for Icon Five
pt_dl1RequiredDeep Link for first icon
pt_dl2RequiredDeep Link for second icon
pt_dl3RequiredDeep Link for third icon
pt_dl4OptionalDeep Link for fourth icon
pt_dl5OptionalDeep Link for fifth icon
pt_bgOptionalBackground Color in HEX
pt_small_icon_clrOptionalSmall Icon Color in HEX
pt_stickyOptionalShould the notification be sticky? ("true"/"false")
pt_dismissOptionalAuto dismiss the notification after a set time (value in seconds)
pt_jsonOptionalAbove keys in JSON format

Timer Template

Timer Template KeysRequiredDescription
pt_idRequiredValue - pt_timer
pt_titleRequiredTitle
pt_title_altOptionalTitle to show after timer expires
pt_msgRequiredMessage
pt_msg_altOptionalMessage to show after timer expires
pt_msg_summaryOptionalMessage line when Notification is expanded
pt_msg_summary_altOptionalMessage summary to show after timer expires
pt_subtitleOptionalSubtitle
pt_dl1RequiredDeep Link
pt_big_imgOptionalImage
pt_gifOptionalGIF
pt_gif_framesOptionalNumber of frames to extract from the GIF
pt_big_img_alt_textOptionalAlt Text for Image
pt_scale_typeOptionalScaleType for the big image in the ImageView ("center_crop"/"fit_center")
pt_big_img_altOptionalImage to show when timer expires
pt_gif_altOptionalGIF to show when timer expires
pt_gif_frames_altOptionalNumber of frames to extract from the alternate GIF
pt_big_img_alt_alt_textOptionalAlt Text for Image to show when timer expires
pt_bgOptionalBackground Color in HEX
pt_chrono_title_clrOptionalColor for timer text in HEX. Falls back to pt_title_clr if absent.
pt_chrono_styleOptionalChronometer box styling mode. One of "solid", "gradient_linear", or "gradient_radial". If absent, no background is drawn on the chronometer box.
pt_chrono_bg_clrOptionalChronometer box background fill color in HEX. Required when pt_chrono_style is "solid"; if missing, no background is drawn.
pt_chrono_grad_clr1OptionalGradient start color in HEX. Required (along with pt_chrono_grad_clr2) when pt_chrono_style is "gradient_linear" or "gradient_radial".
pt_chrono_grad_clr2OptionalGradient end color in HEX. Required (along with pt_chrono_grad_clr1) for gradient styles.
pt_chrono_grad_dirOptionalGradient angle in degrees (String). Applies to linear gradients only. Defaults to "90" (top → bottom).
pt_chrono_border_clrOptionalChronometer box border color in HEX. Works with all styles. No border is drawn if absent.
pt_chrono_border_widthOptionalChronometer box border width in dp. No border is drawn if absent, even when pt_chrono_border_clr is set.
pt_chrono_border_radiusOptionalChronometer box corner radius in dp. Defaults to "6".
pt_timer_thresholdRequiredTimer duration in seconds (minimum 10). Will be given higher priority.
pt_timer_endOptionalEpoch Timestamp to countdown to (for example, $D_1595871380 or 1595871380). Not needed if pt_timer_threshold is specified.
pt_render_terminalOptionalShould terminal notification be rendered? ("true"/"false")
pt_title_clrOptionalTitle Color in HEX
pt_msg_clrOptionalMessage Color in HEX
pt_small_icon_clrOptionalSmall Icon Color in HEX
pt_stickyOptionalShould the notification be sticky? ("true"/"false")
pt_dismissOptionalAuto dismiss the notification after a set time (value in seconds)
pt_jsonOptionalAbove keys in JSON format

Zero Bezel Template

Zero Bezel Template KeysRequiredDescription
pt_idRequiredValue - pt_zero_bezel
pt_titleRequiredTitle
pt_msgRequiredMessage
pt_msg_summaryOptionalMessage line when Notification is expanded
pt_subtitleOptionalSubtitle
pt_big_imgRequiredImage
pt_gifOptionalGIF
pt_gif_framesOptionalNumber of frames to extract from the GIF
pt_big_img_alt_textOptionalAlt Text for Image
pt_scale_typeOptionalScaleType for the big image in the ImageView ("center_crop"/"fit_center")
pt_big_img_collapsedOptionalImage for the collapsed view
pt_gif_collapsedOptionalGIF for the collapsed view
pt_gif_frames_collapsedOptionalNumber of frames to extract from the GIF for the collapsed view
pt_big_img_collapsed_alt_textOptionalAlt Text for Image in the collapsed view
pt_scale_type_collapsedOptionalScaleType for the image in the collapsed View ("center_crop"/"fit_center")
pt_small_viewOptionalSelect text-only small view layout (text_only)
pt_dl1OptionalDeep Link
pt_title_clrOptionalTitle Color in HEX
pt_msg_clrOptionalMessage Color in HEX
pt_small_icon_clrOptionalSmall Icon Color in HEX
pt_icoOptionalLarge Icon
pt_stickyOptionalShould the notification be sticky? ("true"/"false")
pt_dismissOptionalAuto dismiss the notification after a set time (value in seconds)
pt_jsonOptionalAbove keys in JSON format

Input Box Template

Input Box Template KeysRequiredDescription
pt_idRequiredValue - pt_input
pt_titleRequiredTitle
pt_msgRequiredMessage
pt_msg_summaryOptionalMessage line when Notification is expanded
pt_subtitleOptionalSubtitle
pt_big_imgRequiredImage
pt_big_img_alt_textOptionalAlt Text for Image
pt_big_img_altOptionalImage to be shown after feedback is collected
pt_big_img_alt_alt_textOptionalAlt Text for Image to be shown after feedback is collected
pt_event_nameOptionalName of Event to be raised
pt_event_property_<property_name_1>OptionalValue for event property <property_name_1>
pt_event_property_<property_name_2>OptionalValue for event property <property_name_2>
pt_event_property_<property_name_n>OptionalValue for event property <property_name_n>
pt_input_labelRequiredLabel text to be shown on the input
pt_input_auto_openOptionalAuto open the app after feedback
pt_input_feedbackRequiredFeedback
pt_dl1RequiredDeep Link
pt_title_clrOptionalTitle Color in HEX
pt_msg_clrOptionalMessage Color in HEX
pt_small_icon_clrOptionalSmall Icon Color in HEX
pt_icoOptionalLarge Icon
pt_dismiss_on_clickOptionalDismiss notification on click
pt_stickyOptionalShould the notification be sticky? ("true"/"false")
pt_dismissOptionalAuto dismiss the notification after a set time (value in seconds)
pt_jsonOptionalAbove keys in JSON format

NOTE

  • pt_title and pt_msg in all the templates support HTML elements like bold <b>, italics <i> and underline <u>

Developer Notes

(Back to top)

  • Using images of 3 MB or lower are recommended for better performance under Android 11.
  • A silent notification channel with importance: HIGH is created every time on an interaction with the Rating, Manual Carousel, and Product Catalog templates with a silent sound file. This prevents the notification sound from playing when the notification is re-rendered.
  • The silent notification channel is deleted whenever the notification is dismissed or clicked.
  • For Android 11 and Android 12, please use images which are less than 100kb else notifications will not be rendered as advertised.
  • Due to Android 12 trampoline restrictions, the Input Box template with auto open of deeplink feature will fallback to simply raising the event for a reply.

Image Specifications

The following are the image specifications and guidelines for the Push Templates:

TemplateAspect Ratios (Approx.)Maximum File Size (OS version 12 and above)
Standard- OS version 12 and above: 3:2
- OS version 11 and below: 5:3
Basic- OS version 12 and above: 3:2
- OS version 11 and below: 5:3
500 KB
Auto Carousel- OS version 12 and above: 3:2
- OS version 11 and below: 5:3
86 KB
Manual Carousel- OS version 12 and above: 3:2
- OS version 11 and below: 5:3
86 KB
Five Icon- OS version 12 and above: 1:1
- OS version 11 and below: 1:1
50 KB
Text over Image- OS version 12 and above: 1:1
- OS version 11 and below: 2:1
500 KB
Timer- OS version 12 and above: 3:2
- OS version 11 and below: 5:3
326 KB

Image Guidelines

Ensure images for the following templates meet the specified size guidelines:

Template NameRecommended Resolution
Auto Carousel Template400 x 300 px
Manual Carousel Template240 x 180 px
Five Icon Template300 x 300 px
Product Catalogue Template225 x 225 px
  • For Text over Image Template, ensure the text is center-aligned within the image for devices running OS version 12 and above.

GIF Guidelines

To use GIFs in the Push Templates, ensure you are using Push Templates SDK version 2.2.0 and above. Also make sure gifs meet the specified size guidelines. You can use this tool to resize the GIF.

GIF SizeRecommended Number of Frames
180 x 120 px15
240 x 160 px10
300 x 200 px6

Dark Mode

To use the Dark mode feature, ensure you are using Push Templates SDK version 2.1.0 and above. Push templates automatically adapt to the device's theme settings, rendering notifications in dark or light mode. Templates support custom color definitions that adapt to both themes for visual consistency. Refer here for more details

Image Scaling

To use the Image scaling feature, ensure you are using Push Templates SDK version 2.1.0 and above. Android supports various image scaling options to control how images appear in push notifications. CleverTap optimizes image rendering to maintain visual consistency across devices while leveraging Android native scaling behavior. To handle scaling in a Push template, you must add the key pt_scale_type key and the value is set as fit_center or center_crop based on the requirement. Refer here for more details

Android 12 Trampoline restrictions

With Android 12, the Rating and Product Display template push notifications do not get dismissed once the deeplink is opened.

To handle this, you'll have to add the following code to the onActivityResumed or onNewIntent of your app

Kotlin

        val payload = activity.intent?.extras
        if (payload?.containsKey("pt_id") == true && payload["pt_id"] =="pt_rating")
        {
            val nm = activity.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
            nm.cancel(payload["notificationId"] as Int)
        }
        if (payload?.containsKey("pt_id") == true && payload["pt_id"] =="pt_product_display")
        {
            val nm = activity.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
            nm.cancel(payload["notificationId"] as Int)
        }

JAVA

    Bundle payload = activity.getIntent().getExtras();
    if (payload.containsKey("pt_id")&& payload.getString("pt_id").equals("pt_rating"))
    {
        NotificationManager nm = (NotificationManager) activity.getSystemService(Context.NOTIFICATION_SERVICE); 
        nm.cancel(payload.getInt("notificationId"));
    }
    if (payload.containsKey("pt_id")&& payload.getString("pt_id").equals("pt_product_display"))
    {
        NotificationManager nm = (NotificationManager) activity.getSystemService(Context.NOTIFICATION_SERVICE); 
        nm.cancel(payload.getInt("notificationId"));
    }

Android 12 Screenshots

You can see the renditions of all the Push Templates on an Android 12 devices here

Sample App

(Back to top)

Check out the Sample app