我建议你的帮助。
我正在使用Silverlight 8.1来编写基于GPS的警报应用程序(因为在WP 8.1中阻止了Microsoft.Phone.Scheduler.Alarm api)。 现在我正在尝试创建一个由GeofenceMonitor触发的BackgroundTask。
我的问题是BackgroundTask必须位于“Windows运行时组件”项目中,并且您无法将编译目标设置为Silverlight 8.1,因此我无法在其中创建警报。
是否有解决方法或是否无法从BackgroundTask启动警报? 我很感激每一个解决方案。
答案 0 :(得分:1)
不幸的是,你无法混合使用WinRT和WP8.1 Silverlight。
正如您所提到的,警报API不能与WP一起使用(对于“通用”来说太多了),Silverlight Runtime没有GeofenceMonitor。你可以拥有一个带有WinRT后台任务的Silverlight项目,但这不会让你到任何地方。
我不知道您是希望这些警报与某个位置永久关联还是相当短暂,但这可能是一个解决方案:
配置您的应用以继续在后台运行。有一个专用的“位置跟踪”执行类型,您可以将其用于跟踪背景中GPS位置的任何应用程序(有关详细信息,请参阅this site)。
然后,您可以使用PositionChanged
的{{1}}事件检查您是否在围栏内并添加(几乎)即时警报。
Geolocator
如果您不想让应用程序继续运行,您可以(可以)在地理围栏后台任务(WinRT)中启动另一个后台任务(SL)。