2013-11-22 38 views
1

我正在开发一个应用程序,需要通过后台代理 帮助预先通知用户。所以我试着添加一个警报,但根据MSDN的“Unsupported APIs for Background Agents for Windows Phone”,不支持关于Microsoft.Phone.Scheduler(添加,删除,替换)的所有方法(当我尝试从后台代理调用Add方法时,它会给出错误“BNS错误:API只能从前台应用程序“。)。我尝试在前台添加闹钟,然后使用“BeginTime”属性进行播放,并使用我的scheduledTask中的Replace方法(具体来说,每30分钟运行一次代码的PeriodicTask),但无济于事。从BackgroundAgent添加警报(不工作,寻找解决方法) - Windows Phone 8

对我来说重要的是在后台代理的Invoke方法决定的日期和时间通知用户(声音足够长)(我的类派生自ScheduledTaskAgent并覆盖Invoke方法),所以我正在寻找解决方法。如果在预定的时间出现敬酒,那么某种程度上可以。或者,也许是在屏幕顶部停留较长时间的吐司(从计划任务提出DateTime实例到[在此DateTime实例中指定时间之后甚至在此时间之后])的时间。

回答

0

请确认,是否只有后台代理才能计算正确的闹钟时间?

假设情况如此,您可以通过发送一个通知(这也会振动手机,除非用户已禁用该通知)并更新固定到主页的磁贴来通知用户。这些都是允许的API。因此,吐司消息可以告诉用户去查看瓦片,其可以具有关于报警的具体细节。瓷砖状态将一直存在,直到您改变它为止。如果您的前台应用程序会为用户固定拼贴,那就是一个开始。如果可以让用户将拼贴移动到屏幕的顶部,所以它始终可见,您应该全部设置好。

考虑到当用户不主动使用手机时可能会发生闹钟时间,也许您想要做吐司加notification on the lock screen(以及更新瓦片)?这将提供另一个视觉指示,但是,这又取决于用户配置锁定屏幕。

+0

事实上,只有后台代理才能计算出正确的时间。 会有一个烤面包(通知用户:“你需要打开应用程序,直到那时”)和一块瓷砖 - 这是计划在第一位,但我想在确切的时间通知用户,以及。这意味着如果后台代理计算出用户需要在上午12点输入应用程序(并且用户看不到烤面包或平铺通知 - 直到上午12点),那么此时应该会出现警报。用户必须得到通知,以便他可以在他没有拿着手机时听到电话,但也可能在另一个房间里。 –