2014-12-25 5 views
5

Как узнать, имеет ли телефон подключение к Интернету? (Wi-Fi или данные)Windows Phone 8.1: Проверьте подключение к Интернету

Иногда телефон подключается к Wi-Fi без подключения к Интернету, такого как HotSpots. Поэтому я хочу, чтобы код знал, подключен ли телефон к Интернету.

+0

делает https://stackoverflow.com/questions/ 22362646/windows-phone-8-how-to-check-network-availability help? – matthew5025

+0

для чего это нужно? веб-сервис ? – jackjop

+1

Прежде чем позвонить в веб-службу, я хочу знать, подключен ли пользователь к Интернету или нет ... –

ответ

0

Что вы хотите - это плененный портал, который в значительной степени является страницей, с которой пользователи подключаются, чтобы проверить, работает ли их интернет-соединение, можно более подробно пояснить here.

Эти проекты с открытым исходным кодом выглядят многообещающими:

  1. WiFiDog
  2. ChilliSpot

удачи!

2

Вы можете просто попробовать:

if (NetworkInformation.GetInternetConnectionProfile() == null) 
     { 
      //no connection 
     } 

Как вы можете видеть в этой документации MSDN: NetworkInformation.GetInternetConnectionProfile

Она возвращает нуля, если нет «ни один профиля соединения с подходящим соединением»

Вы также можете проверить уровень «доступ в Интернет» следующим образом: NetworkInformation.GetInternetConnectionProfile().GetNetworkConnectivityLevel() == NetworkConnectivityLevel.InternetAccess

Я думаю, это будет работать и в универсальном приложении.

0

Пожалуйста, обратите внимание проверка Интернет в фоновом потоке

if (await Task.Run(() =>NetworkInterface.GetIsNetworkAvailable()) 
{ 
    //Wifi or Cellular 
} 
else 
{ 
    // No internet 
} 
1

метод ниже работает для меня, чтобы просто проверить, если устройство подключено к Интернету или даже не в универсальном приложении окна. После создания класса подключения вы можете просто использовать его в любом месте, просто инстанцирование этого класса ...

public class Connection 
{ 
    public bool CheckInternetAccess() 
    { 
     var connectionProfile = NetworkInformation.GetInternetConnectionProfile(); 
     var HasInternetAccess = (connectionProfile != null && 
          connectionProfile.GetNetworkConnectivityLevel() == 
          NetworkConnectivityLevel.InternetAccess); 
     return HasInternetAccess; 
    } 
} 

Чтобы использовать этот класс просто ..

Connection objConnection = new Connection(); 
if(objConnection.CheckInternetAccess()==true) 
{ 
    //todo 
} 
else 
{//todo} 
Смежные вопросы