如何在Windows Phone 8中调试后台位置代理

时间:2013-03-22 15:24:21

标签: geolocation gps windows-phone-8 background-process background-agents

我目前正在开发一个应用程序,其中应将设备的位置发送到服务器。我在后台代理上访问了the MSDN articles并访问了该位置。这项工作到目前为止。当我触发了比设置的MovementThreshold更远的位置更改时,我的位置会传输到服务器。

但是,我读过后台代理的测试可能很复杂。如果您使用模拟器,则可以经常轻松更改设备的位置。但在真实手机上,位置后台服务的空闲运行时间限制为30分钟,命令执行最多只需25秒。用户还可以从电话的设置屏幕禁用后台代理。当代理连续崩溃两次以上时,它们也会被停用。另一个限制是inactive background agents are stopped after 4 hours,如果they don't update an apps live tile

我的应用更新了一个实时图块计数器,所以我认为我的后台代理应该运行长达14天而无需从我的应用重启。我从昨天到今天测试了应用程序并看到后台代理正在运行(从设置中查找)。上方栏中还有一个小点可见,表示某个程序正在访问手机地理位置。但是,有时点消失了,我的后台代理被杀了没有明显的原因。

因此我的问题是:

  • 如何在真实设备上可靠地测试地理位置,而无需携带手机和附带的调试笔记本电脑?
  • 如何及时测试我提到的超时情况(30分钟,4小时,14天)?
  • 如何检查后台代理的这两次崩溃?

1 个答案:

答案 0 :(得分:0)

我想我已经对WP8如何定义后台代理做了一些解释。用于位置的新WP8后台代理仅在应用程序运行时处于活动状态。这意味着不能使用后退按钮关闭应用程序。但是,它可以通过Windows按钮或长按钮切换到主屏幕,以便从多任务处理中访问其他应用程序。

关于我的问题:

  • 如何在真实设备上可靠地测试地理位置,而无需携带手机和附带的调试笔记本电脑?
  • 如何及时测试我提到的超时情况(30分钟,4小时,14天)?

我仍然没有合适的解决方案。您仅限于使用真实设备进行测试以及测试约束所需的必要时间。

  • 如何检查后台代理的这两次崩溃?

我不知道如何以编程方式检查。可能是,用户可以在手机设置的后台任务列表中将此崩溃的应用视为被阻止的应用。应该有一种方法可以在我上面提供的链接的帮助下从此列表中检测被阻止的应用程序。

对于我的项目,我需要一个位置后台代理,即使在锁定屏幕或没有打开应用程序的情况下也可以运行。因此我使用PeriodicAgent每30分钟要求一次该位置,以便我可以将其发送到服务器。但请注意,此后台代理无法访问您的应用程序设置或类(请参阅Communication between foreground app and background agent)。