黑莓10水瀑 - 检查网络连接

6
我正在使用web服务开发一个BB-10应用程序。在此过程中,我希望能够在get和post方法中解析JSON,并检查网络连接是否可用。
请问如何实现这些功能?
4个回答

5

使用以下代码检查互联网可用性

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

    return (mNetList.count() > 0 && netMgr.isOnline());
}

1
我运行了这个程序,但是只得到了一个“false”的结果。是否有任何库需要添加?还有一件事情,我无法在Blackberry-10模拟器上连接WIFI。请给我关于此事的任何指导。 - alishaik786
1
我正在模拟器上测试该代码,它返回了 false。请告诉我如何检查模拟器? - Mayank
这太冗长了。可以用一行代码替代。请看下面我的答案。 - László Papp
我也总是得到“false”。如果您解决了这个问题,请告诉我。 - Ramachandra Reddy Avula

1

我的老师创建了一个 QML 组件,用于显示连接状态以及连接类型(Wi-Fi、蓝牙、载波等),当连接状态或接口发生变化时,该组件还会发送信号。

该代码托管在 Github 上: https://github.com/rodrigopex/CheckInternetMicroSample


0

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/m-p/2569953/highlight/false#M46724


0

1) 您可以根据文档中的以下方法检查Internet的可用性:

bool QNetworkConfigurationManager::isOnline() const

如果系统通过活动网络接口连接到另一个设备,则返回true;否则返回false。

2) 至于json位,您可以使用Qt 5中的json解析器,如下所示:

Qt中的JSON支持

将Qt 5与应用程序捆绑在一起足够简单,但希望它很快可以在平台上使用。

BlackBerry 10上的Qt 5——超越神话

如果失败,将这几个类回溯到Qt 4将非常简单。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接