Aniket Thakur
Aniket Thakur

Reputation: 68945

Notification Badges not woking in Android O

With Android O developer preview google has introduced notification badges that are supposed to be shown on launcher icon. I am using emulator with Android O from dev channel.I wrote a simple code to show notification badge but it does not seem to work -

        Notification notification = new Notification.Builder(getApplicationContext())
                .chooseBadgeIcon(Notification.BADGE_ICON_SMALL)
                .setSmallIcon(android.R.drawable.btn_star)
                .setNumber(10)
                .build();

        mNotificationManager.notify(1, notification);

It just shows as normal notification.

API - https://developer.android.com/reference/android/app/Notification.Builder.html#chooseBadgeIcon(int)

Has anyone worked on this yet? Am I missing something?

Show badge is enabled in settings.

enter image description here


Tried with NotificationChannel too. Does not work -

    NotificationChannel mChannel = new NotificationChannel("TestBadge_id", "TestBadgeName", NotificationManager.IMPORTANCE_HIGH);
    mChannel.enableLights(true);
    mChannel.setLightColor(Color.RED);
    mChannel.setShowBadge(true);
    mNotificationManager.createNotificationChannel(mChannel);


    Notification notification = new Notification.Builder(getApplicationContext())
                .chooseBadgeIcon(Notification.BADGE_ICON_SMALL)
                .setSmallIcon(android.R.drawable.btn_star)
                .setNumber(10)
            .setChannel("TestBadge_id")
                .build();

        mNotificationManager.notify(1, notification);

Upvotes: 6

Views: 10023

Answers (1)

blizzard
blizzard

Reputation: 5375

The Notification badge examples of Android-O doesn't seem to work in emulator in early preview releases. But with the latest release of Android-O developer preview-3 the badges are displayed properly as documented in the Notification Badges section.

To display notification badge, you need to set the setShowBadge(boolean) for a notification channel to true. By default badges will be displayed like below:

Sample image to showcase badges

Upon long press if there is a more than a one notification the count is displayed.The count automatically increments/decrements based on the active notifications. You can also adjust the count manually by using the Notification.Builder.setNumber().

Sample showing notification count on long press of launcher icon:

Badge notification showing count

Make sure you are targetting the latest API:

compileSdkVersion 26 
buildToolsVersion "26.0.0"
targetSdkVersion 26

Tested in pixel Android emulator version 26.1.1.

Upvotes: 7

Related Questions