Документация
ОС Аврора 4.1.0

Проверка доступности сети

Разработчику приложений для ОС Аврора доступны несколько способов проверить сетевое соединение, используя методы API Qt Network. При этом для приложения должно быть указано разрешение Internet в desktop-файле.

Метод QNetworkConfigurationManager::isOnline() в ОС Аврора до версии 4.0.2 включительно проверяет доступность адреса ipv4.omprussia.ru. Начиная с версии 4.1.0 администратор мобильного устройства может настроить адрес, используемый для проверки. Метод возвращает true, если указанный адрес доступен с мобильного устройства, в противном случае возвращает false.

Пример использования:

QNetworkConfigurationManager mgr;
QList<QNetworkConfiguration> activeConfigs = mgr.allConfigurations(QNetworkConfiguration::Active);
if (activeConfigs.count() > 0)
    Q_ASSERT(mgr.isOnline());
else
    Q_ASSERT(!mgr.isOnline());

Метод void QNetworkAccessManager::connectToHost(const QString &hostName, quint16 port = 80) инициирует соединение с хостом, заданным именем hostName и портом port. Данный метод полезен для установки соединения по протоколу TCP с хостом до того, как будет выполнен HTTP-запрос, с целью уменьшения задержки сети.

Метод не имеет возможности сообщать об ошибках.

Пример использования:

QNetworkAccessManager *manager = new QNetworkAccessManager();
manager->connectToHost("https://auroraos.ru");

Метод int QHostInfo::lookupHost(const QString &name, QObject *receiver, const char *member) определяет IP-адреса, связанные с именем хоста name, и возвращает идентификатор ID для поиска. При завершении поиска слот или сигнал member объекта receiver вызывается с аргументом типа QHostInfo, который можно использовать для получения результата поиска.

Поиск выполняется одним вызовом функции, например:

QHostInfo::lookupHost("www.auroraos.ru", this, SLOT(lookedUp(QHostInfo)));

Примечание. Если устройство подключено к Аврора Центр, рекомендуется использовать адрес его сервера для проверки подключения.

Пример слота выводит основную информацию о возвращаемых адресах или сообщает об ошибке, если поиск не удался:

void MyClass::lookedUp(const QHostInfo &host)
{
    if (host.error() != QHostInfo::NoError) {
        qDebug() << "Lookup failed:" << host.errorString();
        return;
    }

    foreach (const QHostAddress &address, host.addresses())
        qDebug() << "Found address:" << address.toString();
}

В качестве значения параметра name можно передать IP-адрес. В этом случае метод QHostInfo будет искать доменное имя для IP (т.е. QHostInfo выполнит обратный поиск). В случае успеха результирующий QHostInfo будет содержать как разрешённое доменное имя, так и IP-адреса для имени хоста. Примеры:

// Поиск IP-адреса по URL
QHostInfo::lookupHost("www.auroraos.ru", this, SLOT(lookedUp(QHostInfo)));
// Поиск имени хоста по IP-адресу
QHostInfo::lookupHost("185.129.100.112", this, SLOT(lookedUp(QHostInfo)));

В случае запуска нескольких запросов с помощью lookupHost() порядок отправки сигналов может быть произвольным.

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.