diff options
Diffstat (limited to 'src/imports/wifi/pluginmain.cpp')
-rw-r--r-- | src/imports/wifi/pluginmain.cpp | 25 |
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 } }; |