聆听"触发"并在Windows Phone中对它们做出反应

时间:2014-05-26 11:51:24

标签: c# windows-phone-8

Android上有一些应用程序,例如TaskerTrigger,允许用户设置一些“触发器”和每个触发器触发时应执行的“响应”。

触发器可以是,例如:连接到某个Wi-Fi,到达某个位置(地理围栏),插入耳机,点击NFC标签等等。

我想知道在Windows Phone平台上是否有任何方法可以实现这样的功能。我没有开发WPhones的背景(即使我有一个巨大的C#背景),所以我不确定平台本身是否允许这种“传感器的背景监控,或者,如果有这样的传感器(如”耳机)塞“)。

经过快速研究后,似乎是access to some APIs are not allowed from Background Threads,我想知道这里是否存在与安全相关的任何内容,或者只是平台无法实现。

有没有办法达到我想要的目的?

2 个答案:

答案 0 :(得分:0)

在Windows Phone 8上,您可以使用Background Agents执行后台处理。

您可以使用Sceduled Taks注册包含定期调用的方法的类,即使您的应用未运行也是如此。它们具有多种用途,为扩展您的应用程序以执行后台活动提供了最大的实用工具。

对于位置感知应用,您肯定可以向用户显示消息,或者触发警报或其他内容,消息更适合。那些注册为地理位置提供商的人可以继续运行,尽管前台有另一个应用程序在运行。

对于其他触发器,我不确定。您必须查看Sensors

答案 1 :(得分:0)

不,您无法挂钩任何触发器或事件。正如Pantelis所说,唯一能做的就是创建非常有限的PeriodicTask,每隔约30分钟可以运行一次,也可以不运行,并且限制在最多25秒的运行时间内。这是故意的平台限制,AFAIK主要是因为电池使用和安全原因而完成的。

如果PeriodicTask无法实现某些功能,请将其放弃。这是最通用的后台流程,其他的则更为有限。这是为了防止守护进程接管电话。