How to create a notification without icon in the statusbar or simply hide it?

前端 未结 5 1489
闹比i
闹比i 2021-01-02 00:42

I\'d like to know how to create a notification that doesn\'t show the icon in the statusbar.

There is a way to hide it?

相关标签:
5条回答
  • 2021-01-02 01:08

    You can do this by having a total transparent image and use that as your icon. :)

    0 讨论(0)
  • 2021-01-02 01:08

    there is no way to show notification without icon.

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

    @CommonsWare: Since the primary point of raising a Notification is to put an icon in the status bar, there is usually no need to not put an icon in the status bar, unless it is interactive, such as a toggle or information notification that will always run and you might want on the pull down, but has no use for an icon.

    check this answer for more detail.

    0 讨论(0)
  • 2021-01-02 01:17

    .setPriority with parameter PRIORITY_MIN will make this possible.

    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();
    
    0 讨论(0)
  • 2021-01-02 01:19

    NotificationManager.IMPORTANCE_UNSPECIFIED works in my case

    0 讨论(0)
  • 2021-01-02 01:26

    Since Android 4.1 (API level 16) it's possible to specify a notification's priority. If you set that flag to PRIORITY_MIN the notification icon won't show up on the statusbar.

    notification.priority = Notification.PRIORITY_MIN;
    

    Or in case you use a Notification.Builder:

    builder.setPriority(Notification.PRIORITY_MIN);
    

    As of Android 8.0 Oreo (API level 26) you have to set the importance of the notification's NotificationChannel to IMPORTANCE_MIN:

    NotificationChannel channel = 
          new NotificationChannel(channelId, channelName, NotificationManager.IMPORTANCE_MIN);
    notificationManager.createNotificationChannel(channel);
    ...
    builder.setChannelId(channel.getId())
    
    0 讨论(0)
提交回复
热议问题