NetworkInterfaceクラスをつかうことで、デバイスがどんなネットワークインターフェースに接続されているのかを取得したり、接続されている回線の速度を取得したりすることができます。
Windows Phone 7でも、同名のクラスが存在していますが、WindowsストアアプリのNetworkInterfaceクラス
の方が機能的に勝っています。
名前空間:System.Net.NetworkInformation
System.Object
+--System.Net.NetworkInformation.NetworkInterface
IPアドレスの変化を受け取る
System.Net.NetworkInformation名前空間のNetworkChangeクラスを使用することで、Windowsストアアプリ内でネットワークアドレス(IPアドレス)が変わったのを取得する事ができます。
NetworkChange.NetworkAddressChangedイベント
にイベントハンドラを設定することで、ネットワークへの接続状況が変化するとイベントが発生します。
// using System.Net.NetworkInformation; protected virtual void LoadState(Object navigationParameter, Dictionary<String, Object> pageState) { NetworkChange.NetworkAddressChanged += NetworkChange_NetworkAddressChanged; } void NetworkChange_NetworkAddressChanged(object sender, EventArgs e) { // IPアドレスが変わったのを検知する }
ネットワークの接続状態の変化を受け取る
先ほどのはIPアドレスの変化を通知するイベントですが、こちらの方はネットワークの接続状態の変化を通知するイベントです。
protected virtual void LoadState(Object navigationParameter, Dictionary<String, Object> pageState) { NetworkInformation.NetworkStatusChanged += NetworkInformation_NetworkStatusChanged; } void NetworkInformation_NetworkStatusChanged(object sender) { // ネットワークの接続状態を調べる }
画面遷移するときにはイベントを通知させないように、イベントハンドラを削除しておきます。
protected virtual void SaveState(Dictionary<String, Object> pageState) { NetworkInformation.NetworkStatusChanged -= NetworkInformation_NetworkStatusChanged; }