Я хотел бы знать, как создать уведомление, которое не отображает значок в строке состояния.
Есть способ скрыть это?
Я хотел бы знать, как создать уведомление, которое не отображает значок в строке состояния.
Есть способ скрыть это?
Начиная с Android 4.1 (уровень API 16) можно указать priority
. Если вы установите для этого флага значение PRIORITY_MIN
, значок уведомления не будет отображаться в строке состояния.
notification.priority = Notification.PRIORITY_MIN;
Или, если вы используете Notification.Builder
:
builder.setPriority(Notification.PRIORITY_MIN);
Начиная с Android 8.0 Oreo (уровень API 26) вы должны установить importance
уведомления NotificationChannel
на IMPORTANCE_MIN
:
NotificationChannel channel =
new NotificationChannel(channelId, channelName, NotificationManager.IMPORTANCE_MIN);
notificationManager.createNotificationChannel(channel);
...
builder.setChannelId(channel.getId())
.setPriority
с параметром PRIORITY_MIN
сделает это возможным.
NotificationCompat notification = new NotificationCompat.Builder(this)
.setContentTitle(getString(R.string.app_name))
.setContentText(getString(R.string.notification_text))
.setSmallIcon(R.mipmap.ic_launcher)
//Show the notification only in NotificationDrawer.
//Notification will not be shown on LockScreen as well as Hidden Icon on StatusBar.
.setPriority(Notification.PRIORITY_MIN)
.build();
NotificationManager.IMPORTANCE_UNSPECIFIED
работает в моем случае
Вы можете сделать это, имея полностью прозрачное изображение и использовать его в качестве значка. :)
невозможно отобразить уведомление без значка.
You can use transparent image. But, it take space of icon.
@CommonsWare: поскольку основной целью создания уведомления является размещение значка в строке состояния, обычно нет необходимости не помещать значок в строку состояния, если только он не является интерактивным, например переключателем или информационным уведомлением, которое будет всегда работает, и вы можете захотеть вытащить, но не имеет смысла для значка.
подробности см. в этом ответе.