Каскады Blackberry 10 - проверьте подключение к Интернету

Разрабатываю приложение для BB-10 с помощью веб-сервиса. Здесь я хочу проанализировать JSON как в методах получения, так и в методах публикации, и я хочу проверить доступность Интернета.

Как я могу это сделать?


person Vendetta    schedule 26.11.2012    source источник


Ответы (4)


Проверьте доступность Интернета, используя приведенный ниже код.

bool app::isNetworkAvailable() {
    QNetworkConfigurationManager netMgr;
    QList<QNetworkConfiguration> mNetList = netMgr.allConfigurations(QNetworkConfiguration::Active);

    return (mNetList.count() > 0 && netMgr.isOnline());
}
person SelvaRaman    schedule 15.12.2012
comment
Я запускаю это, но получаю только ложь. Есть ли какие-нибудь библиотеки, которые мне нужно добавить? И еще одна вещь: я не могу подключить WIFI в симуляторе Blackeberry-10. Пожалуйста, дайте мне какие-либо указания по этому поводу. - person alishaik786; 29.05.2013
comment
Я тестирую этот код на симуляторе, который он дает мне false. Подскажите пожалуйста как проверить на симуляторе? - person Mayank; 29.05.2013
comment
Это слишком долго. Его можно заменить одной строкой. Смотрите мой ответ ниже. - person lpapp; 28.12.2013
comment
Я также всегда ошибаюсь. Пожалуйста, дайте мне знать, если вы решили эту проблему - person Ramachandra Reddy Avula; 10.07.2014

Мой учитель создал компонент qml, который показывает, есть ли соединение и какое это соединение (Wi-Fi, Bluetooth, оператор связи и т. Д.). Он также отправляет сигнал при изменении состояния подключения или используемого интерфейса.

Код размещен на github: https://github.com/rodrigopex/CheckInternetMicroSample.

person Dielson Sales    schedule 28.11.2013

1.ФАЙЛ HPP

class controller : public QObject
{
 Q_OBJECT
public:
 controller(bb::cascades::Application *app);


public Q_SLOTS:
 void sendRequest(const QString &countryID);


private Q_SLOTS:

void onFinished();

};

2.ФАЙЛ CPP

void controller::sendRequest(const QString &countryID)
{

QNetworkAccessManager* networkAccessManager = new QNetworkAccessManager(this);

const QString queryUri = QString::fromLatin1("http://192.168.1.251:410/Mobile/Service1.svc/english/Category?CountryID=%1").arg(countryID);

QNetworkRequest request(queryUri);

QNetworkReply* reply = networkAccessManager->get(request);

bool ok = connect(reply, SIGNAL(finished()), this, SLOT(onFinished()));
 Q_ASSERT(ok);
 Q_UNUSED(ok);
}


void controller::onFinished()
{
 QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender());
 QString response;
 if (reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() == 200)
 {
 JsonDataAccess jda;
 QVariantMap map = jda.loadFromBuffer(reply->readAll()).toMap();

QVariantList addresses = map["GetCategoryResult"].toList();

foreach(QVariant var, addresses) {
 QVariantMap addressMap = var.toMap();

qDebug() << "CategoryName is " << addressMap["CategoryName"].toString();
 qDebug() << "CategoryID is " << addressMap["CategoryID"].toString();
 }
 }
 else {
 qDebug() << "Server returned code " << reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
 }
 }

СМОТРЕТЬ ЗДЕСЬ ПОЛНЫЙ КОД ----> http://supportforums.blackberry.com/t5/Native-Development/webservice-help-json/mp/2569953/highlight/false#M46724

person Rajesh Loganathan    schedule 05.09.2013

1) Вы можете проверить доступность Интернета следующим способом в соответствии с документацией :

bool QNetworkConfigurationManager :: isOnline () const

Возвращает true, если считается, что система подключена к другому устройству через активный сетевой интерфейс; в противном случае возвращает false.

2) Что касается битов json, вы можете использовать парсер json в Qt 5 следующим образом:

Поддержка JSON в Qt

Достаточно просто связать Qt 5 с вашим приложением, но мы надеемся, что скоро он будет доступен на платформе.

Qt 5 на BlackBerry 10 - за гранью мифа

В противном случае было бы очень просто перенести эти несколько классов в Qt 4.

person lpapp    schedule 28.12.2013