代码之家  ›  专栏  ›  技术社区  ›  Ömer

Android:无通知图标

  •  13
  • Ömer  · 技术社区  · 16 年前

    我想创建一个状态栏中没有图标的通知(未展开的状态)。我尝试了自定义扩展视图,并仅为此视图设置图标。但它不起作用。当我将0作为图标提供给构造函数时,图标将消失,但通知也不会出现在扩展视图中。

    通知通知=新通知(0,“”,0);

    我尝试了很多组合,但没有找到解决方案。顺便说一句,我知道它在工作,因为我在一些应用程序中看到了这个功能。谢谢。

    4 回复  |  直到 12 年前
        1
  •  6
  •   Mr_and_Mrs_D    13 年前

    Quicksettings做到了这一点,当我查看该代码时,我看到它使用通知的默认构造函数,并将其图标推到通知栏的右侧。我认为它仍然使用空间,但没有图标。

    一些代码:

    notification = new Notification();
    notification.flags |= Notification.FLAG_ONGOING_EVENT;
    notification.flags |= Notification.FLAG_NO_CLEAR;
    long hiddenTime = Constants.SDK_VERSION >= 9 ? -Long.MAX_VALUE : Long.MAX_VALUE;
    notification.when = visible ? System.currentTimeMillis() : hiddenTime; // align
    // left (0) / right (max) in status bar
    

    编辑:哦,对不起,我错过了一行重要的代码,实际上他使用了一个占位符。但现在你有了一些代码;-)

    notification.icon = visible ? (status == Constants.STATUS_BLACK_ICON ? 
                                R.drawable.ic_logo_black : R.drawable.ic_logo_white)
                                : R.drawable.ic_placeholder;
    

    http://code.google.com/p/quick-settings/source/browse/trunk/quick-settings/src/com/bwx/bequick/receivers/StatusBarIntegrationReceiver.java

        2
  •  25
  •   dsandler    14 年前

    这在android 4.1中是可能的;Jelly Bean状态栏的引用实现将抑制 PRIORITY_MIN 通知,尽管它们的内容仍将显示在通知面板中。

        3
  •  0
  •   anon    16 年前

    可以使用透明图像作为通知图标。但是正如molnarm已经提到的,用户不会通知有新的通知

        4
  •  0
  •   Alexander Pruss    14 年前

    这里有一些东西需要试验。发出两次通知,一次是图标=0,一次是真正的图标。按一个顺序尝试,然后按相反的顺序尝试。

    当我这样做的时候,状态栏中没有通知,扩展列表中也没有通知,只是其中一个(图标为0的那个)是由service.startForeground()创建的。我现在没有时间做更多的实验。