added ubuntu support
diff --git a/plugin.xml b/plugin.xml
index 55c4225..c5a79f5 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -66,6 +66,17 @@
     </platform>
 
 
+    <!-- ubuntu -->
+    <platform name="ubuntu">
+        <config-file target="config.xml" parent="/*">
+            <feature name="Camera">
+                <param policy_group="connectivity" policy_version="1" />
+            </feature>
+        </config-file>
+        <header-file src="src/ubuntu/network_information.h" />
+        <source-file src="src/ubuntu/network_information.cpp" />
+    </platform>
+
     <!-- ios -->
     <platform name="ios">    
         <config-file target="config.xml" parent="/*">
diff --git a/src/ubuntu/network_information.cpp b/src/ubuntu/network_information.cpp
new file mode 100644
index 0000000..8fdb494
--- /dev/null
+++ b/src/ubuntu/network_information.cpp
@@ -0,0 +1,63 @@
+/*
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+#include "network_information.h"
+
+void NetworkInformation::getConnectionInfo(int scId, int ecId) {
+    Q_UNUSED(ecId);
+
+    QString result;
+    QNetworkInfo::NetworkMode networkMode = m_systemNetworkInfo.currentNetworkMode();
+    QNetworkInfo::NetworkStatus networkStatus = m_systemNetworkInfo.networkStatus(networkMode, 0);
+    QNetworkInfo::CellDataTechnology cellDataTechnology = m_systemNetworkInfo.currentCellDataTechnology(0);
+
+    if (networkStatus == QNetworkInfo::NoNetworkAvailable)
+        result = "Connection.NONE";
+
+    switch (networkMode) {
+    case QNetworkInfo::WimaxMode:
+    case QNetworkInfo::WlanMode:
+        result = "Connection.WIFI";
+        break;
+    case QNetworkInfo::EthernetMode:
+        result = "Connection.ETHERNET";
+        break;
+    case QNetworkInfo::LteMode:
+        result = "Connection.CELL_4G";
+        break;
+    case QNetworkInfo::GsmMode:
+    case QNetworkInfo::CdmaMode:
+    case QNetworkInfo::TdscdmaMode:
+    case QNetworkInfo::WcdmaMode:
+        switch (cellDataTechnology) {
+        case QNetworkInfo::UmtsDataTechnology:
+        case QNetworkInfo::HspaDataTechnology:
+            result = "Connection.CELL_3G";
+            break;
+        case QNetworkInfo::EdgeDataTechnology:
+        case QNetworkInfo::GprsDataTechnology:
+            result = "Connection.CELL_2G";
+            break;
+        case QNetworkInfo::UnknownDataTechnology:
+            result = "Connection.UNKNOWN";
+            break;
+        }
+    case QNetworkInfo::BluetoothMode:
+    case QNetworkInfo::UnknownMode:
+        result = "Connection.UNKNOWN";
+        break;
+    }
+
+    this->callback(scId, result);
+}
diff --git a/src/ubuntu/network_information.h b/src/ubuntu/network_information.h
new file mode 100644
index 0000000..aca20e7
--- /dev/null
+++ b/src/ubuntu/network_information.h
@@ -0,0 +1,47 @@
+/*
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+#ifndef NETWORK_INFORMATION_H
+#define NETWORK_INFORMATION_H
+
+#include <cplugin.h>
+
+#include <QtSystemInfo>
+#include <QtCore>
+
+class NetworkInformation: public CPlugin {
+    Q_OBJECT
+public:
+    explicit NetworkInformation(Cordova *cordova): CPlugin(cordova) {}
+
+    virtual const QString fullName() override {
+        return NetworkInformation::fullID();
+    }
+
+    virtual const QString shortName() override {
+        return "Connection";
+    }
+
+    static const QString fullID() {
+        return "NetworkStatus";
+    }
+
+public slots:
+    void getConnectionInfo(int scId, int ecId);
+
+private:
+    QNetworkInfo m_systemNetworkInfo;
+};
+
+#endif