通知徽章在Android O中没有使用

时间:2017-04-02 17:25:42

标签: android badge android-8.0-oreo

使用Android O开发人员预览谷歌已经引入了应该在启动器图标上显示的通知徽章。我正在使用来自开发者频道的Android O模拟器。我写了一个简单的代码来显示通知徽章但它似乎不起作用 -

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

        mNotificationManager.notify(1, notification);

它只显示为正常通知。

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

有没有人为此工作过?我错过了什么吗?

在设置中启用了显示徽章。

enter image description here

也尝试使用NotificationChannel。不起作用 -

    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);

1 个答案:

答案 0 :(得分:5)

早期预览版本中Android-O的通知徽章示例似乎无法在模拟器中运行。但是,最新版本的Android-O开发人员 preview-3 ,徽章会正确显示,如Notification Badges部分所述。

要显示通知徽章,您需要将通知频道的setShowBadge(boolean)设置为true。默认情况下,徽标将显示如下:

Sample image to showcase badges

长按,如果有多个通知,则显示计数。计数根据活动通知自动递增/递减。您也可以使用Notification.Builder.setNumber()手动调整计数。

示例显示长按启动器图标时的通知计数:

Badge notification showing count

确保您定位的是最新的API:

compileSdkVersion 26 
buildToolsVersion "26.0.0"
targetSdkVersion 26

在像素Android模拟器版本26.1.1中测试。