美文网首页安卓开发
安卓发送通知不显示状态栏图标的技巧

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

作者: xiaofei_dev | 来源:发表于2017-05-14 17:41 被阅读121次

    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.png
    Screenshot_20170514-173043.png

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

    notificationBulider.setPriority(NotificationCompat.PRIORITY_MIN);
    

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

    就行了,好下课。

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

    相关文章

      网友评论

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

      本文链接:https://www.haomeiwen.com/subject/bpvqxxtx.html