在一个长运行后台任务中上网

Internet access in a long-running background task

在我的 Windows Phone 10 应用程序中,我有一个 运行ning 后台任务,由 RfcommConnectionTrigger 触发。只要我的蓝牙 Rfcomm 设备已连接,此任务就会 运行。

现在我要实现的是:

#2 的问题是,一旦我锁定设备,由于某种原因所有 HTTP 请求都开始失败。我只是使用 System.Net.Http.HttpClient 来发出请求,没有什么特别的。更具体地说,在 HttpClient.SendAsync.

中抛出异常

如何绕过此限制?

I found the solution. 这似乎是一个完全未记录的 "feature" -- 您需要向您的后台任务添加一个 SystemConditionType.InternetAvailable 条件以允许它在设备锁定时使用互联网.我希望这并不意味着当 phone 无法访问互联网时,后台任务就会被终止。

这也意味着 phone 现在需要连接到互联网才能启动后台任务,这仍然很烦人,但我想我可以接受。