java - 禁用奥利奥通知点

标签 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

最佳答案

当您在 Oreo 下创建通知时,您必须创建一个 channel 实例并将其分配给通知。您在实例上使用 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());

关于java - 禁用奥利奥通知点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51061462/

相关文章:

java - 调整 JFrame 的大小并保持纵横比?

java - 使用特定的java参数启动tomcat

java - request.getRemoteAddr() 返回 0 :0:0:0:0:0:0:1 in JSP page

Android TextView 重力底部意外行为

安卓:测试syncadapter

iphone - 在拍摄之前通知或检测屏幕截图?

ios - 如何在应用程序未启动时调试推送通知?

java - Viewpager 显示正确的 fragment 但未初始化它

Android AppWidget 垂直滑动 - 如何

visual-studio - Visual Studio 2013 隐藏通知按钮