bool QConnectionManager::connectToNetworkService(const QString &servicePath) { qDebug() << servicePath << netman->state(); if (!servicesMap.contains(servicePath) || !serviceInProgress.isEmpty()) return false; NetworkTechnology technology; QString type = servicesMap.value(servicePath)->type(); if (type.isEmpty()) return false; technology.setPath(netman->technologyPathForType(type)); if (technology.powered()) { if (servicePath.contains("cellular")) { QOfonoManager oManager; if (!oManager.available()) { qDebug() << "ofono not available."; return false; } if (oManager.modems().count() < 1) return false; QOfonoNetworkRegistration ofonoReg; ofonoReg.setModemPath(oManager.modems().at(0)); if (ofonoReg.status() != "registered" && ofonoReg.status() != "roaming") { //not on any cell network so bail qDebug() << "ofono is not registered yet"; return false; } QOfonoConnectionManager oConnManager; oConnManager.setModemPath(oManager.modems().at(0)); //isCellRoaming if (servicesMap.value(servicePath)->roaming() && !oConnManager.roamingAllowed()) { //roaming and user doesnt want connection while roaming qDebug() << "roaming not allowed"; return false; } requestConnect(servicePath); } else { requestConnect(servicePath); } } return true; }
void Tst_qofonoTest::testScan() { QOfonoManager manager; QOfonoModem modem; modem.setModemPath(manager.modems()[0]); QOfonoNetworkRegistration netreg; netreg.setModemPath(manager.modems()[0]); QSignalSpy spy_scanFinished(&netreg, SIGNAL(scanFinished())); QSignalSpy spy_scanError(&netreg, SIGNAL(scanError(QString))); netreg.scan(); ::waitForSignal(&netreg, SIGNAL(scanFinished()), 1000 * 500); QCOMPARE(spy_scanError.count(),0); QCOMPARE(spy_scanFinished.count(),1); }