我想创建一个警报应用程序。
我找到了在后台操作计时器的方法。但是没有找到控制显示器电源的API(我想在显示器电源关闭时打开显示器的电源)。
Windows 10(Windows 通用应用程序)是否没有足够的 API 来创建该应用程序?
我想创建一个警报应用程序。
我找到了在后台操作计时器的方法。但是没有找到控制显示器电源的API(我想在显示器电源关闭时打开显示器的电源)。
Windows 10(Windows 通用应用程序)是否没有足够的 API 来创建该应用程序?
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,还有哪些尚未完成。
做了什么
一些参考资料
我们(MSFT)所知道的缺失并希望在不久的将来支持
本地平台支持重复事件的警报/提醒(解决方法 - 目前只能由应用程序手动定期唤醒并提前重新安排一堆警报/提醒);
原生平台支持从音乐库中选择一首歌曲作为闹钟/提醒的铃声(解决方法 - 这可以通过从音乐库中读取和复制文件来完成,然后使用应用程序包中文件的保存/修改版本或应用程序数据作为铃声(toast 通知通过指向 appx 中的文件或 xml 有效负载中的 appdata 来支持自定义声音))。
AlarmApplicationManager
可用于创建警报应用程序。它提供了安排 toast 通知的功能。
var scheduledToast = new ScheduledToastNotification(content, DateTime.Now.AddMinutes(5));
toastNotifier.AddToSchedule(scheduledToast);
在创建 toast 模板时也可以设置音频源,但只能从 windows 提供的一组预定义声音中设置。
有关详细信息,请参阅AlarmApplicationManager和构建警报应用程序。
GitHub 上有许多Win 10 通用示例,它们可能很有用。不过,我没有看到任何与警报直接相关的内容。
不幸的是,Windows 通用应用程序无法直接访问显示设置。但是您可以使用AlarmApplicationManager 类来创建警报。这将在某些情况下(肯定在 WindowsPhone 上)自动打开显示屏以显示警报(带有标题和说明)。