Главная » C#, Windows Runtime, XAML, Разработка для Windows 8 » Информация о сетевом подключении Windows Runtime

0

Используя интерфейс Connectivity API, который является частью среды Windows Runtime,  наше  Metro-приложение  может  получать  информацию  о  текущем состоянии  сети  и  соответственно  применять  различные  сценарии  сетевого взаимодействия с удаленным сервером.

Для  получения  информации  о  текущем  интернет-соединении   необходимо вызвать метод   GetInternetConnectionProfile  класса   Windows.Networking. Connectivity.  NetworkInformation. Объект  типа  ConnectionProfile позволит получить  детальную  информацию  о  текущем  соединении.  Пример  данных, которые можно получить через этот объект, показан на Рис. 7.1.

Рис. 7.1.

Для получения этих данных необходимо использовать следующий код:

Var connectionProfile = Windows.Networking.Connectivity. NetworkInformation.GetInternetConnectionProfile() connectionProfileInfo = "Profile Name : " + connectionProfile.ProfileName + "\n";

switch (connectionProfile.GetNetworkConnectivityLevel())

{

case NetworkConnectivityLevel.None:

connectionProfileInfo += "Connectivity Level : None\n"; break;

case NetworkConnectivityLevel.LocalAccess: connectionProfileInfo += "Connectivity Level :

Local Access\n"; break;

case NetworkConnectivityLevel.ConstrainedInternetAccess: connectionProfileInfo += "Connectivity Level :

Constrained Internet Access\n"; break;

case NetworkConnectivityLevel.InternetAccess: connectionProfileInfo += "Connectivity Level :

Internet Access\n";

break;

}

switch (connectionCost.NetworkCostType)

{

case NetworkCostType.Unrestricted: connectionProfileInfo += "Cost: Unrestricted"; break;

case NetworkCostType.Fixed: connectionProfileInfo += "Cost: Fixed"; break;

case NetworkCostType.Variable: connectionProfileInfo += "Cost: Variable"; break;

case NetworkCostType.Unknown: connectionProfileInfo += "Cost: Unknown"; break;

default:

connectionProfileInfo += "Cost: Error"; break;

}

connectionProfileInfo += "\n";

connectionProfileInfo += "Roaming: " + connectionCost.Roaming + "\n"; connectionProfileInfo += "Over Data Limit: " + connectionCost. OverDataLimit + "\n";

connectionProfileInfo += "Approaching Data Limit : " + connectionCost.ApproachingDataLimit + "\n";

Также,  используя объект  типа  ConnectionProfile, можно  получить  сведения о количестве байтов, принятых и отправленных через это соединение. Для этого необходимо получить объект класса  DataUsage,  вызвав  метод GetLocalUsage у объекта ConnectionProfile (Рис. 7.2).

Рис. 7.2.

Такой  большой  набор  данных  о  текущем  интернет-соединении   позволяет создавать очень  гибкие  модели  взаимодействия   клиентского  приложения и  сервера. Так,  передать большие наборы  данных мы  можем  только  когда пользователь использует  подключение WiFi, а в  остальных случаях — только минимум необходимой приложению информации.

Сергей Лутай, Сергей Байдачный, Windows 8 для C# разработчиков

По теме:

  • Комментарии