我想知道如何创建一个不在状态栏中显示图标的通知。
有办法隐藏吗?
从 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
with 参数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:由于提出通知的主要目的是在状态栏中放置一个图标,因此通常不需要不在状态栏中放置图标,除非它是交互式的,例如切换或信息通知总是运行,你可能想要下拉,但没有使用图标。