Я хотел бы знать, как создать уведомление, которое не отображает значок в строке состояния.
Есть способ скрыть его?
Я хотел бы знать, как создать уведомление, которое не отображает значок в строке состояния.
Есть способ скрыть его?
Начиная с 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
для 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: поскольку основной целью повышения уведомления является установка значка в строке состояния, обычно нет необходимости не помещать значок в строку состояния, если только он не является интерактивным, например, переключением или информацией уведомление, которое всегда будет выполняться, и вы можете захотеть его вытащить, но не использовать значок.