禁用奥利奥通知点

时间:2018-06-27 11:19:23

标签: java android notifications android-8.0-oreo badge

在Oreo(API 18)上,我不想使用通知点。
但它显示默认的通知点。
例如,YouTube推送通知,但不使用通知点。

我正在使用NotificationChannel 我尝试使用

NotificationChannel.setShowBadge(false)

但是没有用。
我该怎么办?


youtube-没有通知点

enter image description here

myApp-带有通知点

enter image description here

1 个答案:

答案 0 :(得分:3)

在Oreo下创建通知时,您必须创建一个频道实例并将其分配给通知。您在实例上使用setShowBadge

下面是我的代码,可以正确删除徽章。

NotificationManager notificationManager = (NotificationManager) context
            .getSystemService(Context.NOTIFICATION_SERVICE);

String CHANNEL_ID = "my_channel";
CharSequence name = context.getString(R.string.channel_name);

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
    NotificationChannel channel = new NotificationChannel(CHANNEL_ID, name, NotificationManager.IMPORTANCE_LOW);
    channel.setShowBadge(false);

    notificationManager.createNotificationChannel(channel);
}

NotificationCompat.Builder builder = new NotificationCompat.Builder(
        context, CHANNEL_ID).setSmallIcon(iconID)
        .setContentTitle(task.taskTitle)
        .setContentText(task.taskNote).setOngoing(true).setWhen(0)
        .setChannelId(CHANNEL_ID)
        .setSound(null)
        .setPriority(NotificationCompat.PRIORITY_DEFAULT);

notificationManager.notify(task.driveId, NOTIFICATION_ID, builder.build());