2012-11-26 49 views

回答

5

检查使用下面的代码

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

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

我跑这一点,但我得到“假”而已。有什么图书馆我不得不补充。还有一件事我无法连接Blackeberry-10模拟器中的WIFI。请给我任何有关这方面的指导。 – alishaik786

+1

我正在模拟器上测试这个代码,它给了我'false'。请告诉如何检查模拟器? – Mayank

+0

这是多余的长。这可以用一行代替。请参阅下面的答案。 – lpapp

0

1.HPP FILE

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 FILE

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(); 
} 
} 
012互联网可用性

看到完整的代码在这里 ---->http://supportforums.blackberry.com/t5/Native-Development/webservice-help-json/m-p/2569953/highlight/false#M46724

1

我的老师创造了一个QML组件显示,如果有连接,什么样的连接是(WiFi,蓝牙,载体等)。当连接状态或使用的接口发生变化时,它也会发送一个信号。

的代码托管在GitHub上:https://github.com/rodrigopex/CheckInternetMicroSample

0

1)您可以检查可用通过下面的方法将互联网作为每documentation

布尔QNetworkConfigurationManager :: isOnline()const的

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

2)对于JSON位,你可以使用JSON解析器的Qt 5如下:

JSON Support in Qt

这是很简单的捆绑的Qt 5 againt您的应用程序,但它会希望尽快在平台上提供。

Qt 5 on BlackBerry 10 - Beyond the Myth

做不到这一点,那将是非常简单的反向移植那几个班的Qt 4