Класс QNetworkConfiguration
Класс QNetworkConfiguration предоставляет абстракцию одной или нескольких конфигураций точки доступа. Подробнее...
| Заголовок: | #include <QNetworkConfiguration> |
| qmake: | QT += network |
| С момента: | Qt 4.7 |
Открытые типы
| перечисление | ТипНосителя { НеизвестныйТипНосителя, Ethernet, WLAN, 2G, ..., LTE } |
| перечисление | Цель { НеизвестнаяЦель, ОбщедоступнаяЦель, ЧастнаяЦель, ЦельУслуги } |
| перечисление | ФлагСостояния { Неопределённое, Определённое, Обнаружено, Активное } |
| флаги | ФлагиСостояния |
| перечисление | Тип { ТочкаДоступаВИнтернет, СетеваяСлужба, ВыборПользователя, Недействительный } |
Открытые функции
| QNetworkConfiguration() | |
| QNetworkConfiguration(const QNetworkConfiguration &other) | |
| ~QNetworkConfiguration() | |
| ТипНосителя | типНосителя() const |
| ТипНосителя | семействоТипНосителя() const |
| QString | имяТипНосителя() const |
| QList<QNetworkConfiguration> | дочерниеЭлементы() const |
| QString | идентификатор() const |
| bool | доступноРоуминг() const |
| bool | действителен() const |
| QString | имя() const |
| Цель | цель() const |
| ФлагиСостояния | состояние() const |
| void | поменять(QNetworkConfiguration &other) |
| Тип | тип() const |
| bool | operator!=(const QNetworkConfiguration &other) const |
| QNetworkConfiguration & | operator=(QNetworkConfiguration &&other) |
| QNetworkConfiguration & | operator=(const QNetworkConfiguration &other) |
| bool | operator==(const QNetworkConfiguration &other) const |
Подробное описание
Класс QNetworkConfiguration предоставляет абстракцию одной или нескольких конфигураций точки доступа.
QNetworkConfiguration инкапсулирует одну точку доступа или сетевую службу. В большинстве случаев одна конфигурация точки доступа может быть сопоставлена одному сетевому интерфейсу. Однако один сетевой интерфейс не всегда может быть сопоставлен только с одной конфигурацией точки доступа. Несколько конфигураций для одного сетевого устройства могут активировать несколько точек доступа. Примером устройства, которое может иметь такую конфигурацию, может быть смартфон, который позволяет пользователю управлять несколькими конфигурациями WLAN, в то время как само устройство имеет только одно WLAN-сетевое устройство.
Класс QNetworkConfiguration также поддерживает концепцию сетевых служб. Эта концепция позволяет группировать несколько конфигураций точек доступа в одну сущность. Такая группа называется сетевой службой и может быть полезна в тех случаях, когда требуется сетевая сессия к определённой целевой сети (например, корпоративная сеть). При использовании сетевой службы пользователю обычно неважно, какой из вариантов подключения используется (например, корпоративная WLAN или VPN через GPRS), пока он может получить доступ к целевому серверу компании. В зависимости от текущего местоположения и времени некоторые точки доступа, которые составляют сетевую службу, могут быть недоступны. Кроме того, можно включить автоматическое переключение точек доступа, что позволяет устройству динамически изменять конфигурацию сетевого интерфейса, сохраняя при этом подключение приложения к целевой сети. Это позволяет адаптироваться к меняющейся среде и может оптимизировать затраты, скорость или другие параметры сети.
Специальные конфигурации типа ВыборПользователя обеспечивают конфигурацию-заполнитель, которая разрешается платформой до фактической конфигурации сети при открытии сессии. Не все платформы поддерживают концепцию конфигурации выбора пользователя.
Состояния конфигурации
Список доступных конфигураций можно получить с помощью QNetworkConfigurationManager::allConfigurations(). Конфигурация может иметь несколько состояний. Состояние конфигурации Определённое указывает, что конфигурация сохранена на устройстве. Однако конфигурация ещё не готова к активации, например, WLAN может быть недоступна в данный момент.
Состояние Обнаружено подразумевает, что конфигурация Определённая и внешние условия таковы, что конфигурацию можно использовать для немедленного открытия новой сетевой сессии. Примером таких внешних условий может быть подключение Ethernet-кабеля к устройству или наличие WLAN с указанным SSID в пределах досягаемости.
Состояние Активное подразумевает, что конфигурация Обнаружена. Конфигурация в этом состоянии в настоящее время используется приложением. Подлежащий сетевой интерфейс имеет действительную IP-конфигурацию и может передавать IP-пакеты между устройством и целевой сетью.
Состояние Неопределённое указывает, что система знает о возможных целевых сетях, но не может фактически использовать эти знания для подключения к ним. Примером такого состояния может быть зашифрованное WLAN, которое было обнаружено, но пользователь фактически не сохранил конфигурацию, включающую необходимый пароль, который позволил бы устройству подключиться к нему.
В зависимости от типа конфигурации некоторые состояния являются переходными по своей природе. Подключение GPRS/UMTS почти всегда может быть Обнаружено, если сеть GSM/UMTS доступна. Однако, если сеть GSM/UMTS теряет соединение, связанная конфигурация может изменить своё состояние с Обнаружено на Определённое. Аналогичный случай может быть вызван доступностью WLAN. QNetworkConfigurationManager::updateConfigurations() можно использовать для ручного запуска обновлений состояний. Обратите внимание, что на некоторых платформах такие обновления не требуются, поскольку они неявно изменяют состояние после его обнаружения. Если состояние конфигурации изменяется, все связанные экземпляры QNetworkConfiguration автоматически изменяют своё состояние.
См. также QNetworkSession и QNetworkConfigurationManager.
Документация типов членов
перечисление QNetworkConfiguration::ТипНосителя
Указывает тип носителя, используемого конфигурацией.
| Константа | Значение | Описание |
|---|---|---|
QNetworkConfiguration::BearerUnknown |
0 |
Тип носителя неизвестен или не указан. Функция bearerTypeName() может вернуть дополнительную информацию. |
QNetworkConfiguration::BearerEthernet |
1 |
Конфигурация предназначена для интерфейсов Ethernet. |
QNetworkConfiguration::BearerWLAN |
2 |
Конфигурация предназначена для беспроводного LAN-интерфейса. |
QNetworkConfiguration::Bearer2G |
3 |
Конфигурация предназначена для интерфейсов CSD, GPRS, HSCSD, EDGE или cdmaOne. |
QNetworkConfiguration::Bearer3G |
11 |
Конфигурация предназначена для 3G-интерфейса. |
QNetworkConfiguration::Bearer4G |
12 |
Конфигурация предназначена для 4G-интерфейса. |
QNetworkConfiguration::BearerCDMA2000 |
4 |
Конфигурация предназначена для интерфейса CDMA. |
QNetworkConfiguration::BearerWCDMA |
5 |
Конфигурация предназначена для интерфейса W-CDMA/UMTS. |
QNetworkConfiguration::BearerHSPA |
6 |
Конфигурация предназначена для интерфейса High Speed Packet Access (HSPA). |
QNetworkConfiguration::BearerBluetooth |
7 |
Конфигурация предназначена для интерфейса Bluetooth. |
QNetworkConfiguration::BearerWiMAX |
8 |
Конфигурация предназначена для интерфейса WiMAX. |
QNetworkConfiguration::BearerEVDO |
9 |
Конфигурация предназначена для интерфейса EVDO (3G). |
QNetworkConfiguration::BearerLTE |
10 |
Конфигурация предназначена для интерфейса LTE (4G). |
enum QNetworkConfiguration::Purpose
Указывает назначение конфигурации.
| Константа | Значение | Описание |
|---|---|---|
QNetworkConfiguration::UnknownPurpose |
0 |
Конфигурация не указывает назначение. Это значение по умолчанию. |
QNetworkConfiguration::PublicPurpose |
1 |
Конфигурация может использоваться для общего доступа к интернету. |
QNetworkConfiguration::PrivatePurpose |
2 |
Конфигурация подходит для доступа к частной сети, например, к корпоративной интрасети. |
QNetworkConfiguration::ServiceSpecificPurpose |
3 |
Конфигурация может использоваться для операторских услуг (например, для получения сообщений MMS или потокового контента). |
enum QNetworkConfiguration::StateFlagflags QNetworkConfiguration::StateFlags
Указывает состояния конфигурации.
| Константа | Значение | Описание |
|---|---|---|
QNetworkConfiguration::Undefined |
0x0000001 |
Это состояние используется для временных конфигураций, таких как недавно обнаруженные WLAN, для которых пользователь ещё не создал конфигурацию. |
QNetworkConfiguration::Defined |
0x0000002 |
Определённые конфигурации известны системе, но не могут быть немедленно использованы (например, настроенная WLAN находится вне зоны действия или Ethernet-кабель не подключён к устройству). |
QNetworkConfiguration::Discovered |
0x0000006 |
Обнаруженная конфигурация может быть немедленно использована для создания нового QNetworkSession. Примером обнаруженной конфигурации может служить WLAN, находящийся в зоне действия. Если устройство выходит из зоны действия, флаг обнаружения снимается. Ещё одним примером является конфигурация GPRS, которая обычно остаётся обнаруженной, пока у устройства есть сетевое покрытие. Конфигурация в этом состоянии также имеет состояние QNetworkConfiguration::Defined. Если конфигурация относится к сетевым услугам, этот флаг устанавливается, если хотя бы одна из конфигураций базовых точек доступа находится в состоянии Discovered. |
QNetworkConfiguration::Active |
0x000000e |
Конфигурация в настоящее время используется открытой сетевой сессией (см. QNetworkSession::isOpen()). Однако это не означает, что текущий процесс является тем, кто создал открытую сессию. Это просто указывает, что если был бы создан новый QNetworkSession на основе этой конфигурации, то QNetworkSession::state() вернул бы QNetworkSession::Connected. Это состояние подразумевает состояние QNetworkConfiguration::Discovered. |
Тип StateFlags является typedef для QFlags<StateFlag>. Он хранит логическое ИЛИ комбинацию значений StateFlag.
enum QNetworkConfiguration::Type
Этот перечисление описывает тип конфигурации.
| Константа | Значение | Описание |
|---|---|---|
QNetworkConfiguration::InternetAccessPoint |
0 |
Конфигурация указывает детали для отдельной точки доступа. Обратите внимание, что конфигурации типа InternetAccessPoint могут быть частью других QNetworkConfigurations типа ServiceNetwork. |
QNetworkConfiguration::ServiceNetwork |
1 |
Конфигурация основана на группе QNetworkConfigurations типа InternetAccessPoint. Все члены группы могут достигать одной и той же целевой сети. Этот тип конфигурации является обязательным требованием для сессий роуминга. На некоторых платформах этот тип конфигурации также может называться точкой доступа к сети услуг (SNAP). |
QNetworkConfiguration::UserChoice |
2 |
Конфигурация является заглушкой, которая будет разрешена на платформе до фактической конфигурации при открытии сессии. В зависимости от платформы выбор может вызвать всплывающее диалоговое окно, спрашивающее у пользователя о его предпочтительном выборе. |
QNetworkConfiguration::Invalid |
3 |
Конфигурация недействительна. |
Документация по функциям-членам
QNetworkConfiguration::QNetworkConfiguration()
Создаёт объект недействительной конфигурации.
См. также isValid().
QNetworkConfiguration::QNetworkConfiguration(const QNetworkConfiguration &other)
Создаёт копию объекта QNetworkConfiguration, содержащегося в other.
QNetworkConfiguration::~QNetworkConfiguration()
Освобождает ресурсы, связанные с объектом QNetworkConfiguration.
BearerType QNetworkConfiguration::bearerType() const
Возвращает тип носителя, используемый этой сетевой конфигурацией.
Если тип носителя неизвестен, функция bearerTypeName() может быть использована для получения текстового имени типа носителя.
Недействительная сетевая конфигурация всегда возвращает значение BearerUnknown.
См. также bearerTypeName() и bearerTypeFamily().
BearerType QNetworkConfiguration::bearerTypeFamily() const
Возвращает семейство типов носителей, используемое этой сетевой конфигурацией. Следующая таблица показывает, как значения bearerType() сопоставляются со значениями bearerTypeFamily():
| Тип носителя | Семейство типов носителей |
|---|---|
| BearerUnknown, Bearer2G, BearerEthernet, BearerWLAN, BearerBluetooth | (тот же тип) |
| BearerCDMA2000, BearerEVDO, BearerWCDMA, BearerHSPA, Bearer3G | Bearer3G |
| BearerWiMAX, BearerLTE, Bearer4G | Bearer4G |
Недействительная сетевая конфигурация всегда возвращает значение BearerUnknown.
Эта функция была добавлена в Qt 5.2.
См. также bearerType() и bearerTypeName().
QString QNetworkConfiguration::bearerTypeName() const
Возвращает тип несущей, используемой этой сетевой конфигурацией, в виде строки.
Строка не переводится и поэтому не может быть показана пользователю. В следующей таблице показаны фиксированные соответствия между BearerType и именем типа несущей для известных типов. Если BearerType неизвестен, эта функция может вернуть дополнительную информацию, если она доступна; в противном случае возвращается пустая строка.
| BearerType | Значение |
|---|---|
| BearerUnknown | Сессия основана на неизвестном или неопределенном типе несущей. Значение возвращаемой строки описывает тип несущей. |
| BearerEthernet | Ethernet |
| BearerWLAN | WLAN |
| Bearer2G | 2G |
| Bearer3G | 3G |
| Bearer4G | 4G |
| BearerCDMA2000 | CDMA2000 |
| BearerWCDMA | WCDMA |
| BearerHSPA | HSPA |
| BearerBluetooth | Bluetooth |
| BearerWiMAX | WiMAX |
| BearerEVDO | EVDO |
| BearerLTE | LTE |
Эта функция возвращает пустую строку, если это недействительная конфигурация, сетевая конфигурация типа QNetworkConfiguration::ServiceNetwork или QNetworkConfiguration::UserChoice.
См. также bearerType() и bearerTypeFamily().
QList<QNetworkConfiguration> QNetworkConfiguration::children() const
Возвращает все подконфигурации этой сетевой конфигурации в порядке приоритета. Первая подконфигурация в списке имеет наивысший приоритет.
Только сетевые конфигурации типа ServiceNetwork могут иметь подконфигурации. В противном случае эта функция возвращает пустой список.
QString QNetworkConfiguration::identifier() const
Возвращает уникальный и специфичный для платформы идентификатор этой сетевой конфигурации; в противном случае пустую строку.
bool QNetworkConfiguration::isRoamingAvailable() const
Возвращает true если эта конфигурация поддерживает роуминг; в противном случае false.
bool QNetworkConfiguration::isValid() const
Возвращает true если этот объект QNetworkConfiguration является валидным. Конфигурация может стать невалидной, если пользователь удаляет конфигурацию или конфигурация была создана по умолчанию.
Добавление и удаление конфигураций может отслеживаться с помощью QNetworkConfigurationManager.
См. также QNetworkConfigurationManager.
QString QNetworkConfiguration::name() const
Возвращает видимое для пользователя имя этой конфигурации.
Имя может быть именем базовой точки доступа или именем сетевой службы, которую представляет эта конфигурация.
Purpose QNetworkConfiguration::purpose() const
Возвращает назначение этой конфигурации.
Поле назначения может использоваться для программно определения назначения конфигурации. Такая информация обычно содержится в метаданных точки доступа или сетевой службы.
StateFlags QNetworkConfiguration::state() const
Возвращает текущее состояние конфигурации.
void QNetworkConfiguration::swap(QNetworkConfiguration &other)
Меняет местами эту сетевую конфигурацию с other. Эта функция очень быстрая и никогда не терпит неудач.
Эта функция была добавлена в Qt 5.0.
Type QNetworkConfiguration::type() const
Возвращает тип конфигурации.
Конфигурация может представлять отдельную конфигурацию точки доступа или набор конфигураций точек доступа. Такой набор называется сетевой службой. Конфигурация, основанная на сетевой службе, может потенциально поддерживать роуминг сетевых сессий.
bool QNetworkConfiguration::operator!=(const QNetworkConfiguration &other) const
Возвращает true если эта конфигурация не совпадает с предоставленной конфигурацией other; в противном случае возвращает false.
QNetworkConfiguration &QNetworkConfiguration::operator=(QNetworkConfiguration &&other)
Оператор перемещения присваивания.
QNetworkConfiguration &QNetworkConfiguration::operator=(const QNetworkConfiguration &other)
Копирует содержимое объекта QNetworkConfiguration, содержащегося в other, в этот.
bool QNetworkConfiguration::operator==(const QNetworkConfiguration &other) const
Возвращает true, если эта конфигурация совпадает с предоставленной конфигурацией other; в противном случае возвращает false.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qnetworkconfiguration.html