我正在使用通知侦听器暂停不必要的通知,但是一旦我的应用程序不再运行,如何取消这些通知的暂停?目前,他们发现我这样做的唯一方法是用户必须重新启动手机。
这就是我暂停通知的方式,发现我可以使用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());
}
}
}
}
答案 0 :(得分:0)
我在 Android 11 上观察到,您可以通过在相同的键上调用 snoozeNotification 来恢复通知,并且持续时间数字大于零。
例如我使用以下内容:
snoozeNotification(key, 100L);
在较早版本的 Android 上,通知将在重新启动后重新显示,而在 Android 11 中则不会。