Windows Store apps開発[27]NetworkInformationを使用してネットワーク状態の判断と傍受を行う

1734 ワード

注:本文はBeyondVincent(破船)オリジナル先発転載から出典:BeyondVincent(破船)@DevDiv.com
Windows Store appsプログラム開発では,一般的にネットワークインタラクションを行うが,この場合,ネットワーク接続の情報判断や状態の傍受が重要である.次はコードを直接与えて、コードを通じてどのようにネットワークの状態を判断して傍受するかを簡単に理解します.ネットワークの状態を判断するには、次のコードを使用します.
private bool IsConnectedToInternet()
{
    bool connected = false;

    ConnectionProfile cp = NetworkInformation.GetInternetConnectionProfile();

    if (cp != null)
    {
        NetworkConnectivityLevel cl = cp.GetNetworkConnectivityLevel();

        connected = cl == NetworkConnectivityLevel.InternetAccess;
    }

    return connected;
}

NetworkInformationクラスはstaticクラスに属し、中のメソッドもstaticなので、ここではG e t I n t e rnetConnectionProfileメソッドに直接アクセスしてネットワーク接続情報を取得し、NetworkConnectivity Levelによってネットワークのリンク状態を区別します.NetworkConnectivity Levelの定義は次のとおりです.
    //   :
    //                。
    [Version(100794368)]
    public enum NetworkConnectivityLevel
    {
        //   :
        //        。
        None = 0,
        //
        //   :
        //            。
        LocalAccess = 1,
        //
        //   :
        //         internet   。
        ConstrainedInternetAccess = 2,
        //
        //   :
        //         internet   。
        InternetAccess = 3,
    }

ネットワークステータスの変更を傍受するには、次のコードを使用し、上のコードと結合します.NetworkStatusChangedイベントをリスニングすることで、ネットワークの状態が変化するとイベントがトリガーされます.
NetworkInformation.NetworkStatusChanged += (object sener) =>
{
    if (!IsConnectedToInternet())
    {
        //        
    }
    else
    {
        //       
    }
};

ここでは簡単なサンプルコードです.使用方法:起動プログラムを実行し、wifiリンクを閉じるなどのネットワークリンクの状態を手動で変更すると、IsConnectedToInternetメソッドが呼び出されます.
コードのダウンロード