ネットワークの情報を取得する(1)


WindowsPhone 7アプリケーションを作成する場合にネットワークの回線がどうったものが使われているか知りたい場合があります。
例えば膨大な通信をするアプリの場合にモバイル回線で利用しようとする場合にユーザに警告を出したりするケースやネットワークが接続されていなければ切断中のアイコンを出したりなど

そこで今回はネットワークの情報を取得するDeviceNetworkInformationNetworkInterfaceをサンプルコードを用いて紹介します。

DeviceNetworkInformationとNetworkInterfaceを合わせて下記の情報を得ることができます。

  • 携帯会社名
  • 携帯回線のデータ通信の許可
  • ローミングデータの許可
  • ネットワークが使用可能か
  • wifiが接続できるか
  • ネットワークの種類

詳しい内容は続きを御覧ください。

ネットワーク情報を取得する

ネットワークの情報はDeviceNetworkInformationのプロパティから取得することができます。
DeviceNetworkInformationが持つプロパティは以下の表の通りになります。
[table “196” not found /]

さらにネットワークの設定情報を取得するにはNetworkInterfaceから情報を取得します。
NetworkInterfaceは以下の表のプロパティから取得することができます。
[table “197” not found /]

ここで得られるNetworkInterfaceTypeは以下の5種のどれかが得られるものとなります。
[table “198” not found /]

実際にネットワーク情報を取得しListBoxに端末情報を取得し表示するサンプルを用意しました。
■MainPage.xaml

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
    <ListBox Height="595" HorizontalAlignment="Left" Margin="12,6,0,0" Name="listBox1" VerticalAlignment="Top" Width="438" />
</Grid>

■MainPage.xaml.cs

    public partial class MainPage : PhoneApplicationPage
    {
        // コンストラクター
        public MainPage()
        {
            InitializeComponent();
            listBox1.Items.Add("携帯会社名: " + DeviceNetworkInformation.CellularMobileOperator);
            listBox1.Items.Add("携帯回線のデータ通信の許可: " + DeviceNetworkInformation.IsCellularDataEnabled);
            listBox1.Items.Add("ローミングデータの許可: " + DeviceNetworkInformation.IsCellularDataRoamingEnabled);
            listBox1.Items.Add("ネットワークが使用可能か: " + DeviceNetworkInformation.IsNetworkAvailable);
            listBox1.Items.Add("wifiが接続できるか: " + DeviceNetworkInformation.IsWiFiEnabled);

            listBox1.Items.Add("ネットワークの種類: " + NetworkInterface.NetworkInterfaceType);
        }
    }

このサンプルコードをシミュレータで動かした時の画面は下図のようになります。

さらに詳しいネットワークの情報として下記の情報を取得する方法はネットワークの情報を取得する(2)にてご紹介させて頂きます。

  • インターフェイスの速度の取得
  • インターフェイスの特性の取得
  • インターフェイスの説明の取得
  • インターフェイスの名前の取得
  • インターフェイスの接続状態<の取得/li>
  • インターフェイスの種類に関する追加情報の取得
  • インターフェイスの種類の取得
One Comment