NetworkInformationを使用してネットワークを判断して傍受する

5929 ワード

README.md
外部参照元のドキュメント
プログラム開発では,一般的にネットワークインタラクションを行うが,この場合,ネットワーク接続の情報判断や状態の傍受が重要である.次はコードを直接与えて、コードを通じてどのようにネットワークの状態を判断して傍受するかを簡単に理解します.
IsConnectedToInternet.cs
外部参照元のドキュメント
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
//            
private bool IsConnectedToInternet()
{
    bool connected = false;

    ConnectionProfile cp = NetworkInformation.GetInternetConnectionProfile();

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

        connected = cl == NetworkConnectivityLevel.InternetAccess;
    }

    return connected;
}

NetworkConnectivityLevel.cs
外部参照元のドキュメント
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//NetworkInformation    static ,       static ,  ,        

//GetInternetConnectionProfile   ,        ,    NetworkConnectivityLevel            。
//NetworkConnectivityLevel       。
    //   :
    //                。
    [Version(100794368)]
    public enum NetworkConnectivityLevel
    {
        //   :
        //        。
        None = 0,
        //
        //   :
        //            。
        LocalAccess = 1,
        //
        //   :
        //         internet   。
        ConstrainedInternetAccess = 2,
        //
        //   :
        //         internet   。
        InternetAccess = 3,
    }

NetworkStatusChanged.cs
外部参照元のドキュメント
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
//         ,       ,        。    NetworkStatusChanged      ,          ,       
NetworkInformation.NetworkStatusChanged += (object sener) =>
{
    if (!IsConnectedToInternet())
    {
        //        
    }
    else
    {
        //       
    }
};