Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QNetworkInformation Class Reference

\inmodule QtNetwork More...

#include <qnetworkinformation.h>

+ Inheritance diagram for QNetworkInformation:
+ Collaboration diagram for QNetworkInformation:

Public Types

enum class  Reachability {
  Unknown , Disconnected , Local , Site ,
  Online
}
 \value Unknown If this value is returned then we may be connected but the OS has still not confirmed full connectivity, or this feature is not supported. More...
 
enum class  TransportMedium {
  Unknown , Ethernet , Cellular , WiFi ,
  Bluetooth
}
 
enum class  Feature { Reachability = 0x1 , CaptivePortal = 0x2 , TransportMedium = 0x4 , Metered = 0x8 }
 Lists all of the features that a plugin may currently support. More...
 

Signals

void reachabilityChanged (QNetworkInformation::Reachability newReachability)
 
void isBehindCaptivePortalChanged (bool state)
 
void transportMediumChanged (QNetworkInformation::TransportMedium current)
 
void isMeteredChanged (bool isMetered)
 
- Signals inherited from QObject
void destroyed (QObject *=nullptr)
 This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked.
 
void objectNameChanged (const QString &objectName, QPrivateSignal)
 This signal is emitted after the object's name has been changed.
 

Public Member Functions

Reachability reachability () const
 
bool isBehindCaptivePortal () const
 
TransportMedium transportMedium () const
 
bool isMetered () const
 
QString backendName () const
 Returns the name of the currently loaded backend.
 
bool supports (Features features) const
 Returns true if the currently loaded backend supports features.
 
Features supportedFeatures () const
 
- Public Member Functions inherited from QObject
Q_INVOKABLE QObject (QObject *parent=nullptr)
 Constructs an object with parent object parent.
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects.
 
virtual bool event (QEvent *event)
 This virtual function receives events to an object and should return true if the event e was recognized and processed.
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 Filters events if this object has been installed as an event filter for the watched object.
 
QString objectName () const
 
Q_WEAK_OVERLOAD void setObjectName (const QString &name)
 Sets the object's name to name.
 
void setObjectName (QAnyStringView name)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
QBindable< QStringbindableObjectName ()
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false.
 
bool isWindowType () const
 Returns true if the object is a window; otherwise returns false.
 
bool isQuickItemType () const
 Returns true if the object is a QQuickItem; otherwise returns false.
 
bool signalsBlocked () const noexcept
 Returns true if signals are blocked; otherwise returns false.
 
bool blockSignals (bool b) noexcept
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it).
 
QThreadthread () const
 Returns the thread in which the object lives.
 
bool moveToThread (QThread *thread QT6_DECL_NEW_OVERLOAD_TAIL)
 Changes the thread affinity for this object and its children and returns true on success.
 
int startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer)
 This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds.
 
int startTimer (std::chrono::nanoseconds time, Qt::TimerType timerType=Qt::CoarseTimer)
 
void killTimer (int id)
 Kills the timer with timer identifier, id.
 
void killTimer (Qt::TimerId id)
 
