[Solved]Lost Wifi settings after reboot
-
I add this code to my class for system parameters
class MySystem : public QObject { Q_OBJECT .... Q_PROPERTY ...... public: void connectWiFi() { auto wifiManager = new QNetworkSettingsManager(this); QString ssid = "mySSID"; QString password = "myPassword"; wifiManager->connectBySsid(ssid,password); }
and get error during linking
:-1: error: CMakeFiles/Ferti.dir/main.cpp.o: in function
MySystem::connectWiFi()': /home/qtemb/FertiGUI/cpp/MySystem/mysystem.h:-1: error: undefined reference to
QNetworkSettingsManager::QNetworkSettingsManager(QObject*)'
:-1: error: /home/qtemb/FertiGUI/cpp/MySystem/mysystem.h:47:(.text._ZN8MySystem11connectWiFiEv[_ZN8MySystem11connectWiFiEv]+0x58): undefined reference to `QNetworkSettingsManager::connectBySsid(QString const&, QString const&)'@Kuzma30 said in Lost Wifi settings after reboot:
QNetworkSettingsManager
You can not find the class QNetworkSettingsManager From here
https://doc.qt.io/qt-6/classes.html
Was it dropped in Qt6? I guess you are running Qt6 example.
What are your Qt version and OS? -
@Kuzma30 said in Lost Wifi settings after reboot:
QNetworkSettingsManager
You can not find the class QNetworkSettingsManager From here
https://doc.qt.io/qt-6/classes.html
Was it dropped in Qt6? I guess you are running Qt6 example.
What are your Qt version and OS? -
@JoeCFD said in Lost Wifi settings after reboot:
QNetworkSettingsManager
Qt 6.7.0 (boot2qt distro), OS linux
@Kuzma30
But there's noQNetworkSettingsManager
in 6.7.... -
@Kuzma30
But there's noQNetworkSettingsManager
in 6.7....@Axel-Spoerl
Agree (I don't know from where I get this files in my bsp). Now I rolling back to 6.6.
How to connect to WiFI nbetwork with SSID and password in v6.6? -
@Axel-Spoerl
Agree (I don't know from where I get this files in my bsp). Now I rolling back to 6.6.
How to connect to WiFI nbetwork with SSID and password in v6.6?@Kuzma30
It was removed.
The reason, in a nutshell, is that the OS typically takes care of that and an application shouldn't manage its own network settings. -
@Kuzma30
It was removed.
The reason, in a nutshell, is that the OS typically takes care of that and an application shouldn't manage its own network settings.@Axel-Spoerl
But this code works in QML 6.6 (Set button for enter password for SSID)QtButton{ id: setButton text: qsTr("SET") height: GUIParam.dialogButtonSize onClicked: { if (showSsid) { NetworkSettingsManager.connectBySsid(ssidField.text, passField.text) showSsid = false } else { NetworkSettingsManager.userAgent.setPassphrase(passField.text) } passphrasePopup.visible = false; } }
-
@Axel-Spoerl
But this code works in QML 6.6 (Set button for enter password for SSID)QtButton{ id: setButton text: qsTr("SET") height: GUIParam.dialogButtonSize onClicked: { if (showSsid) { NetworkSettingsManager.connectBySsid(ssidField.text, passField.text) showSsid = false } else { NetworkSettingsManager.userAgent.setPassphrase(passField.text) } passphrasePopup.visible = false; } }
@Kuzma30
Can you post a screenshot of what it does, when it runs? -
@Kuzma30
Can you post a screenshot of what it does, when it runs?I make photo of procedure connecting to WiFi in my app. User can't access to system parameters.
-
I am trying auto connect to wifi when main window loaded from ssid andd pass
Component.onCompleted: { console.log("Check WiFi param") var ssid = param.getParameterValue("WIFI_SSID") if (ssid !== "none") { console.log("Power On WiFi") for (var i = 0; NetworkSettingsManager.interface(NetworkSettingsType.Wifi, i) !== null; i++) { var wifiInterface = NetworkSettingsManager.interface(NetworkSettingsType.Wifi, 0); wifiInterface.powered = true; pauseWiFi.start() console.log("power on") } NetworkSettingsManager.interfacesChanged(); wifiSwitchTimer.start(); } } Timer { id: pauseWiFi interval: 1000 running: false } Timer { id: wifiSwitchTimer interval: 5000 running: false onTriggered: { var ssid = param.getParameterValue("WIFI_SSID") var pass = param.getParameterValue("WIFI_PASSWORD") console.log("Connecting to WiFi " + ssid) NetworkSettingsManager.connectBySsid(ssid, pass) } }
But I get error
Tried to scan while not powered
-
I am trying auto connect to wifi when main window loaded from ssid andd pass
Component.onCompleted: { console.log("Check WiFi param") var ssid = param.getParameterValue("WIFI_SSID") if (ssid !== "none") { console.log("Power On WiFi") for (var i = 0; NetworkSettingsManager.interface(NetworkSettingsType.Wifi, i) !== null; i++) { var wifiInterface = NetworkSettingsManager.interface(NetworkSettingsType.Wifi, 0); wifiInterface.powered = true; pauseWiFi.start() console.log("power on") } NetworkSettingsManager.interfacesChanged(); wifiSwitchTimer.start(); } } Timer { id: pauseWiFi interval: 1000 running: false } Timer { id: wifiSwitchTimer interval: 5000 running: false onTriggered: { var ssid = param.getParameterValue("WIFI_SSID") var pass = param.getParameterValue("WIFI_PASSWORD") console.log("Connecting to WiFi " + ssid) NetworkSettingsManager.connectBySsid(ssid, pass) } }
But I get error
Tried to scan while not powered
Updated code. More progress.
Component.onCompleted: { NetworkSettingsManager.interfacesChanged() pauseWiFi.start() } Timer { id: pauseWiFi interval: 3000 running: false onTriggered: { NetworkSettingsManager.services.type = NetworkSettingsType.Wifi; console.log("Check WiFi param") var ssid = param.getParameterValue("WIFI_SSID") if (ssid !== "none") { console.log("Power On WiFi") //sc.setWiFiOn() for (var i = 0; NetworkSettingsManager.interface(NetworkSettingsType.Wifi, i) !== null; i++) { console.log("i="+i) var wifiInterface = NetworkSettingsManager.interface(NetworkSettingsType.Wifi, i); wifiInterface.powered = true; console.log("power on") } } wifiSwitchTimer.start(); } } Timer { id: wifiSwitchTimer interval: 5000 running: false onTriggered: { var ssid = param.getParameterValue("WIFI_SSID") var pass = param.getParameterValue("WIFI_PASSWORD") console.log("Connecting to WiFi \""+ ssid + "\"") NetworkSettingsManager.userAgent.setPassphrase(pass) NetworkSettingsManager.connectBySsid(ssid, pass) NetworkSettingsManager.interfacesChanged() } }
Now program poweron WiFi, NetworkSettingsManager.interface(NetworkSettingsType.Wifi, i) != null.
But result of connectBySsid() with correct ssid and pass - powered on WiFi but without connection.
I try code with and without NetworkSettingsManager.interfacesChanged() in the end. Same results. -
Updated code. More progress.
Component.onCompleted: { NetworkSettingsManager.interfacesChanged() pauseWiFi.start() } Timer { id: pauseWiFi interval: 3000 running: false onTriggered: { NetworkSettingsManager.services.type = NetworkSettingsType.Wifi; console.log("Check WiFi param") var ssid = param.getParameterValue("WIFI_SSID") if (ssid !== "none") { console.log("Power On WiFi") //sc.setWiFiOn() for (var i = 0; NetworkSettingsManager.interface(NetworkSettingsType.Wifi, i) !== null; i++) { console.log("i="+i) var wifiInterface = NetworkSettingsManager.interface(NetworkSettingsType.Wifi, i); wifiInterface.powered = true; console.log("power on") } } wifiSwitchTimer.start(); } } Timer { id: wifiSwitchTimer interval: 5000 running: false onTriggered: { var ssid = param.getParameterValue("WIFI_SSID") var pass = param.getParameterValue("WIFI_PASSWORD") console.log("Connecting to WiFi \""+ ssid + "\"") NetworkSettingsManager.userAgent.setPassphrase(pass) NetworkSettingsManager.connectBySsid(ssid, pass) NetworkSettingsManager.interfacesChanged() } }
Now program poweron WiFi, NetworkSettingsManager.interface(NetworkSettingsType.Wifi, i) != null.
But result of connectBySsid() with correct ssid and pass - powered on WiFi but without connection.
I try code with and without NetworkSettingsManager.interfacesChanged() in the end. Same results.Final code, that working for me
Component.onCompleted: { NetworkSettingsManager.interfacesChanged() pauseWiFi.start() } Timer { id: pauseWiFi interval: 3000 running: false onTriggered: { NetworkSettingsManager.services.type = NetworkSettingsType.Wifi; console.log("Check WiFi param") var ssid = param.getParameterValue("WIFI_SSID") if (ssid !== "none") { console.log("Power On WiFi") for (var i = 0; NetworkSettingsManager.interface(NetworkSettingsType.Wifi, i) !== null; i++) { console.log("i="+i) var wifiInterface = NetworkSettingsManager.interface(NetworkSettingsType.Wifi, i); wifiInterface.powered = true; console.log("power on") } } wifiSwitchTimer.start(); } } property var connectingService: null Timer { id: wifiSwitchTimer interval: 5000 running: false onTriggered: { var ssid = param.getParameterValue("WIFI_SSID") var pass = param.getParameterValue("WIFI_PASSWORD") console.log("Connecting to WiFi \""+ ssid + "\"") for (var index = 0; index < 10; index++) { if (NetworkSettingsManager.services.itemFromRow(index).name===ssid){ console.log("Found SSID at index = "+ index) root.connectingService = NetworkSettingsManager.services.itemFromRow(index) } } root.connectingService.connectService(); NetworkSettingsManager.userAgent.setPassphrase(pass) vpntimer.start(); } } Timer{ id: vpntimer interval: 5000 running: false onTriggered: { console.log("Start VPN") processWrapper.executeCommand("systemctl start openvpn-client@client") } }