Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# HTTPWebRequest唤醒WIFI?_C#_Windows Phone 7_Wifi_Backgroundworker - Fatal编程技术网

C# HTTPWebRequest唤醒WIFI?

C# HTTPWebRequest唤醒WIFI?,c#,windows-phone-7,wifi,backgroundworker,C#,Windows Phone 7,Wifi,Backgroundworker,我有一个相当简单的问题 我们使用BackgroundAgent()来执行一些后台任务,这些任务需要WiFi(互联网)连接才能执行。正如第二个参考中提到的,支持HttpWebRequest,但问题是如果Windows Phone被锁定或空闲超过1分钟,则WiFi将被禁用 我有两个重要的问题,这两个问题是基于我所阅读和尝试的内容,直到我知道: 微软是否定期根据预定义的时间间隔启用WiFi以检查新电子邮件或其他通知?如果回答是“是”,我的后台代理是否会在此间隔期间重新安排并运行 直到我发现HttpWe

我有一个相当简单的问题

我们使用BackgroundAgent()来执行一些后台任务,这些任务需要WiFi(互联网)连接才能执行。正如第二个参考中提到的,支持HttpWebRequest,但问题是如果Windows Phone被锁定或空闲超过1分钟,则WiFi将被禁用

我有两个重要的问题,这两个问题是基于我所阅读和尝试的内容,直到我知道:

  • 微软是否定期根据预定义的时间间隔启用WiFi以检查新电子邮件或其他通知?如果回答是“是”,我的后台代理是否会在此间隔期间重新安排并运行
  • 直到我发现HttpWebRequest在锁定或空闲超过1分钟时不会唤醒手机。是这样吗?很多人表示,如果手机被锁定或1分钟过去了,HttpWebRequest可以正常工作。我没能做到 谢谢

    示例代码:

    protected override void OnInvoke(ScheduledTask task)
        {            
            ScheduledActionService.LaunchForTest(task.Name, TimeSpan.FromSeconds(120));
    
            MakeHttpRequest("test");
        }
    private void MakeHttpRequest(string position)
        {
            if (position != null)
            {
                var request = (HttpWebRequest)WebRequest.Create(
                new Uri("http://mydomain.com/Testing/Details/"+position));
                request.BeginGetResponse(r =>
                {
                    var httpRequest = (HttpWebRequest)r.AsyncState;
                    var httpResponse = (HttpWebResponse)httpRequest.EndGetResponse(r);
    
                    using (var reader = new StreamReader(httpResponse.GetResponseStream()))
                    {
                        var response = reader.ReadToEnd();
    
                        Deployment.Current.Dispatcher.BeginInvoke(new Action(() =>
                        {
                        }));
                    }
                }, request);
            }
            this.NotifyComplete();
        }
    

    PS:请记住,当我运行此代码时,应用程序使用USB电缆连接到计算机,一切正常。这就是为什么我认为后台工作人员无法唤醒手机+WiFi以执行HttpWebRequest的原因。

    根据我日常使用手机的经验,Windows phone在锁定WiFi后无法重新启用WiFi,除非手机已插入并充电。它还允许在禁用wifi之前完成已经开始的数据传输

    但是,即使手机尝试定期重新连接,一些wifi提供商也会在用户每次重新连接时重定向到身份验证页面进行身份验证,而Windows phone无法处理这种情况


    事实上,当用户带着手机四处走动时,无法保证您有可用的数据服务,因此处理此问题应该是应用程序代码正常路径的一部分。

    请显示一些源代码。。。你试过什么?谢谢你。添加了源代码!您正在使用哪个BackgroundAgent类?@Salamis-您的意思是
    PeriodicTask
    ?是的。我想问一下代理。谢谢你的回答。你知道手机是否会定期重新连接吗?@salamis-我不相信。我找不到任何这样的文档,但apphub和电话支持论坛(如果你在谷歌上搜索的话)提供了一些轶事证据。这也是我的经验,它不试图重新连接。非常感谢。因此,唯一的解决方案是将该问题作为代码的一部分来处理。并且仅当网络可用时才执行后台工作程序。即使是WiFi、3G、3.5G或其他什么。非常感谢。@salamis-是的,那是最好的选择。