我可以为Window Universal App创建一个警报应用程序吗?

时间:2015-07-31 07:51:05

标签: c# c++ uwp windows-10 win-universal-app

我想创建一个闹钟应用程序。

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

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

4 个答案:

答案 0 :(得分: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);

那就是它!您将看到如下所示的警报弹出窗口。 enter image description here

更新

微软最近回复了one of my API requests,我在这里发布了内容,所以每个人都知道添加了哪些API,哪些仍然未完成。

已完成的工作

  1. 现在有一种方法可以在通用窗口中创建警报/提醒 应用
  2. 闹钟/提醒支持自定义贪睡时间(您可以选择 让系统处理暂停,或唤醒你的后台任务来完成它 手动地);
  3. 警报/提醒仅支持振动(就像吐司一样) 被用户覆盖以关闭振动;
  4. 警报/提醒支持良好的可定制性(自定义 可选的内嵌图像,自定义附加操作等)。
  5. 一些参考

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

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

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

答案 1 :(得分:2)

AlarmApplicationManager可用于创建闹钟应用。它提供了安排Toast通知的功能。

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

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

有关详细信息,请参阅AlarmApplicationManagerBuilding alarm app

答案 2 :(得分:2)

GitHub上有许多Win 10 Universal Samples可能很有用。但是,我没有看到任何与警报直接相关的内容。

答案 3 :(得分:0)

遗憾的是,Windows Universal Applications无法直接访问“显示设置”。但您可以使用AlarmApplicationManager Class创建警报。在某些情况下(肯定在WindowsPhone上),这将自动打开显示屏以显示警报(带有标题和描述)。