QNetworkInformation 类

QNetworkInformation 通过原生后端公开各种网络信息。 更多...

头文件 #include <QNetworkInformation>
CMakefind_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmakeQT += network
Qt 6.1
继承 QObject

公共类型

enum classFeature { Reachability, CaptivePortal, TransportMedium, Metered }
flagsFeatures
enum classReachability { Unknown, Disconnected, Local, Site, Online }
(since 6.3) enum classTransportMedium { Unknown, Ethernet, Cellular, WiFi, Bluetooth }

属性

公共函数

QStringbackendName() const
boolisBehindCaptivePortal() const
boolisMetered() const
QNetworkInformation::Reachabilityreachability() const
(since 6.3) QNetworkInformation::FeaturessupportedFeatures() const
boolsupports(QNetworkInformation::Features features) const
QNetworkInformation::TransportMediumtransportMedium() const

信号

voidisBehindCaptivePortalChanged(bool state)
voidisMeteredChanged(bool isMetered)
voidreachabilityChanged(QNetworkInformation::Reachability newReachability)
voidtransportMediumChanged(QNetworkInformation::TransportMedium current)

静态公共成员

QStringListavailableBackends()
QNetworkInformation *instance()
(自6.4起) boolloadBackendByFeatures(QNetworkInformation::Features features)
(自6.4起) boolloadBackendByName(QStringView backend)
(自6.3起) boolloadDefaultBackend()

详细描述

QNetworkInformation通过插件提供了一个跨平台的网络相关信息接口。

各种插件可以支持各种功能,因此您可以根据所需的功能加载()插件。

QNetworkInformation是单例,从首次成功加载()直到QCoreApplication对象被销毁,它一直存活。如果您销毁并重新创建QCoreApplication对象,则必须再次调用load()。

另请参阅 QNetworkInformation::Feature

成员类型文档

枚举类 QNetworkInformation::Feature
flags QNetworkInformation::Features

列出插件可能目前支持的所有功能。这可以在QNetworkInformation::load()中使用。

常量描述
QNetworkInformation::Feature::Reachability0x1如果插件支持此功能,则reachability属性将提供有用的结果。否则,它将始终返回Reachability::Unknown。另请参阅QNetworkInformation::Reachability
QNetworkInformation::Feature::CaptivePortal0x2如果插件支持此功能,则isBehindCaptivePortal属性将提供有用的结果。否则,它将始终返回false
QNetworkInformation::Feature::TransportMedium0x4如果插件支持此功能,则transportMedium属性将提供有用的结果。否则,它将始终返回TransportMedium::Unknown。另请参阅QNetworkInformation::TransportMedium
QNetworkInformation::Feature::Metered0x8如果插件支持此功能,则isMetered属性将提供有用的结果。否则,它将始终返回false

Features类型是QFlags<Feature>的typedef。它存储了Feature值的OR组合。

枚举类 QNetworkInformation::Reachability

常量描述
QNetworkInformation::Reachability::Unknown0如果返回此值,则我们可能已连接,但操作系统尚未确认完全连接,或此功能不受支持。
QNetworkInformation::Reachability::Disconnected1表示系统可能没有任何连接性。
QNetworkInformation::Reachability::Local2表示系统连接到了网络,但可能只能访问本地网络上的设备。
QNetworkInformation::Reachability::Site3表示系统连接到了网络,但可能只能访问本地子网或企业内部网上的设备。
QNetworkInformation::Reachability::Online4表示系统连接到了网络,并且能够访问互联网。

另请参阅 QNetworkInformation::reachability

[since 6.3] 枚举类 QNetworkInformation::TransportMedium

列出目前可以用来连接互联网的已识别媒体。

常量描述
QNetworkInformation::TransportMedium::Unknown0当操作系统报告没有活动介质、活动介质不被 Qt 识别,或 TransportMedium 功能不支持时,将返回。
QNetworkInformation::TransportMedium::Ethernet1表示当前活动连接正在使用以太网。注意:当 Windows 连接到蓝牙个人局域网时,也可能返回此值。
QNetworkInformation::TransportMedium::Cellular2表示当前活动连接正在使用蜂窝网络。
QNetworkInformation::TransportMedium::WiFi3表示当前活动连接正在使用 Wi-Fi。
QNetworkInformation::TransportMedium::Bluetooth4表示当前活动连接正使用蓝牙。

此枚举自 Qt 6.3 引入。

另请参阅 QNetworkInformation::transportMedium

属性文档

[只读,自 6.2 起生效] isBehindCaptivePortal : const bool

