2012-11-26 16 views

risposta

5

controlla la disponibilità a Internet usando il codice seguente

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

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

corro questo, ma io sono sempre "false" solo. C'è qualche biblioteca che devo aggiungere. E ancora una cosa non riesco a collegare il WIFI nel simulatore Blackeberry-10. Per favore, dammi qualche indicazione in merito. – alishaik786

+1

Sto testando questo codice su un simulatore che mi sta dando 'false'. Per favore, spiega come controllare il simulatore? – Mayank

+0

Questo è superfluo lungo. Questo può essere sostituito da una riga. Vedi la mia risposta qui sotto. – 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(); 
} 
} 

vedi codice completo qui ---->http://supportforums.blackberry.com/t5/Native-Development/webservice-help-json/m-p/2569953/highlight/false#M46724

1

Il mio insegnante ha creato un componente QML che indica se v'è collegamento e che tipo di connessione è (WiFi, Bluetooth, supporto, ecc). Invia anche un segnale quando lo stato della connessione o l'interfaccia utilizzata è cambiata.

Il codice è ospitato presso GitHub: https://github.com/rodrigopex/CheckInternetMicroSample

0

1) È possibile controllare Internet disponibile con il seguente metodo secondo documentation:

QNetworkConfigurationManager bool :: IsOnline) const (

Restituisce true se il sistema viene considerato connesso a un altro dispositivo tramite un'interfaccia di rete attiva; altrimenti restituisce falso.

2) Per quanto riguarda i bit JSON, è possibile utilizzare il parser JSON in Qt 5 come segue:

JSON Support in Qt

E 'abbastanza semplice da impacchettare Qt 5 againt la vostra applicazione, ma sarà speriamo disponibile presto sulla piattaforma.

Qt 5 on BlackBerry 10 - Beyond the Myth

In mancanza di ciò, sarebbe molto semplice da backport quelle poche classi per Qt 4.