2011-02-03 16 views
15

飛行機モードをデバッグする方法はありますか?私は飛行機モードをオンにしてデバイスの設定をオンにして、コンピュータのインターネット接続を無効にしましたが、NetworkInterface.GetIsNetworkAvailable()はtrueを返します。私は何か間違っているのですか?WP7デバイスの飛行機モードをデバッグする方法は?

答えて

7

お知らせofficial docの底のコメント:このAPIは、常に のWindows Phone 7のエミュレーターにtrueを返します

。したがって、 のテストには、ファサード、モックまたは の条件付きチャンクが必要です。

実際のデバイスでこれをテストしましたが、実際にはtrueという定数が返されました。

しかし、あなたの電話機をPCに接続したままにして、イーサネットインターフェイスを利用できるからです。電話を切断してアプリを起動すると、Falseが返されます。

+0

デバッグ時にデバイス(エミュレータではない)でtrueを返します。 – CACuzcatlan

+0

私の編集に気づく - 機能をテストするためにPCから電話機を外してください。 –

+1

このようなインターフェイスの例については、WP7 United Nations NewsのアプリでNetworkStatusProviderをチェックしてください。@ http://unitednations.codeplex.com/SourceControl/changeset/view/70986#1461137 – JustinAngel

2

WiFiやBluetoothが無効になっていない可能性があります。これにより、GetIsNetworkAvailable()がtrueを返すことがあります。 this pageによると:あなたは機内モードにいる間

、あなたは まだ個別にオフに携帯電話のWi-FiとBluetoothの を回すことができます。

おそらく、デバイスが作成していることは、おそらく、自動的にセルラーアクセスとBluetooth/WiFiを別々にしたいということです。

+0

飛行機モードがオンで、Wi-FiとBluetoothがオフになっている場合、コンピュータのインターネット(Wi-Fiとイーサネット)は無効になっていますが、GetIsNetworkAvailable()はtrueを返します。 – CACuzcatlan

+0

おそらくGetIsNetworkAvailable()はあなたがインターネットを持っているかどうかをチェックしないので、電話が接続されているかどうかをチェックするだけです。 –

+0

何が接続されていますか? MSDNによれば、このメソッドは「ネットワーク接続が利用可能ならtrue、それ以外の場合はfalse」を返します。インターネットに接続されていない場合は、falseを返す必要があります。また、デバイス上でデバッグしていないときには正常に動作します。 – CACuzcatlan

1

あなたは利用可能であるインターフェースの種類を確認することができます。 NetworkInterfaceType

NetworkInterfaceType.MobileBroadbandCdma: 
NetworkInterfaceType.MobileBroadbandGsm 

これらを無効にする必要があります。

+0

NetworkInterface.NetworkInterfaceTypeは "None"ですが、NetworkInterface.GetIsNetworkAvailable()はtrueを返します。 – CACuzcatlan

+0

このメソッドを使用します。それはより詳細を取得します。 –

+0

これらは単なるenumであり、メソッド/プロパティではありません – CACuzcatlan

関連する問題