2015-03-13 91 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"; 
     } 

} 

這始終打印具有Internet連接即使在網絡連接關閉。有任何想法嗎?

回答

0

您可以使用QNetworkConfigurationManager.isOnline()。

QNetworkConfigurationManager mgr; 
mgr.isOnline(); 

如果你想收到通知在線狀態的變化,那麼你還可以連接到QNetworkConfigurationManager :: onlineStateChanged(布爾isOnline)信號。

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

我測試了這個在模擬器10.3.1 如果(mgr1.isOnline()){qDebug()<< 「有互聯網連接」;}其他{qDebug()<< 「沒有網絡連接」;}它打印沒有互聯網連接時,應用程序啓動時,當我切換,並回來的應用程序,它打印有互聯網連接,即使當我斷開互聯網從我的電腦它仍然顯示日誌有互聯網連接 – Gamerlegend 2015-03-17 05:49:39

+0

我從來沒有在模擬器上使用過。但代碼適用於真實設備。要測試離線模式,您可以嘗試在模擬器中關閉WiFi和移動網絡,而不要將您的PC從互聯網斷開。 – 2015-03-17 09:10:57

+0

在模擬器默認情況下,WiFi和移動網絡顯示,但當我採取移動網絡設置其顯示,並沒有關閉。我現在沒有設備,是否有任何其他方式來查看此代碼是否可以在模擬器上運行? – Gamerlegend 2015-03-17 09:46:19