Отключение точки уведомления Oreo - PullRequest
0 голосов
/ 27 июня 2018

В Oreo (API 18) я не хочу использовать точку уведомления.
Но он показывает точку уведомления по умолчанию.
Например, push-уведомление YouTube, но не используйте точку уведомления.

Я использую NotificationChannel И я попробовал использовать

NotificationChannel.setShowBadge(false)

Но это не сработало.
Как я могу это сделать?


YouTube - не имеет точки уведомления

enter image description here

myApp - имеет точку уведомления

enter image description here

1 Ответ

0 голосов
/ 27 июня 2018

Когда вы создаете свое уведомление под 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());
...