Qt API 检查wifi是否enabled/disabled

Qt API to check if wifi is enabled/disabled

Qt 应用程序框架有没有办法检查wifi 是否启用?这种方式是否适用于 Android、iOS、macOS 和 Windows?

请注意,我想检查 wifi 是否已启用。如果我有互联网连接,我不会打扰。

环境:
Qt 5.12.x商业版

您可以迭代 QNetworkInterface 个实例(.pro 中的 QT+=network),并检查 type() 无线接口,同时检查 flags()查看它是否启动并 运行。示例:

#include <QCoreApplication>
#include <QNetworkInterface>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    for(const QNetworkInterface& iface : QNetworkInterface::allInterfaces()) {
        if (iface.type() == QNetworkInterface::Wifi) {
            qDebug() << iface.humanReadableName() << "(" << iface.name() << ")"
                     << "is up:" << iface.flags().testFlag(QNetworkInterface::IsUp)
                     << "is running:" << iface.flags().testFlag(QNetworkInterface::IsRunning);
        }
    }
}

应该是跨平台的,但是文档说:

Not all operating systems support reporting all features. Only the IPv4 addresses are guaranteed to be listed by this class in all platforms. In particular, IPv6 address listing is only supported on Windows, Linux, macOS and the BSDs.

没有关于其他属性的消息。