我正在尝试在 OS X Yosemite 10.10.3 上使用 Qt 5.4 检查互联网连接状态,但每次运行代码时,结果都会连接,尽管我没有连接任何东西。
bool NetworkAccessManager::currentConnectivityStatus()
{
QNetworkAccessManager *namanager = new QNetworkAccessManager(this);
switch (namanager->networkAccessible()) {
case QNetworkAccessManager::UnknownAccessibility:
kdebug() << Q_FUNC_INFO << "QNetworkAccessManager::UnknownAccessibility";
break;
case QNetworkAccessManager::NotAccessible:
kdebug() << Q_FUNC_INFO << "QNetworkAccessManager::NotAccessible";
break;
case QNetworkAccessManager::Accessible:
kdebug() << Q_FUNC_INFO << "QNetworkAccessManager::Accessible";
break;
default:
break;
}
QNetworkConfigurationManager manager;
kdebug()<< Q_FUNC_INFO << " network connection " << manager.isOnline();
QNetworkConfiguration cfg = manager.defaultConfiguration();
QNetworkSession *session = new QNetworkSession(cfg);
session->open();
session->waitForOpened();
if(session->isOpen())
{
switch (session->state()) {
case QNetworkSession::Connected:
kdebug() << Q_FUNC_INFO << "QNetworkSession::Connected";
break;
case QNetworkSession::Disconnected:
kdebug() << Q_FUNC_INFO << "QNetworkSession::disconnect";
break;
default:
break;
}
}
}
这是我断开所有连接时上述所有结果的结果
DEBUG 2015-04-25T16:00:59.560 bool NetworkAccessManager::currentConnectivityStatus() QNetworkAccessManager::Accessible
DEBUG 2015-04-25T16:00:59.560 bool NetworkAccessManager::currentConnectivityStatus() network connection OK true
DEBUG 2015-04-25T16:00:59.560 bool NetworkAccessManager::currentConnectivityStatus() QNetworkSession::Connected