取消暂停通知

use*_*081 5 android notification-listener

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

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

snoozeNotification(sbn.getKey(), Long.MAX_VALUE - System.currentTimeMillis());
Run Code Online (Sandbox Code Playgroud)

这就是我获得暂停应用程序的方式,我找不到任何告诉我取消暂停它的命令的地方,我什至尝试将持续时间设置为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());
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Jam*_*ieH 3

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

例如我使用以下内容:

snoozeNotification(key, 100L);
Run Code Online (Sandbox Code Playgroud)

在早期版本的 Android 上,通知将在暂停后重新启动后重新出现,而在 Android 11 中则不会。