告诉用户设备是否处于推介门户之后。

此属性表示用户设备目前是否已知位于推介门户之后。此功能依赖于操作系统的推介门户检测,并且在报告此信息的系统上不受支持。在不受此支持的系统上,此值始终返回 false

此属性自 Qt 6.2 引入。

访问函数

boolisBehindCaptivePortal() const

通知信号

voidisBehindCaptivePortalChanged(bool 状态)

[只读,自 6.3 起生效] isMetered : const bool

检查当前连接是否计费

此属性返回当前连接是否(已知是)计费或非计费。您可以使用此属性作为指导因素,以决定应用程序是否应执行某些网络请求或上传。例如,当此属性为 true 时,您可能不想上传日志或诊断信息。

此属性自 Qt 6.3 引入。

访问函数

boolisMetered() const

通知信号

voidisMeteredChanged(bool isMetered)

[只读] reachability : const Reachability

此属性保存系统网络连接的当前状态。

表示可以预期的连接级别。请注意,这仅基于插件/操作系统的报告。在特定场景中此值可能不正确。例如,在 Windows 上,默认情况下,'在线'检查是通过 Windows 连接到微软拥有的服务器来执行的。如果由于任何原因阻止了此服务器,则假设它没有在线可达性。因此,在尝试建立连接之前,您不应使用此作为预检查。

访问函数

QNetworkInformation::Reachabilityreachability() const

通知信号

voidreachabilityChanged(QNetworkInformation::Reachability 新可达性)

[只读,自 6.3 起生效] transportMedium : const TransportMedium

此属性保存应用程序当前活动的传输介质。

此属性返回应用程序当前活动的传输介质,当操作系统中提供此类信息时。

当当前传输介质更改时,会发出一个信号,例如,当用户离开WiFi网络的范围、拔掉以太网电缆或启用飞行模式时,这种情况就会发生。

此属性自 Qt 6.3 引入。

访问函数

QNetworkInformation::TransportMediumtransportMedium() const

通知信号

voidtransportMediumChanged(QNetworkInformation::TransportMedium current)

成员函数文档

[静态] QStringList QNetworkInformation::availableBackends()

返回所有当前可用后端的名称列表。

QString QNetworkInformation::backendName() const

返回当前加载的后端的名称。

[静态] QNetworkInformation *QNetworkInformation::instance()

如果有的话,返回对QNetworkInformation实例的指针。

另请参阅load().

[静态,从6.4开始] bool QNetworkInformation::loadBackendByFeatures(QNetworkInformation::Features features)

加载支持特定功能的后端。

如果成功加载请求的后端或它已经加载,则返回true。否则返回false

此函数从Qt 6.4开始引入。

另请参阅instance.

[静态,从6.4开始] bool QNetworkInformation::loadBackendByName(QStringView backend)

尝试加载名为backend的后端(不区分大小写)。

如果成功加载请求的后端或它已经加载,则返回true。否则返回false

此函数从Qt 6.4开始引入。

另请参阅instance.

[静态,从6.3开始] bool QNetworkInformation::loadDefaultBackend()

尝试加载平台默认的后端。

注意:从6.7开始,如果在平台默认后端不可用或加载失败的情况下,将尝试加载支持可达性的任何后端。如果这也失败,将回退到只返回所有属性默认值的后端。

此平台到插件的映射如下:

平台插件名称
Windowsnetworklistmanager
Apple(macOS/iOS)scnetworkreachability
Androidandroid
Linuxnetworkmanager

此函数提供方便性,因为较早的逻辑已经足够好。如果您需要特定的插件,则应直接调用loadBackendByName()或loadBackendByFeatures().

确定要加载的后端并返回true,如果此后端已经加载或成功加载。如果已经加载了其他后端或选定后端的加载失败,则返回false

此函数从Qt 6.3开始引入。

另请参阅instance()和load().

[自 6.3 版开始] QNetworkInformation::Features QNetworkInformation::supportedFeatures() const

返回当前后端支持的所有功能。

此函数从Qt 6.3开始引入。

bool QNetworkInformation::supports(QNetworkInformation::Features features) const

如果当前加载的后端支持 features,则返回 true

© 2024 The Qt Company Ltd. 本文档中的贡献文档的版权归其各自所有者所有。此处提供的文档是根据自由软件基金会发布的 GNU 通用文档许可版本 1.3 的条款提供的。Qt及其相关标志是芬兰及/或世界其他地区的 The Qt Company Ltd. 的 商标。所有其他商标属于其各自所有者。