2015-03-13 3 views
0

Я пытаюсь выполнить проверку подключения к сети, когда пользователь открывает приложение или когда приложение появляется на переднем плане. Ниже приведен пример кодаПроверка сетевых подключений в ежевичных каскадах 10

void ApplicationUI::onFullscreen() 
{ 
    qDebug()<<"Application has entered foreground"; 
    QNetworkConfigurationManager mgr; 
    QList<QNetworkConfiguration> activeConfigs = mgr.allConfigurations(QNetworkConfiguration::Active); 
    if (activeConfigs.count() > 0) 
    { 
      qDebug()<<"Has Internet connection"; 
     } 
     else 
     { 
      qDebug()<<"No Internet connection"; 
     } 

} 

Это всегда печатает имеет подключение к Интернету даже если сетевое соединение выключено. Есть идеи?

ответ

0

Вы можете использовать QNetworkConfigurationManager.isOnline().

QNetworkConfigurationManager mgr; 
mgr.isOnline(); 

Если вы хотите получить уведомление об изменениях в состоянии онлайн, то вы также можете подключить к QNetworkConfigurationManager :: onlineStateChanged сигнала (BOOL isOnline).

connect(mgr, SIGNAL(onlineStateChanged(bool)), this, SLOT(onOnlineStateChanged(bool))); 
+0

я испытал это на тренажере 10.3.1 если (mgr1.isOnline()) {QDebug() << "имеет подключение к Интернету";} еще {QDebug() << "Нет подключения к Интернету";} и он печатает Нет подключения к Интернету при запуске приложения и когда я переключаюсь и возвращаюсь к приложению, которое он печатает, имеет подключение к Интернету, даже когда я отключу интернет от своего компьютера, он все еще показывает, что в журнале есть подключение к Интернету. – Gamerlegend

+0

Я никогда не использовал это на симуляторе , Но код работает на реальных устройствах. Чтобы протестировать автономный режим, вы можете попытаться отключить Wi-Fi и мобильную сеть в симуляторе вместо отключения вашего компьютера от Интернета. –

+0

В симуляторе по умолчанию демонстрируется Wi-Fi и мобильная сеть, но когда я беру мобильную сеть, она показывает свои показы и не отключается. У меня нет устройства сейчас, есть ли другой способ увидеть, работает ли этот код на симуляторе? – Gamerlegend