5

我想创建一个警报应用程序。

我找到了在后台操作计时器的方法。但是没有找到控制显示器电源的API(我想在显示器电源关闭时打开显示器的电源)。

Windows 10(Windows 通用应用程序)是否没有足够的 API 来创建该应用程序?

4

4 回答 4

16

Windows-universal-samples最近更新了一些新的 RTM 示例,包括这个 - Notifications

由于警报也是一种通知类型,因此它现在构建在通用 Windows 平台的新 toast 通知框架中。

从上面的通知链接下载源代码后,使用 Visual Studio 2015 RTM 运行它,然后在加载应用程序后,转到

祝酒词>场景>场景:警报

您将看到一个功能齐全的警报应用程序(以及提醒和许多其他示例)。


让我们谈谈代码。

基本上,与 Windows Phone Silverlight 不同,您现在可以通过像这样指定 xml 有效负载来稍微自定义警报弹出窗口(确保scenario设置为alarm

<toast launch='args' scenario='alarm'>
    <visual>
        <binding template='ToastGeneric'>
            <text>Alarm</text>
            <text>Get up now!!</text>
        </binding>
    </visual>
    <actions>

        <action arguments = 'snooze'
                content = 'snooze' />

        <action arguments = 'dismiss'
                content = 'dismiss' />

    </actions>
</toast>

然后创建一个加载上述 xml 字符串的 XmlDocument

var xmlString = @"//copy above xml here//";
var doc = new Windows.Data.Xml.Dom.XmlDocument();
doc.LoadXml(xmlString);

然后创建一个ToastNotification并使用ToastNotificationManager-

var toast = new ToastNotification(doc);
ToastNotificationManager.CreateToastNotifier().Show(toast);

而已!您将看到如下所示的警报弹出窗口。 在此处输入图像描述


更新

微软最近回应了我的一个 API 请求,我在这里发布了内容,这样每个人都知道添加了哪些 API,还有哪些尚未完成。

做了什么

  1. 现在有一种方法可以在通用 Windows 应用程序中创建警报/提醒;
  2. 闹钟/提醒支持自定义贪睡时间(你可以选择让系统处理贪睡,或者唤醒你的后台任务手动做);
  3. 警报/提醒仅支持振动(就像吐司一样),用户可以覆盖以关闭振动;
  4. 警报/提醒支持良好的可定制性(自定义可选内联图像、自定义附加操作等)。

一些参考资料

我们(MSFT)所知道的缺失并希望在不久的将来支持

  1. 本地平台支持警报/提醒以在时区更改时自动处理时间转换(解决方法 - 这可以由应用程序使用 TimeZoneChange 系统触发器手动完成)
  2. 本地平台支持重复事件的警报/提醒(解决方法 - 目前只能由应用程序手动定期唤醒并提前重新安排一堆警报/提醒)

  3. 原生平台支持从音乐库中选择一首歌曲作为闹钟/提醒的铃声(解决方法 - 这可以通过从音乐库中读取和复制文件来完成,然后使用应用程序包中文件的保存/修改版本或应用程序数据作为铃声(toast 通知通过指向 appx 中的文件或 xml 有效负载中的 appdata 来支持自定义声音))

于 2015-08-01T03:30:54.343 回答
2

AlarmApplicationManager可用于创建警报应用程序。它提供了安排 toast 通知的功能。

var scheduledToast = new ScheduledToastNotification(content, DateTime.Now.AddMinutes(5));
toastNotifier.AddToSchedule(scheduledToast);

在创建 toast 模板时也可以设置音频源,但只能从 windows 提供的一组预定义声音中设置。

有关详细信息,请参阅AlarmApplicationManager构建警报应用程序

于 2015-07-31T08:08:17.603 回答
2

GitHub 上有许多Win 10 通用示例,它们可能很有用。不过,我没有看到任何与警报直接相关的内容。

于 2015-07-31T13:29:41.317 回答
0

不幸的是,Windows 通用应用程序无法直接访问显示设置。但是您可以使用AlarmApplicationManager 类来创建警报。这将在某些情况下(肯定在 WindowsPhone 上)自动打开显示屏以显示警报(带有标题和说明)。

于 2015-07-31T08:28:13.807 回答