template<typename T >
findChild (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object.
 
template<typename T >
QList< T > findChildren (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects.
 
template<typename T >
findChild (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename T >
QList< T > findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
const QObjectListchildren () const
 Returns a list of child objects.
 
void setParent (QObject *parent)
 Makes the object a child of parent.
 
void installEventFilter (QObject *filterObj)
 Installs an event filter filterObj on this object.
 
void removeEventFilter (QObject *obj)
 Removes an event filter object obj from this object.
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const
 
bool disconnect (const QObject *receiver, const char *member=nullptr) const
 
void dumpObjectTree () const
 Dumps a tree of children to the debug output.
 
void dumpObjectInfo () const
 Dumps information about signal connections, etc.
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value.
 
bool setProperty (const char *name, QVariant &&value)
 
QVariant property (const char *name) const
 Returns the value of the object's name property.
 
QList< QByteArraydynamicPropertyNames () const
 
QBindingStoragebindingStorage ()
 
const QBindingStoragebindingStorage () const
 
QObjectparent () const
 Returns a pointer to the parent object.
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false.
 

Static Public Member Functions

static bool loadDefaultBackend ()
 
static bool loadBackendByName (QStringView backend)
 
static bool loadBackendByFeatures (Features features)
 
static QStringList availableBackends ()
 Returns a list of the names of all currently available backends.
 
static QNetworkInformationinstance ()
 Returns a pointer to the instance of the QNetworkInformation, if any.
 
- Static Public Member Functions inherited from QObject
static QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 \threadsafe
 
static QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 \threadsafe
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static bool disconnect (const QMetaObject::Connection &)
 Disconnect a connection.
 
template<typename Func1 , typename Func2 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot)
 
template<typename Func1 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero)
 

Properties

Reachability reachability
 The current state of the system's network connectivity.
 
bool isBehindCaptivePortal
 Lets you know if the user's device is behind a captive portal.
 
TransportMedium transportMedium
 The currently active transport medium for the application.
 
bool isMetered
 Check if the current connection is metered.
 
- Properties inherited from QObject
QString objectName
 the name of this object
 

Private Member Functions

 ~QNetworkInformation () override
 

Friends

struct QNetworkInformationDeleter
 

Additional Inherited Members

- Public Slots inherited from QObject
void deleteLater ()
 \threadsafe
 
- Protected Member Functions inherited from QObject
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr.
 
int senderSignalIndex () const
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal.
 
bool isSignalConnected (const QMetaMethod &signal) const
 
virtual void timerEvent (QTimerEvent *event)
 This event handler can be reimplemented in a subclass to receive timer events for the object.
 
virtual void childEvent (QChildEvent *event)
 This event handler can be reimplemented in a subclass to receive child events.
 
virtual void customEvent (QEvent *event)
 This event handler can be reimplemented in a subclass to receive custom events.
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
 QObject (QObjectPrivate &dd, QObject *parent=nullptr)
 
- Protected Attributes inherited from QObject
QScopedPointer< QObjectDatad_ptr
 

Detailed Description

\inmodule QtNetwork

Since
6.1

QNetworkInformation exposes various network information through native backends.

QNetworkInformation provides a cross-platform interface to network-related information through plugins.

Various plugins can have various functionality supported, and so you can load() plugins based on which features are needed.

QNetworkInformation is a singleton and stays alive from the first successful load() until destruction of the QCoreApplication object. If you destroy and re-create the QCoreApplication object you must call load() again.

See also
QNetworkInformation::Feature

Definition at line 17 of file qnetworkinformation.h.

Member Enumeration Documentation

◆ Feature

enum class QNetworkInformation::Feature
strong

Lists all of the features that a plugin may currently support.

This can be used in QNetworkInformation::load().

\value Reachability If the plugin supports this feature then the reachability property will provide useful results. Otherwise it will always return {Reachability::Unknown}. See also QNetworkInformation::Reachability.

\value CaptivePortal If the plugin supports this feature then the isBehindCaptivePortal property will provide useful results. Otherwise it will always return {false}.

\value TransportMedium If the plugin supports this feature then the transportMedium property will provide useful results. Otherwise it will always return {TransportMedium::Unknown}. See also QNetworkInformation::TransportMedium.

\value Metered If the plugin supports this feature then the isMetered property will provide useful results. Otherwise it will always return {false}.

Enumerator
Reachability 
CaptivePortal 
TransportMedium 
Metered 

Definition at line 46 of file qnetworkinformation.h.

◆ Reachability

\value Unknown If this value is returned then we may be connected but the OS has still not confirmed full connectivity, or this feature is not supported.

\value Disconnected Indicates that the system may have no connectivity at all. \value Local Indicates that the system is connected to a network, but it might only be able to access devices on the local network. \value Site Indicates that the system is connected to a network, but it might only be able to access devices on the local subnet or an intranet. \value Online Indicates that the system is connected to a network and able to access the Internet.

See also
QNetworkInformation::reachability
Enumerator
Unknown 
Disconnected 
Local 
Site 
Online 

Definition at line 28 of file qnetworkinformation.h.

◆ TransportMedium

Since
6.3

Lists the currently recognized media with which one can connect to the internet.

\value Unknown Returned if either the OS reports no active medium, the active medium is not recognized by Qt, or the TransportMedium feature is not supported. \value Ethernet Indicates that the currently active connection is using ethernet. Note: This value may also be returned when Windows is connected to a Bluetooth personal area network. \value Cellular Indicates that the currently active connection is using a cellular network. \value WiFi Indicates that the currently active connection is using Wi-Fi. \value Bluetooth Indicates that the currently active connection is connected using Bluetooth.

See also
QNetworkInformation::transportMedium
Enumerator
Unknown 
Ethernet 
Cellular 
WiFi 
Bluetooth 

Definition at line 37 of file qnetworkinformation.h.

Member Function Documentation

◆ ~QNetworkInformation()

QNetworkInformation::~QNetworkInformation ( )
overrideprivatedefault

dtor

◆ availableBackends()

QStringList QNetworkInformation::availableBackends ( )
static

Returns a list of the names of all currently available backends.

Definition at line 754 of file qnetworkinformation.cpp.

◆ backendName()

QString QNetworkInformation::backendName ( ) const

Returns the name of the currently loaded backend.

Definition at line 603 of file qnetworkinformation.cpp.

◆ instance()

QNetworkInformation * QNetworkInformation::instance ( )
static

Returns a pointer to the instance of the QNetworkInformation, if any.

See also
load()

Definition at line 765 of file qnetworkinformation.cpp.

◆ isBehindCaptivePortal()

bool QNetworkInformation::isBehindCaptivePortal ( ) const

Definition at line 562 of file qnetworkinformation.cpp.

◆ isBehindCaptivePortalChanged

void QNetworkInformation::isBehindCaptivePortalChanged ( bool state)
signal

◆ isMetered()

bool QNetworkInformation::isMetered ( ) const

Definition at line 595 of file qnetworkinformation.cpp.

◆ isMeteredChanged

void QNetworkInformation::isMeteredChanged ( bool isMetered)
signal

◆ loadBackendByFeatures()

bool QNetworkInformation::loadBackendByFeatures ( Features features)
static
Since
6.4 Load a backend which supports features.

Returns true if it managed to load the requested backend or if it was already loaded. Returns false otherwise.

See also
instance

Definition at line 733 of file qnetworkinformation.cpp.

◆ loadBackendByName()

bool QNetworkInformation::loadBackendByName ( QStringView backend)
static
Since
6.4

Attempts to load a backend whose name matches backend (case insensitively).

Returns true if it managed to load the requested backend or if it was already loaded. Returns false otherwise.

See also
instance

Definition at line 703 of file qnetworkinformation.cpp.

◆ loadDefaultBackend()

bool QNetworkInformation::loadDefaultBackend ( )
static
Since
6.3

Attempts to load the platform-default backend.

Note
Starting with 6.7 this tries to load any backend that supports \l{QNetworkInformation::Feature::Reachability}{Reachability} if the platform-default backend is not available or fails to load. If this also fails it will fall back to a backend that only returns the default values for all properties.

This platform-to-plugin mapping is as follows:

\table \header

  • Platform
  • Plugin-name \row
  • Windows
  • networklistmanager \row
  • Apple (macOS/iOS)
  • scnetworkreachability \row
  • Android
  • android \row
  • Linux
  • networkmanager \endtable

This function is provided for convenience where the logic earlier is good enough. If you require a specific plugin then you should call loadBackendByName() or loadBackendByFeatures() directly instead.

Determines a suitable backend to load and returns true if this backend is already loaded or on successful loading of it. Returns false if any other backend has already been loaded, or if loading of the selected backend fails.

See also
instance(), load()

Definition at line 669 of file qnetworkinformation.cpp.

◆ reachability()

QNetworkInformation::Reachability QNetworkInformation::reachability ( ) const

Definition at line 546 of file qnetworkinformation.cpp.

◆ reachabilityChanged

void QNetworkInformation::reachabilityChanged ( QNetworkInformation::Reachability newReachability)
signal

◆ supportedFeatures()

QNetworkInformation::Features QNetworkInformation::supportedFeatures ( ) const
Since
6.3

Returns all the supported features of the current backend.

Definition at line 622 of file qnetworkinformation.cpp.

◆ supports()

bool QNetworkInformation::supports ( Features features) const

Returns true if the currently loaded backend supports features.

Definition at line 612 of file qnetworkinformation.cpp.

◆ transportMedium()

QNetworkInformation::TransportMedium QNetworkInformation::transportMedium ( ) const

Definition at line 579 of file qnetworkinformation.cpp.

◆ transportMediumChanged

void QNetworkInformation::transportMediumChanged ( QNetworkInformation::TransportMedium current)
signal

Friends And Related Symbol Documentation

◆ QNetworkInformationDeleter

friend struct QNetworkInformationDeleter
friend

Definition at line 85 of file qnetworkinformation.h.

Property Documentation

◆ isBehindCaptivePortal

bool QNetworkInformation::isBehindCaptivePortal
read

Lets you know if the user's device is behind a captive portal.

Since
6.2

This property indicates if the user's device is currently known to be behind a captive portal. This functionality relies on the operating system's detection of captive portals and is not supported on systems that don't report this. On systems where this is not supported this will always return {false}.

Definition at line 22 of file qnetworkinformation.h.

◆ isMetered

bool QNetworkInformation::isMetered
read

Check if the current connection is metered.

Since
6.3

This property returns whether the current connection is (known to be) metered or not. You can use this as a guiding factor to decide whether your application should perform certain network requests or uploads. For instance, you may not want to upload logs or diagnostics while this property is true.

Definition at line 25 of file qnetworkinformation.h.

◆ reachability

Reachability QNetworkInformation::reachability
read

The current state of the system's network connectivity.

Indicates the level of connectivity that can be expected. Do note that this is only based on what the plugin/operating system reports. In certain scenarios this is known to be wrong. For example, on Windows the 'Online' check, by default, is performed by Windows connecting to a Microsoft-owned server. If this server is for any reason blocked then it will assume it does not have Online reachability. Because of this you should not use this as a pre-check before attempting to make a connection.

Definition at line 21 of file qnetworkinformation.h.

◆ transportMedium

TransportMedium QNetworkInformation::transportMedium
read

The currently active transport medium for the application.

Since
6.3

This property returns the currently active transport medium for the application, on operating systems where such information is available.

When the current transport medium changes a signal is emitted, this can, for instance, occur when a user leaves the range of a WiFi network, unplugs their ethernet cable or enables Airplane mode.

Definition at line 24 of file qnetworkinformation.h.


The documentation for this class was generated from the following files: