Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The NetworkHelper class provides functionality to monitor changes in network connection and allows users to query for network information without additional lookups.
It exposes network information though a property called ConnectionInformation. The ConnectionInformation holds information about ConnectionType, ConnectivityLevel, ConnectionCost, SignalStrength, Internet Connectivity and more.
What is a metered connection? A metered connection is an Internet connection that has a data limit or cost associated with it. Cellular data connections are set as metered by default. Wi-Fi network connections can be set to metered, but aren't by default. Application developers should take metered nature of connection into account and reduce data usage.
NetworkHelper Properties
| Property | Type | Description |
|---|---|---|
| ConnectionInformation | ConnectionInformation | Gets instance of ConnectionInformation |
| Instance | NetworkHelper | Gets public singleton property |
ConnectionInformation Properties
| Property | Type | Description |
|---|---|---|
| ConnectionCost | ConnectionCost | Gets connection cost for the current Internet Connection Profile |
| ConnectionType | ConnectionType | Gets connection type for the current Internet Connection Profile |
| ConnectivityLevel | NetworkConnectivityLevel | Gets connectivity level for the current Internet Connection Profile |
| IsInternetAvailable | bool | Gets a value indicating whether internet is available across all connections |
| IsInternetOnMeteredConnection | bool | Gets a value indicating whether if the current internet connection is metered |
| NetworkNames | IReadOnlyList<string> | Gets signal strength for the current Internet Connection Profile |
| SignalStrength | Nullable<Byte> | Gets signal strength for the current Internet Connection Profile |
ConnectionInformation Methods
| Methods | Return Type | Description |
|---|---|---|
| UpdateConnectionInformation(ConnectionProfile) | void | Updates the current object based on profile passed |
NetworkHelper Events
| Events | Description |
|---|---|
| NetworkChanged | Event raised when the network changes |
Example
// Detect if Internet can be reached
if (NetworkHelper.Instance.ConnectionInformation.IsInternetAvailable)
{
}
// Detect if the connection is metered
if (NetworkHelper.Instance.ConnectionInformation.IsInternetOnMeteredConnection)
{
}
// Get precise connection type
switch(NetworkHelper.Instance.ConnectionInformation.ConnectionType)
{
case ConnectionType.Ethernet:
// Ethernet
break;
case ConnectionType.WiFi:
// WiFi
break;
case ConnectionType.Data:
// Data
break;
case ConnectionType.Unknown:
// Unknown
break;
}
' Detect if Internet can be reached
If NetworkHelper.Instance.ConnectionInformation.IsInternetAvailable Then
...
End If
' Detect if the connection is metered
If NetworkHelper.Instance.ConnectionInformation.IsInternetOnMeteredConnection Then
...
End If
' Get precise connection type
Select Case NetworkHelper.Instance.ConnectionInformation.ConnectionType
Case ConnectionType.Ethernet
' Ethernet
Case ConnectionType.WiFi
' WiFi
Case ConnectionType.Data
' Data
Case ConnectionType.Unknown
' Unknown
End Select
Sample Project
NetworkHelper sample page Source. You can see this in action in the Windows Community Toolkit Sample App.
Requirements
| Device family | Universal, 10.0.16299.0 or higher |
|---|---|
| Namespace | Microsoft.Toolkit.Uwp.Connectivity |
| NuGet package | Microsoft.Toolkit.Uwp.Connectivity |