Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Windows Phone 8 Connection Handler / Internet Availability

My team is working on a team project aplication. At the moment, we need an event handler to check the connection status (if it's on/off).

I had big hopes in the System.Net.NetworkInformation Namespace, but unfortunately most important things aren't supported in wp8.

Can anyone help me with it a bit?

Edit 1#

It seems, I didn't specifed my problem well. I'm using Mvvm light expresion, and it does not support that namespace or at least I can't add it.

I'm a newbie in using VS and c# atm, mayby I'm doing someting wrong, but simply when im trying to add the refernce to my project it does not list.

like image 852
Przmak Avatar asked Nov 29 '12 00:11

Przmak


3 Answers

I haven't tried the System.Net.NetworkInformation namespace on WP8. But the new WP8 Windows.Networking.Connectivity Windows Phone Runtime namespace works just fine.

Use Windows.Networking.Connectivity.NetworkInformation.NetworkStatusChanged to know when network conditions change and use Microsoft.Phone.Net.NetworkInformation.NetworkInterface properties or Windows.Networking.Connectivity.NetworkInformation properties to see what's up.

    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()));
    }

When I test this code snippet on my WP8 Lumia 920 it works as expected. On startup when my phone is on WiFi only I see the following MessageBox:

Connected Messagebox

And once I shutdown my WiFI router and the WiFi connection on the phone is lost I see the following MessageBox:

Disconnected MessageBox

like image 106
JustinAngel Avatar answered Nov 08 '22 03:11

JustinAngel


Try this:

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

}
like image 18
Apoorv Avatar answered Nov 08 '22 01:11

Apoorv


In App.xaml.cs, create a property like below

/// <summary>
/// check if network is available
/// </summary>
public bool IsNetworkAvailable
{
    get
    {
        return NetworkInterface.NetworkInterfaceType != NetworkInterfaceType.None;
    }
}

And you can use this property anywhere in your project as in below code

if (((App) Application.Current).IsNetworkAvailable)
{
         //Lines of Code
}
else
{
     MessageBox.Show("Not Connected to Network!", "Checking Connection!",
               MessageBoxButton.OK);     
}
like image 2
Pravesh Pesswani Avatar answered Nov 08 '22 02:11

Pravesh Pesswani