安卓发送通知不显示状态栏图标的技巧

2017.11.26 更新:注意本文所介绍的方法可能在非原生系定制 ROM 比如 MIUI 中无效。

你大概知道在安卓系统中往通知栏发送通知时必须要设置小图标,如果你不设置呢?作者本人在 6.0.1 的系统上测试在没有设置小图标的条件下发送通知,结果程序直接崩溃……
抛出了下面这条异常:

 Caused by: java.lang.IllegalArgumentException: Invalid notification (no valid small icon): 

所以,在使用通知时你必须为 NotificationCompat.Builder 调用下面的方法:

 setSmallIcon(int icon)

设置好小图标后,你的通知发出去时小图标会显示在状态栏上。作者前段时间做一个 通知类工具应用 时被用户问到能不能让发出去的通知不显示状态栏图标,因为发出去的通知多了状态栏上堆满图标会看着很不舒服。刚开始我想,你这不是让我不设置小图标吗,这样通知消息发不出来啊老铁。。。于是我直接回复他通知带小图标是安卓平台的强制规范,必须有!你想要不带小图标的通知?不存在的

安卓发送通知不显示状态栏图标的技巧_第1张图片
不存在的.png

后来我忽然想起来一个在安卓平台算是比较有名气的一个app,叫全局复制,这个软件打开后你会看到:

Screenshot_20170514-172935.png

Screenshot_20170514-173043.png

注意全局复制的那条通知在状态栏里是没有相应图标的。
这。。
怎么样,明白了吧,小图标是必须要设置,但不是必须要在状态栏里显示!
我就不卖关子了,想实现不显示状态栏图标的通知?只需要一行代码:

notificationBulider.setPriority(NotificationCompat.PRIORITY_MIN);

对,就是用你的 NotificationCompat.Builder 把通知的 Priority 设置为 PRIORITY_MIN。

就行了,好下课。

哦对了,作者刚才说的那个 通知类工具应用 是作者本人的一个开源项目。
项目托管地址:挂起通知

你可能感兴趣的:(安卓发送通知不显示状态栏图标的技巧)