Qt应用程序框架中是否有方法检查是否启用了wifi?以及这种方式是否适用于Android,iOS,macOS和Windows?
请注意,我要检查是否启用了wifi。如果我有互联网连接,我就不会打扰。
环境:
Qt 5.12.x商业版
答案 0 :(得分:2)
您可以迭代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);
}
}
}
它应该是跨平台的,但是文档说:
并非所有操作系统都支持报告所有功能。只有 保证在所有此类中列出IPv4地址 平台。特别是,仅在以下位置支持IPv6地址列表 Windows,Linux,macOS和BSD。
关于其他属性一无所知。