[ Windows Phone 8.1 ] How To Detect If Device Connection Is WiFi Or Mobile

Как определить, что устройство подключено по 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/windows.networking.connectivity.connectionprofile.aspx

http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh452991.aspx

Казалось бы, дело простое, но документация на данный момент вводит в заблуждение, т.к. там указано, что можно красиво определить на любых «восьмёрках» (но вы им не верьте).

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *