我正在开发一个应用程序,它需要在后台代理的帮助下在预定时间通知用户, 所以我尝试添加一个警报,但是根据MSDN的“Unsupported APIs for Background Agents for Windows Phone”,不支持所有关于Microsoft.Phone.Scheduler(添加,删除,替换)的方法(当我尝试从后台代理调用Add方法时)它给出错误“BNS错误:API只能从前台应用程序调用”。)。我尝试在前台添加警报,然后使用“BeginTime”属性进行播放,并使用my scheduledTask中的Replace方法(特别是每隔30分钟运行其代码的PeriodicTask),但无济于事,它什么也没做。
对我来说重要的是在后台代理的Invoke方法中确定的日期和时间通知用户(声音更长)(我的类派生自ScheduledTaskAgent并覆盖Invoke方法) ,所以我正在寻找解决方法。如果有一个吐司出现在预先定义的时间,那就不行了。或者可能是在屏幕顶部停留较长时间的吐司(从计划任务到达DateTime实例的那一刻起,直到[甚至在此DateTime实例中指定的时间之后)。
答案 0 :(得分:0)
请确认,是否只有后台代理可以计算出警报响起的正确时间?
假设是这样,你可以通过发送一个toast(除了用户已经禁用它之外还会振动手机)并更新固定到主页的磁贴来通知用户。这些都是允许的API。所以toast消息可以告诉用户去看看tile,它可能有关于警报的具体细节。 tile状态将一直持续到您更改它为止。如果您的前台应用会为用户固定磁贴,那就是一个开始。如果您可以让用户将磁贴移动到屏幕顶部,那么它始终可见,您应该全部设置。
考虑到当用户没有主动使用手机时可能会发生闹钟时间,或许您想要进行祝酒加notification on the lock screen(以及更新磁贴)?这将提供另一个视觉指示,但这又取决于用户配置锁定屏幕。