summaryrefslogtreecommitdiffstats
path: root/src/imports/wifi/pluginmain.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/imports/wifi/pluginmain.cpp')
-rw-r--r--src/imports/wifi/pluginmain.cpp25
1 files changed, 13 insertions, 12 deletions
diff --git a/src/imports/wifi/pluginmain.cpp b/src/imports/wifi/pluginmain.cpp
index fdf07e9..51a2e7c 100644
--- a/src/imports/wifi/pluginmain.cpp
+++ b/src/imports/wifi/pluginmain.cpp
@@ -19,12 +19,14 @@
#include "qwifimanager.h"
#include <QtCore/QDir>
+#include <QtCore/QDebug>
#include <QtCore/QByteArray>
#include <QtQml/QQmlExtensionPlugin>
#include <QtQml/qqml.h>
+#ifdef Q_OS_ANDROID
#include <hardware_legacy/wifi.h>
-
+#endif
/*!
\qmltype Interface
\inqmlmodule Qt.labs.wifi
@@ -64,20 +66,19 @@ public:
Q_INVOKABLE bool wifiSupported() const
{
- bool supported = false;
- if (wifi_load_driver() == 0 && wifi_start_supplicant(0) == 0) {
- char interface[PROPERTY_VALUE_MAX];
- property_get("wifi.interface", interface, NULL);
- // standard linux kernel path
- QByteArray path;
- path.append("/sys/class/net/").append(interface);
- supported = QDir().exists(path.constData());
- if (!supported)
- qWarning() << "QWifiGlobal: could not find wifi interface in " << path;
+ bool hasInterface = QDir().exists(QStringLiteral("/sys/class/net/wlan0"));
+ if (!hasInterface)
+ qWarning() << "QWifiGlobal: could not find wifi interface in /sys/class/net/";
+#ifdef Q_OS_ANDROID
+ if (hasInterface && wifi_load_driver() == 0 && wifi_start_supplicant(0) == 0) {
+ return true;
} else {
qWarning() << "QWifiGlobal: wifi driver is not available";
+ return false;
}
- return supported;
+#else
+ return hasInterface;
+#endif
}
};