从操作中心中移除Toast通知

5

我有一个在Windows 10上运行的桌面应用程序,它创建ToastNotifications并存储在Action Center中。我注意到,当我重新启动计算机时,通知仍然存在于Action Center中,因此当它们不再需要时,我希望通过我的应用程序将它们移除。
我想使用ToastNotificationHistoryRemove方法来实现这个功能。
我的代码如下:

public static void RemoveNotificationByTag(string toastTag)
{
    ToastNotificationManager.History.Remove(toastTag, "TEST");
}

但这会导致以下异常:System.Exception: '未找到元素。 (来自 HRESULT 的异常:0x80070490)' 之前发送的通知具有TagGroup值。
调用RemoveGroupGetHistory方法时也会出现相同的异常。基本上似乎我无法调用History类中的任何方法而不会得到相同的异常。

1
只是一个建议。尝试打印“ToastNotificationManager.History”中的所有项,并检查它是否包含您需要的通知。 - Raamakrishnan A.
为什么不直接调用 Clear() 呢?“从操作中心中移除此应用发送的所有通知。” - stuartd
我尝试在调试器中查看History对象,但只显示:要检查本机对象,请启用本机代码调试。一旦我启用它,它就会显示“不支持该操作”的消息。调用Clear方法会导致相同的异常。 - sevi
1个回答

5
在Windows 10中,每个方法都需要提供applicationId参数。此外,您不仅必须指定toast标记,还必须指定其组。
像这样调用方法是有效的:
ToastNotificationManager.History.Remove(toastTag, "TEST", appId);

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