【问题标题】:Disabling Oreo Notification dot禁用奥利奥通知点
【发布时间】:2018-06-27 11:19:23
【问题描述】:

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

我正在使用 NotificationChannel 我尝试使用

NotificationChannel.setShowBadge(false)

但它没有用。
我该怎么做?


youtube - 没有通知点

myApp - 有通知点

【问题讨论】:

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


    【解决方案1】:

    当您在 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());
    

    【讨论】: