2

かなり簡単な質問があります。

BackgroundAgents(定期的なエージェント)を使用して、 HttpWebRequestを実行するためにWiFi(インターネット)接続を必要とするいくつかのバックグラウンドタスクを実行します。2番目のリファレンスで述べたように、HttpWebRequestはサポートされていますが、問題は、Windows Phoneがロックされているか1分以上アイドル状態の場合、WiFiが無効になることです。

私が読んで、知るまで試したことに基づいて、2つの重要な質問があります。

  1. マイクロソフトは、事前定義された間隔に従って定期的にWiFiを有効にして、新着メールやその他の通知をチェックしていますか?答えが「はい」の場合、バックグラウンドエージェントはこの間隔で再スケジュールされ、実行されますか?
  2. 知るまで、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ケーブルを使用してコンピューターに接続されているときにこのコードを実行すると、すべてが正常に実行されることに注意してください。そのため、HttpWebRequestを実行するために電話とWiFiをスリープ解除しないバックグラウンドワーカーに問題があると思います。

4

1 に答える 1

1

日常的に電話を使用した私の経験では、電話が接続されて充電されていない限り、WindowsPhoneはロック後にwifiを再度有効にしません。また、wifiを無効にする前にすでに開始されているデータ転送を完了することもできます。

ただし、電話が定期的に再接続を試みた場合でも、一部のWi-Fiプロバイダーは、ユーザーが再接続するたびに認証のために認証ページにリダイレクトし、WindowsPhoneはその状況を処理しません。

実際には、ユーザーが電話を持って歩き回っているときにデータサービスが利用できるという保証はありません。したがって、問題の処理は、アプリケーションコードの通常のパスの一部である必要があります。

于 2012-04-20T21:41:02.780 に答える