Как определить, что устройство подключено по WiFi или по Moblile Broadband (edge / 3g / hdspa и т.д)
На Windows Phone 8.1 Silverlight проблема не стоит, всё как и раньше, по-простому:
if(NetworkInterface.NetworkInterfaceType == NetworkInterfaceType.Wireless80211) Debug.WriteLine("WiFi Connection");
Но вот под Windows Phone 8.1 и соответственно в фоновых задачах, добрые люди решили убрать NetworkInterfaceType. Но мы не отчаиваемся, и делаем так:
public static bool IsConnectedWiFi() { ConnectionProfile InternetConnectionProfile = NetworkInformation.GetInternetConnectionProfile(); return InternetConnectionProfile != null && InternetConnectionProfile.IsWlanConnectionProfile; }
При этом, чтобы просто проверить наличие соединения, мы можем обращаться либо к старому NetworkInterface.GetIsNetworkAvailable(), либо проверять на null InternetConnectionProfile.
Подробнее:
http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh452991.aspx
Казалось бы, дело простое, но документация на данный момент вводит в заблуждение, т.к. там указано, что можно красиво определить на любых «восьмёрках» (но вы им не верьте).