取消延后通知

时间:2018-09-23 14:16:15

标签: android notification-listener

我正在使用通知侦听器暂停不必要的通知,但是一旦我的应用程序不再运行,如何取消这些通知的暂停?目前,他们发现我这样做的唯一方法是用户必须重新启动手机。

这就是我暂停通知的方式,发现我可以使用getSnoozedNotifications来获取已暂停应用程序的列表,但是取消暂停它的命令是什么?

snoozeNotification(sbn.getKey(), Long.MAX_VALUE - System.currentTimeMillis());

这就是我获得延后的应用程序的方式,我只是找不到任何告诉我取消延后该命令的地方,甚至尝试将持续时间设置为0

private void clearSnoozedNotifications()
{
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        StatusBarNotification sbns[] = getSnoozedNotifications();
        for (StatusBarNotification sbn : sbns) {
            try {
                if (sbn == null) {
                    Log.e("Notification Listener", "sbn is null");
                    return;
                }

                Log.e("Notification Listener", "Starting: " + sbn.getKey());
                snoozeNotification(sbn.getKey(), 0);
            } catch (Exception e) {
                Log.e("Notification Listener", "error: " + e.getMessage());
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我在 Android 11 上观察到,您可以通过在相同的键上调用 snoozeNotification 来恢复通知,并且持续时间数字大于零。

例如我使用以下内容:

snoozeNotification(key, 100L);

在较早版本的 Android 上,通知将在重新启动后重新显示,而在 Android 11 中则不会。