Android 11通知抽屉中每个应用的通知限制下降至24条

6

安卓应用程序可以显示的通知数量有限制吗?我在显示24条通知后遇到了问题,之后的通知没有显示。

目前还没有明确说明此限制的文档。

我在安卓11中观察到了这个问题。看起来这也适用于安卓10 (https://support.google.com/pixelphone/thread/23619509?hl=en)。但是我没有安卓10,所以我没有测试过。

请帮忙查找有关此限制的文档参考,或者是否可以使用设备设置更改此行为。

2个回答

8

是的,每个应用程序可以发布的通知数量有限制。有趣的是,该数字不是固定的,可以由设备制造商控制。根据我的观察,Google Pixel 3A手机的通知限制为25条,而OnePlus 6T和三星设备限制的通知数为50条。

如果我们仔细观察NotificationManagerService.java源代码,我们会看到一个名为MAX_PACKAGE_COUNT的变量被声明为50。

代码中,如果计数大于MAX_PACKAGE_NOTIFICATIONS,它会显示一条消息,指出“Package has already posted max toasts. Not showing more!” 这就是我们受到每个应用程序发布通知数量限制的原因。


Leo Zhu - MSFT,您能帮我理解一下这段引用代码与Android 11或Android 10有什么关系吗? - Ranjit
但是为什么社交应用程序如WhatsApp可以在Android 11中发布50个以上的系统托盘通知呢? - Sherif farid

0
  • 特定应用程序的通知数量已设置为50,这是在通知管理器中设置的默认值。但更重要的是,设备制造商也可以自行设置此限制。

  • 问题:现在的问题是我们无法更改此数字,因为它对我们不可访问甚至不可见。

  • 解决方案:如果我们希望我们的应用程序持续传递通知,我们需要在应用程序中稍微更改一些代码。

    • 我们必须清除不需要的先前通知。
    • 为此,我们可以设置Notification.builder。

    NotificationCompat.Builder builder = new NotificationCompat.Builder(...); builder.setContentTitle(...); builder.setContentText(...); builder.setTimeoutAfter(5000);

builder.setTimeoutAfter(5000);
以上一行将在通知到达5秒后自动清除通知。

因此,您的应用程序可以推送更新的通知。

参考资料: 1. 通知生成器 2. builder.setTimeOutAfter();


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