背景
Android Lollipop (API 21) 引入了一种在状态栏之外显示通知的方法(也称为“通知栏”),以便用户可以立即处理它们。这被称为“悬浮通知”。
触发它们显示的方式可能因设备/roms/制造商而异。
问题
有时,显示这些通知会令用户感到烦恼,而大多数情况下没有针对此类情况的设置。
如果用户关闭悬浮通知,它们将不会显示为普通通知。没有办法隐藏它们并继续屏幕上的操作。您只能等待(而且需要相当长的等待时间)。
事实上,有多个 Google-Group 问题就由于它可能会惹恼人们而被打开(链接在这里和在这里)。
我的发现
从 API 18 开始,可以使用“NotificationListenerService”和“StatusBarNotification”等类来侦听通知事件甚至读取它们。
然而,除了关闭其他应用程序的通知之外,我找不到任何其他可以对它们进行的操作。
问题
在我的应用程序生命周期内,是否有可能监听显示为悬浮通知的通知,并将它们放回状态栏通知中?
甚至可以为它们设置不同的超时时间?或者当它们被关闭时选择将它们转换为普通状态栏通知?
甚至在执行这些操作之前,我应该问:如何知道我发现的通知(其他应用程序的通知)是否显示为悬浮通知?