簡體   English   中英

沒有QNetworkConfiguration雖然我可以連接到WIFI

[英]No QNetworkConfiguration although I can connect to WIFI

在我的筆記本電腦上(Qt 5.11,Win10 x64)我通過WIFI連接,Qt https連接工作。 我想知道為什么我沒有看到任何活動的網絡配置,但可以創建HTTP請求。 此外, m_networkConfigManager->isOnline()始終為false 我錯過了什么,或者這只是一個Qt錯誤?

// signal / slot
connect(m_networkConfigManager, &QNetworkConfigurationManager::updateCompleted, this, &CApplication::onNetworkConfigurationsUpdateCompleted, Qt::QueuedConnection);

// called via signal
void CApplication::onNetworkConfigurationsUpdateCompleted()
{
    const QNetworkConfiguration config = m_networkConfigManager->defaultConfiguration();
    for (const QNetworkConfiguration &config : m_networkConfigManager->allConfigurations())
    {
        // never reached
        const QString cs = CNetworkUtils::toString(config);
        CLogMessage(this).info("Network config: %1") << cs;
    }

    // always false
    bool isOnline = m_networkConfigManager->isOnline();
    .... debug messages, I see onNetworkConfigurationsUpdateCompleted being called 3 times
    ....
}

---編輯---

  • 我看到onNetworkConfigurationsUpdateCompleted被調用3次,然后每隔10秒定時調用一次。
  • 在我初始化m_networkConfigManager我調用m_networkConfigManager->updateConfigurations();

---編輯2 ---

此版本產生相同的結果(false)(未排隊)

connect(m_networkConfigManager, &QNetworkConfigurationManager::updateCompleted, [ = ]
{
   bool isOnline = m_networkConfigManager->isOnline();
   qDebug() << isOnline;
});

這從未被調用過

connect(m_networkConfigManager, &QNetworkConfigurationManager::onlineStateChanged, [](bool isOnline)
{
    qDebug() << isOnline; // never get here
});

---編輯3 ---

后續問題: 在運行時禁用Qt承載管理

截至Qt bug跟蹤系統很可能是一個Qt bug。 對於WIFI來說,整個承載系統似乎已被破壞,或者至少不是非常可靠。 由於根據平台(OS)在不同的Qt版本中存在不同的問題,因此有點難以跟蹤。

我正在使用一個簡單的黑客解決方法(不好的做法,但工作)。 如果沒有網絡配置,這可能意味着我遇到了這個問題,或者根本沒有網絡接口。 在這種情況下,我只是將QAM設置為Accessible並通過http請求進行測試。 如果它工作WIFI是可用的。

const QList<QNetworkConfiguration> allConfigurations = m_networkConfigManager->allConfigurations();
if (allConfigurations.isEmpty()) {
    m_accessManager->setNetworkAccessible(QNetworkAccessManager::Accessible);`
    .... test Qt http request ....     
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM