Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to check internet connectivity type in Universal Windows Platform

I would like to check internet connectivity type in Windows Universal Application.

  1. Not Connected
  2. Connected via WLAN(WiFi)
  3. Connected via WWAN(Cellular Data)
  4. Connected to a metered network

in order to provide an option for downloading large size content. And also sense the significant network availability changes.

Currently, I'm only able to check whether internet connected or not using GetIsNetworkAvailable method of NetworkInterface class.

NetworkInterface.GetIsNetworkAvailable(); 
like image 475
Vineet Choudhary Avatar asked Mar 09 '16 20:03

Vineet Choudhary


People also ask

How do I know what type of network connection I have?

Select the Start button, then type settings. Select Settings > Network & internet. The status of your network connection will appear at the top. Windows 10 lets you quickly check your network connection status.

How does Windows determine Internet connectivity?

The Network Connectivity Status Indicator (NCSI) is a mechanism that controls the internet connectivity display in the Taskbar, among various other functionalities. NCSI is part of the Network Awareness program which was first introduced in Windows Vista and has been carried out ever since in each version of Windows.

Which command that will used to check the Internet connectivity?

ping (This command will test for the Internet connectivity and DNS functionality.) Example: ping www.netgear.com, ping google.com.


1 Answers

1. Check Internet Connection Availability

To check whether any network connection is established or not use GetIsNetworkAvailable method of NetworkInterface class.

bool isNetworkConnected = NetworkInterface.GetIsNetworkAvailable(); 

GetIsNetworkAvailable() -
Summary: Indicates whether any network connection is available.
Returns: true if a network connection is available; otherwise, false.


2. Check Internet Connection Availability via WWLN (WiFi)

To check whether internet connected via WWAN use IsWlanConnectionProfile property of ConnectionProfile class

ConnectionProfile InternetConnectionProfile = NetworkInformation.GetInternetConnectionProfile(); bool isWLANConnection = (InternetConnectionProfile == null)?false:InternetConnectionProfile.IsWlanConnectionProfile; 

IsWlanConnectionProfile
Summary: Gets a value that indicates if connection profile is a WLAN (WiFi) connection. This determines whether or not WlanConnectionProfileDetails is null.
Returns: Indicates if the connection profile represents a WLAN (WiFi) connection.


3. Check Internet Connection Availability via WWAN (Mobile)

To check whether internet connected via WWAN use IsWwanConnectionProfile property ofConnectionProfile class

ConnectionProfile InternetConnectionProfile = NetworkInformation.GetInternetConnectionProfile(); bool isWLANConnection = (InternetConnectionProfile == null)?false:InternetConnectionProfile.IsWwanConnectionProfile; 

IsWwanConnectionProfile
Summary: Gets a value that indicates if connection profile is a WWAN (mobile) connection. This determines whether or not WwanConnectionProfileDetails is null.
Returns: Indicates if the connection profile represents a WWAN (mobile) connection.

Reference
Hippiehunter Answer


4. Check Metered network

To check whether Internet reachable via a metered connection or not, use GetConnectionCost method on NetworkInterface class.

var connectionCost = NetworkInformation.GetInternetConnectionProfile().GetConnectionCost(); if (connectionCost.NetworkCostType == NetworkCostType.Unknown          || connectionCost.NetworkCostType == NetworkCostType.Unrestricted) {     //Connection cost is unknown/unrestricted } else {    //Metered Network } 

Reference (More detailed answer here)
1. How to manage metered network cost constraints - MSDN
2. NetworkCostType Enum - MSDN


5. Manage network availability changes

To sense the significant network availability changes, use eventNetworkStatusChanged of NetworkInformation class

// register for network status change notifications  networkStatusCallback = new NetworkStatusChangedEventHandler(OnNetworkStatusChange);  if (!registeredNetworkStatusNotif)  {      NetworkInformation.NetworkStatusChanged += networkStatusCallback;      registeredNetworkStatusNotif = true;  }  async void OnNetworkStatusChange(object sender) {     // get the ConnectionProfile that is currently used to connect to the Internet                     ConnectionProfile InternetConnectionProfile = NetworkInformation.GetInternetConnectionProfile();      if (InternetConnectionProfile == null)     {         await _cd.RunAsync(CoreDispatcherPriority.Normal, () =>         {             rootPage.NotifyUser("Not connected to Internet\n", NotifyType.StatusMessage);         });     }     else     {         connectionProfileInfo = GetConnectionProfile(InternetConnectionProfile);         await _cd.RunAsync(CoreDispatcherPriority.Normal, () =>         {             rootPage.NotifyUser(connectionProfileInfo, NotifyType.StatusMessage);         });     }     internetProfileInfo = ""; } 

References
Check Internet Connectivity - developerinsider.co

How to manage network connection events and changes in availability - MSDN

How to retrieve network connection information- MSDN


Hope it helpful to someone.

like image 97
Vineet Choudhary Avatar answered Sep 18 '22 17:09

Vineet Choudhary