2011-12-13 17 views
0

Webサービスを使用してビジネスレイヤーと通信するMonoTouchを使用してネイティブアプリを構築しました。私はデバイスが3GとWiFiの間で切り替わるときにいくつかのより良い動作をしようとしています。それは、アプリがWiFiで起動する場合、それはWiFiで実行し続ける必要があり、3Gとその逆に切り替えることはできないようだ。私が3Gの下でアプリを走らせると、私は飛行機モードを起動して接続をシャットダウンし、Wifiを作動させることができ、私のアプリはサービスと話しません。私がWifiを最初に実行していて、それをシャットダウンして3Gに関与すると、私のサービスレイヤーに話しかけることはありません。モノトーンでiPhone上で3GとWiFiを切り替える

私がアプリを終了してもう一度起動すると問題なく動作します。私もSafariを利用して、デバイス上のブラウザから同じサービスを利用してそこに到達するルートがあることを確認することができますが、元の接続タイプに戻るまで、私のアプリケーションはまだサービスと通信しません。私は接続を保持するために何もしていない。オンデマンドでHttpWebRequestsを開閉するだけです。ネットワークの到達可能性フラグは、常に利用可能なルートがあることを示します。

アプリケーションは、WiFiに接続された建物から人々が歩き出て、WiFiや3Gを紛失するほど遠くに歩くことができるアプリケーションです。私はそれが自動的に起こるはずだと思ったので、私は理解していない何らかの理由でそれは切り替えることはありません。

+0

。あなたが言及したように3GとWifiを切り替えると、Safariは機能しますか? Webサービスが使用するSafariの同じURLにアクセスすることができます。 – jonathanpeppers

+0

はい、Safariは正常に動作します。それは私が混乱している理由の一部です。ネットワークの到達可能性フラグは接続を参照して、私はSafari経由でそこに着くことができますが、何らかの理由で私のアプリケーションから出てくるリクエストは、元の接続タイプに戻さなければ通過しません。 –

答えて

0

あなたは、特定のサイトへのネットワークは次のようにアップしていることを確認することができます:私はこのアプリのせいではないと思います

MonoTouch.ObjCRuntime.Runtime.StartWWAN (new Uri ("http://www.google.com")); 
+0

私は、ネットワーク到達可能性フラグを使用して、呼び出しを試みる前にホストへのルートがあることを確認しています。 using(var networkReachability = new NetworkReachability(hostName))...私は、StartWWANを使用してWiFiを試してみると分かります。あれは正しいですか?それが3GかWiFiかどうかは関係ありません。私は、失敗したときにアプリケーションを再起動する必要がないときに、どちらかを動作させようとしています。追加のアドバイスをいただければ幸いです。 –

+0

Wifiで3Gとは異なるURLを使用しているようですね。あなたはただパブリックURLをいつも使うことができますか?そうであれば、まったく切り替えることについて考える必要はありません。 – jonathanpeppers

関連する問題