2012-11-26 3 views
6

웹 서비스를 사용하여 BB-10 용 응용 프로그램을 개발 중입니다. 여기에서는 get 및 post 메서드에서 JSON을 구문 분석하고 인터넷 가용성을 확인하려고합니다.Blackberry 10 cascades - 인터넷 연결 확인

어떻게하면됩니까?

답변

5

확인 아래 코드

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

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

내가 이것을 실행에 그 몇 가지 클래스를 백 포트 매우 간단 할 것입니다,하지만 난 단지 "false"를 얻고있다. 추가해야 할 라이브러리가 있습니까? 그리고 Blackeberry-10 시뮬레이터에서 WIFI를 연결할 수 없습니다. 이에 관한 안내를 해주십시오. – alishaik786

+1

시뮬레이터에서이 코드를 테스트 중이므로'false'가 표시됩니다. 시뮬레이터를 확인하는 방법을 알려주십시오. – Mayank

+0

이것은 너무 길다. 이것은 한 행으로 대체 될 수 있습니다. 아래 내 대답을 참조하십시오. – lpapp

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(); 
} 
} 
012을 사용하여 인터넷 가능

3,516,은 여기에 전체 코드를 볼 ---->http://supportforums.blackberry.com/t5/Native-Development/webservice-help-json/m-p/2569953/highlight/false#M46724

1

선생님이 연결하고는 (등 와이파이, 블루투스, 캐리어) 연결의 어떤 종류의 경우 표시하는 QML 구성 요소를 만들었습니다. 또한 연결 상태 또는 사용 된 인터페이스가 변경되면 신호를 보냅니다.

코드는 GitHub의에서 호스팅 : https://github.com/rodrigopex/CheckInternetMicroSample

0

1) 당신은 documentation에 따라 다음과 같은 방법으로 사용할 수있는 인터넷을 확인할 수 있습니다

부울 QNetworkConfigurationManager :: isOnline()을 const

시스템이 활성 네트워크 인터페이스를 통해 다른 장치에 연결되어있는 것으로 간주되면 true를 반환합니다. 그렇지 않으면 false를 반환합니다. 다음과 같이

2)는 JSON 비트에 관해서는, 당신은 Qt는 5에서 JSON 파서를 사용할 수 있습니다 : 응용 프로그램의 againt Qt는 5 번들 정도로 간단하다

JSON Support in Qt

을하지만 것 곧 플랫폼에서 사용할 수 있기를 바랍니다. 그 실패

Qt 5 on BlackBerry 10 - Beyond the Myth

, Qt는 4