2012-11-26 12 views

Antwort

5

Überprüfen Sie das Internet Verfügbarkeit den Code unten

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

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

ich diese laufen zurückzuportieren, aber ich bin „false“ nur zu bekommen. Gibt es Bibliotheken, die ich hinzufügen muss? Und noch etwas, ich bin nicht in der Lage, das WLAN in Blackberry-10-Simulator zu verbinden. Bitte geben Sie mir eine Anleitung dazu. – alishaik786

+1

Ich teste diesen Code auf einem Simulator es gibt mir 'false'. Bitte sagen, wie man nach dem Simulator sucht? – Mayank

+0

Das ist überflüssig lang. Dies kann durch eine Zeile ersetzt werden. Siehe meine Antwort unten. – 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 mit

FULL CODE Here ---->http://supportforums.blackberry.com/t5/Native-Development/webservice-help-json/m-p/2569953/highlight/false#M46724

1

Mein Lehrer erstellt eine qml-Komponente, die es zeigt, wenn die Verbindung ist und welche Art von Verbindung ist es (Wi-Fi, Bluetooth, Träger usw.). Es sendet auch ein Signal, wenn sich der Verbindungsstatus oder die verwendete Schnittstelle geändert hat.

Der Code wird bei Github gehostet: https://github.com/rodrigopex/CheckInternetMicroSample

0

1) Sie das Internet nach dem folgenden Verfahren verfügbar überprüfen kann wie pro documentation:

Bool QNetworkConfigurationManager :: IsOnline() const

Gibt true zurück, wenn das System über eine aktive Netzwerkschnittstelle als mit einem anderen Gerät verbunden betrachtet wird; Andernfalls wird false zurückgegeben.

2) Was die json Bits, könnten Sie die Json-Parser in Qt 5 wie folgt verwenden:

JSON Support in Qt

Es ist einfach genug Qt 5 Againt Ihre Anwendung zu bündeln, aber es wird hoffentlich bald auf der Plattform verfügbar.

Qt 5 on BlackBerry 10 - Beyond the Myth

dass Andernfalls wäre es sehr einfach sein, die wenigen Klassen Qt 4.