将通知从悬浮式通知移动到状态栏是否可能?

6

背景

Android Lollipop (API 21) 引入了一种在状态栏之外显示通知的方法(也称为“通知栏”),以便用户可以立即处理它们。这被称为“悬浮通知”。

触发它们显示的方式可能因设备/roms/制造商而异。

问题

有时,显示这些通知会令用户感到烦恼,而大多数情况下没有针对此类情况的设置。

如果用户关闭悬浮通知,它们将不会显示为普通通知。没有办法隐藏它们并继续屏幕上的操作。您只能等待(而且需要相当长的等待时间)。

事实上,有多个 Google-Group 问题就由于它可能会惹恼人们而被打开(链接在这里在这里)。

我的发现

从 API 18 开始,可以使用“NotificationListenerService”和“StatusBarNotification”等类来侦听通知事件甚至读取它们。

然而,除了关闭其他应用程序的通知之外,我找不到任何其他可以对它们进行的操作。

问题

在我的应用程序生命周期内,是否有可能监听显示为悬浮通知的通知,并将它们放回状态栏通知中?

甚至可以为它们设置不同的超时时间?或者当它们被关闭时选择将它们转换为普通状态栏通知?

甚至在执行这些操作之前,我应该问:如何知道我发现的通知(其他应用程序的通知)是否显示为悬浮通知?


它取决于其优先级:如果优先级很高或最大,并且您将振动设置为通知,则会出现“弹出”提示。 - dvrm
1个回答

0

我不知道如何实现这个。但是回答“是否可能……?”的问题,是的,有像this one这样的应用程序可以阻止/仅在通知栏中显示通知。


我想你指的是这个:https://play.google.com/store/apps/details?id=com.silverfinger.ticklrfree。不知道它们是如何工作的。 - android developer
它们似乎有着相同的目的。是啊,不知道它们是如何工作的。它们需要完全访问设备的通知,我实际上需要在设置->通知管理器->通知访问(在Android 5.0上)中启用其权限。 - Teo Inke
1
请让我知道如果你找到了。也许他们会画一个假的并忽略正常的通知。 - android developer
HeadsOff 绝对会覆盖接收到的悬浮通知。你可以看出来,因为正常的悬浮通知会显示在状态栏上方,而你仍然可以看到它后面的状态栏项目。但是对于 HeadsOff 来说,状态栏只是一个空白栏。 - Jason Hu
即使启用了画中画功能,HeadsOff 在 Marshmallow 上似乎无法正常工作。您可以在开发者调试设置中使用“显示布局边界”来查看视图布局边界,但是悬浮式通知会位于其系统警报的顶部。 - RyPope
@RyPope 在 Marshmallow 上,您可以本地禁用这些通知,在“设置”->“通知”->“悬浮通知”中关闭它。 - Teo Inke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接