如何在状态栏中创建没有图标的通知或只是隐藏它?

我想知道如何创建一个不在状态栏中显示图标的通知。

有办法隐藏它吗?

从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)开始,您必须将通知的NotificationChannelimportance设置为IMPORTANCE_MIN

 NotificationChannel channel = new NotificationChannel(channelId, channelName, NotificationManager.IMPORTANCE_MIN); notificationManager.createNotificationChannel(channel); ... builder.setChannelId(channel.getId()) 

带参数PRIORITY_MIN .setPriority将使这成为可能。

 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(); 

您可以通过拥有完全透明的图像并将其用作图标来完成此操作。 🙂

没有图标就无法显示通知。

 You can use transparent image. But, it take space of icon. 

@CommonsWare:由于提出通知的主要目的是在状态栏中放置一个图标,因此通常不需要在状态栏中放置图标,除非它是交互式的,例如切换或信息通知总是运行,你可能想要下拉,但没有用于图标。

查看此答案以获取更多详细信息