Windows Store apps开发[27]使用NetworkInformation来判断和监听网络状态

来源:互联网 发布:四虎软件 编辑:程序博客网 时间:2024/06/06 03:21

注:本文由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的,所以,这里通过直接访问GetInternetConnectionProfile 方法,获得网络连接信息,然后根据NetworkConnectivityLevel  来区分网络的链接状态。
NetworkConnectivityLevel  的定义如下。

    // 摘要:    //     定义当前可用连接的级别。    [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方法会被调用。

下载代码

原创粉丝点击