QNetworkInformation 类
QNetworkInformation 通过原生后端公开各种网络信息。 更多...
头文件 | #include <QNetworkInformation> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
qmake | QT += network |
自 | Qt 6.1 |
继承 | QObject |
公共类型
enum class | Feature { Reachability, CaptivePortal, TransportMedium, Metered } |
flags | Features |
enum class | Reachability { Unknown, Disconnected, Local, Site, Online } |
(since 6.3) enum class | TransportMedium { Unknown, Ethernet, Cellular, WiFi, Bluetooth } |
属性
(since 6.2)
isBehindCaptivePortal : const bool(since 6.3)
isMetered : const bool- reachability : const Reachability
(since 6.3)
transportMedium : const TransportMedium
公共函数
QString | backendName() const |
bool | isBehindCaptivePortal() const |
bool | isMetered() const |
QNetworkInformation::Reachability | reachability() const |
(since 6.3) QNetworkInformation::Features | supportedFeatures() const |
bool | supports(QNetworkInformation::Features features) const |
QNetworkInformation::TransportMedium | transportMedium() const |
信号
void | isBehindCaptivePortalChanged(bool state) |
void | isMeteredChanged(bool isMetered) |
void | reachabilityChanged(QNetworkInformation::Reachability newReachability) |
void | transportMediumChanged(QNetworkInformation::TransportMedium current) |
静态公共成员
QStringList | availableBackends() |
QNetworkInformation * | instance() |
(自6.4起) bool | loadBackendByFeatures(QNetworkInformation::Features features) |
(自6.4起) bool | loadBackendByName(QStringView backend) |
(自6.3起) bool | loadDefaultBackend() |
详细描述
QNetworkInformation通过插件提供了一个跨平台的网络相关信息接口。
各种插件可以支持各种功能,因此您可以根据所需的功能加载()插件。
QNetworkInformation是单例,从首次成功加载()直到QCoreApplication对象被销毁,它一直存活。如果您销毁并重新创建QCoreApplication对象,则必须再次调用load()。
另请参阅 QNetworkInformation::Feature。
成员类型文档
枚举类 QNetworkInformation::Feature
flags QNetworkInformation::Features
列出插件可能目前支持的所有功能。这可以在QNetworkInformation::load()中使用。
常量 | 值 | 描述 |
---|---|---|
QNetworkInformation::Feature::Reachability | 0x1 | 如果插件支持此功能,则reachability 属性将提供有用的结果。否则,它将始终返回Reachability::Unknown 。另请参阅QNetworkInformation::Reachability。 |
QNetworkInformation::Feature::CaptivePortal | 0x2 | 如果插件支持此功能,则isBehindCaptivePortal 属性将提供有用的结果。否则,它将始终返回false 。 |
QNetworkInformation::Feature::TransportMedium | 0x4 | 如果插件支持此功能,则transportMedium 属性将提供有用的结果。否则,它将始终返回TransportMedium::Unknown 。另请参阅QNetworkInformation::TransportMedium。 |
QNetworkInformation::Feature::Metered | 0x8 | 如果插件支持此功能,则isMetered 属性将提供有用的结果。否则,它将始终返回false 。 |
Features类型是QFlags<Feature>的typedef。它存储了Feature值的OR组合。
枚举类 QNetworkInformation::Reachability
常量 | 值 | 描述 |
---|---|---|
QNetworkInformation::Reachability::Unknown | 0 | 如果返回此值,则我们可能已连接,但操作系统尚未确认完全连接,或此功能不受支持。 |
QNetworkInformation::Reachability::Disconnected | 1 | 表示系统可能没有任何连接性。 |
QNetworkInformation::Reachability::Local | 2 | 表示系统连接到了网络,但可能只能访问本地网络上的设备。 |
QNetworkInformation::Reachability::Site | 3 | 表示系统连接到了网络,但可能只能访问本地子网或企业内部网上的设备。 |
QNetworkInformation::Reachability::Online | 4 | 表示系统连接到了网络,并且能够访问互联网。 |
另请参阅 QNetworkInformation::reachability。
[since 6.3]
枚举类 QNetworkInformation::TransportMedium
列出目前可以用来连接互联网的已识别媒体。
常量 | 值 | 描述 |
---|---|---|
QNetworkInformation::TransportMedium::Unknown | 0 | 当操作系统报告没有活动介质、活动介质不被 Qt 识别,或 TransportMedium 功能不支持时,将返回。 |
QNetworkInformation::TransportMedium::Ethernet | 1 | 表示当前活动连接正在使用以太网。注意:当 Windows 连接到蓝牙个人局域网时,也可能返回此值。 |
QNetworkInformation::TransportMedium::Cellular | 2 | 表示当前活动连接正在使用蜂窝网络。 |
QNetworkInformation::TransportMedium::WiFi | 3 | 表示当前活动连接正在使用 Wi-Fi。 |
QNetworkInformation::TransportMedium::Bluetooth | 4 | 表示当前活动连接正使用蓝牙。 |
此枚举自 Qt 6.3 引入。
属性文档
[只读,自 6.2 起生效]
isBehindCaptivePortal : const bool
告诉用户设备是否处于推介门户之后。
此属性表示用户设备目前是否已知位于推介门户之后。此功能依赖于操作系统的推介门户检测,并且在报告此信息的系统上不受支持。在不受此支持的系统上,此值始终返回 false
。
此属性自 Qt 6.2 引入。
访问函数
bool | isBehindCaptivePortal() const |
通知信号
void | isBehindCaptivePortalChanged(bool 状态) |
[只读,自 6.3 起生效]
isMetered : const bool
检查当前连接是否计费
此属性返回当前连接是否(已知是)计费或非计费。您可以使用此属性作为指导因素,以决定应用程序是否应执行某些网络请求或上传。例如,当此属性为 true
时,您可能不想上传日志或诊断信息。
此属性自 Qt 6.3 引入。
访问函数
bool | isMetered() const |
通知信号
void | isMeteredChanged(bool isMetered) |
[只读]
reachability : const Reachability
此属性保存系统网络连接的当前状态。
表示可以预期的连接级别。请注意,这仅基于插件/操作系统的报告。在特定场景中此值可能不正确。例如,在 Windows 上,默认情况下,'在线'检查是通过 Windows 连接到微软拥有的服务器来执行的。如果由于任何原因阻止了此服务器,则假设它没有在线可达性。因此,在尝试建立连接之前,您不应使用此作为预检查。
访问函数
QNetworkInformation::Reachability | reachability() const |
通知信号
void | reachabilityChanged(QNetworkInformation::Reachability 新可达性) |
[只读,自 6.3 起生效]
transportMedium : const TransportMedium
此属性保存应用程序当前活动的传输介质。
此属性返回应用程序当前活动的传输介质,当操作系统中提供此类信息时。
当当前传输介质更改时,会发出一个信号,例如,当用户离开WiFi网络的范围、拔掉以太网电缆或启用飞行模式时,这种情况就会发生。
此属性自 Qt 6.3 引入。
访问函数
QNetworkInformation::TransportMedium | transportMedium() const |
通知信号
void | transportMediumChanged(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开始,如果在平台默认后端不可用或加载失败的情况下,将尝试加载支持可达性的任何后端。如果这也失败,将回退到只返回所有属性默认值的后端。
此平台到插件的映射如下:
平台 | 插件名称 |
---|---|
Windows | networklistmanager |
Apple(macOS/iOS) | scnetworkreachability |
Android | android |
Linux | networkmanager |
此函数提供方便性,因为较早的逻辑已经足够好。如果您需要特定的插件,则应直接调用loadBackendByName()或loadBackendByFeatures().
确定要加载的后端并返回true
,如果此后端已经加载或成功加载。如果已经加载了其他后端或选定后端的加载失败,则返回false
。
此函数从Qt 6.3开始引入。
[自 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. 的 商标。所有其他商标属于其各自所有者。