Windows Phone 8连接处理程序/ Internet可用性

Prz*_*mak 12 windows-phone-8

我的团队正在开发一个团队项目应用程序.目前,我们需要一个事件处理程序来检查连接状态(如果它是打开/关闭的).

我对System.Net.NetworkInformation命名空间寄予厚望,但遗憾的是wp8不支持最重要的事情.

任何人都可以帮我一点吗?

编辑1#

看来,我没有很好地指出我的问题.我正在使用Mvvm light expresion,它不支持该命名空间,或者至少我无法添加它.

我是使用VS和c#atm的新手,mayby我做错了,但只是当我试图添加引用到我的项目时它没有列出.

Jus*_*gel 29

我没有在WP8上尝试过System.Net.NetworkInformation命名空间.但新的WP8 Windows.Networking.Connectivity Windows Phone Runtime命名空间工作得很好.

使用Windows.Networking.Connectivity.NetworkInformation.NetworkStatusChanged了解网络状况何时发生变化,并使用Microsoft.Phone.Net.NetworkInformation.NetworkInterface属性或Windows.Networking.Connectivity.NetworkInformation属性查看内容.

    private async void MainPage_Loaded(object sender, RoutedEventArgs e)
    {
        PrintNetworkStatus();

        NetworkInformation.NetworkStatusChanged += NetworkInformation_NetworkStatusChanged;
    }

    void NetworkInformation_NetworkStatusChanged(object sender)
    {
        PrintNetworkStatus();
    }

    private void PrintNetworkStatus()
    {
        Dispatcher.BeginInvoke(() =>
        MessageBox.Show(NetworkInterface.NetworkInterfaceType +
                        Environment.NewLine +
                        NetworkInterface.GetIsNetworkAvailable()));
    }
Run Code Online (Sandbox Code Playgroud)

当我在WP8 Lumia 920上测试此代码片段时,它按预期工作.在我的手机在WiFi上启动时,我只看到以下MessageBox:

连接的消息框

一旦我关闭了我的WiFI路由器并且手机上的WiFi连接丢失,我看到以下MessageBox:

断开连接的MessageBox


Apo*_*orv 18

试试这个:

bool isNetwork=NetworkInterface.GetIsNetworkAvailable();
if(!isNetwork)
{
   //proceed with your code

}
Run Code Online (Sandbox Code Playgroud)