0

我目前正在开发一个应用程序,设备的位置应该发送到服务器。我已经阅读了有关后台代理和访问该位置的 MSDN 文章。到目前为止,这有效。当我触发了比设置的 MovementThreshold 更远的位置更改时,我的位置将被传输到服务器。

但是,我读过后台代理的测试可能很复杂。如果您使用模拟器,您可以很容易地经常更改设备的位置。但是在真机上,定位后台服务的空闲运行时间被限制在 30 分钟,而命令的执行最多只需要 25 秒。用户也可以从电话的设置屏幕禁用后台代理。当代理连续崩溃两次以上时,它们也会被停用。另一个限制是不活动的后台代理在 4 小时后停止,如果它们不更新应用程序动态磁贴

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

因此我的问题是:

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

1 回答 1

0

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

关于我的问题:

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

我仍然没有合适的解决方案。您在一定程度上仅限于使用真实设备进行测试,并且测试您的约束所需的必要时间。

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

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

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

于 2013-03-27T11:23:01.947 回答