2017.11.26 更新:注意本文所介绍的方法可能在非原生系定制 ROM 比如 MIUI 中无效。
你大概知道在安卓系统中往通知栏发送通知时必须要设置小图标,如果你不设置呢?作者本人在 6.0.1 的系统上测试在没有设置小图标的条件下发送通知,结果程序直接崩溃……
抛出了下面这条异常:
Caused by: java.lang.IllegalArgumentException: Invalid notification (no valid small icon):
所以,在使用通知时你必须为 NotificationCompat.Builder 调用下面的方法:
setSmallIcon(int icon)
设置好小图标后,你的通知发出去时小图标会显示在状态栏上。作者前段时间做一个 通知类工具应用 时被用户问到能不能让发出去的通知不显示状态栏图标,因为发出去的通知多了状态栏上堆满图标会看着很不舒服。刚开始我想,你这不是让我不设置小图标吗,这样通知消息发不出来啊老铁。。。于是我直接回复他通知带小图标是安卓平台的强制规范,必须有!你想要不带小图标的通知?不存在的
不存在的.png后来我忽然想起来一个在安卓平台算是比较有名气的一个app,叫全局复制,这个软件打开后你会看到:
Screenshot_20170514-172935.pngScreenshot_20170514-173043.png
注意全局复制的那条通知在状态栏里是没有相应图标的。
这。。
怎么样,明白了吧,小图标是必须要设置,但不是必须要在状态栏里显示!
我就不卖关子了,想实现不显示状态栏图标的通知?只需要一行代码:
notificationBulider.setPriority(NotificationCompat.PRIORITY_MIN);
对,就是用你的 NotificationCompat.Builder 把通知的 Priority 设置为 PRIORITY_MIN。
就行了,好下课。
哦对了,作者刚才说的那个 通知类工具应用 是作者本人的一个开源项目。
项目托管地址:挂起通知
网友评论