summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authoraavit <eirik.aavitsland@digia.com>2014-02-04 14:50:50 +0100
committerEirik Aavitsland <eirik.aavitsland@digia.com>2014-02-05 12:23:36 +0200
commita7fe929aae9d5f71a776b4fc8d250b4fd304299f (patch)
treef80394c3b5fe41315f8dbc0832c479159c17ab52 /src
parentdaece6e6a90095fd99bf7b9b98c7e9ea955b1c3e (diff)
Fixes: get/set hostname & ipadress on eandroid
And generally simplify by sharing implementation between linux and android when possible. Change-Id: I572f1076cd5f9df7f7a3ab94b9b30d575a962915 Reviewed-by: Samuli Piippo <samuli.piippo@digia.com> Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/utils/qdroidutils.cpp30
1 files changed, 10 insertions, 20 deletions
diff --git a/src/utils/qdroidutils.cpp b/src/utils/qdroidutils.cpp
index 0952345..52b9fb3 100644
--- a/src/utils/qdroidutils.cpp
+++ b/src/utils/qdroidutils.cpp
@@ -20,16 +20,15 @@
#include <unistd.h>
#include <QDebug>
#include <math.h>
-
-#ifdef Q_OS_ANDROID_NO_SDK
-#include <cutils/android_reboot.h>
-#include <hardware/lights.h>
-#include <media/AudioSystem.h>
-#else
#include <sys/reboot.h>
#include <QNetworkInterface>
#include <QHostInfo>
#include <QFile>
+
+#ifdef Q_OS_ANDROID_NO_SDK
+#include <cutils/properties.h>
+#include <hardware/lights.h>
+#include <media/AudioSystem.h>
#endif
/*!
@@ -40,11 +39,7 @@
void QDroidUtils::rebootSystem()
{
sync();
-#ifdef Q_OS_ANDROID_NO_SDK
- (void)android_reboot(ANDROID_RB_RESTART, 0, 0);
-#else
reboot(RB_AUTOBOOT);
-#endif
qWarning("reboot returned");
}
@@ -56,11 +51,7 @@ void QDroidUtils::rebootSystem()
void QDroidUtils::powerOffSystem()
{
sync();
-#ifdef Q_OS_ANDROID_NO_SDK
- (void)android_reboot(ANDROID_RB_POWEROFF, 0, 0);
-#else
reboot(RB_POWER_OFF);
-#endif
qWarning("powerOff returned");
}
@@ -234,16 +225,12 @@ bool QDroidUtils::setDisplayBrightness(quint8 value)
QString QDroidUtils::getIPAddress()
{
QStringList addresses;
-#ifdef Q_OS_ANDROID_NO_SDK
- qDebug("QDroidUtils::getIPAddress()");
-#else
QNetworkInterface interface = QNetworkInterface::interfaceFromName("eth0");
QList<QNetworkAddressEntry> entries;
entries = interface.addressEntries();
foreach (const QNetworkAddressEntry &entry, entries) {
addresses.append(entry.ip().toString().split('%').first());
}
-#endif
return addresses.join(QStringLiteral(", "));
}
@@ -254,7 +241,10 @@ QString QDroidUtils::getHostname()
{
QString hostname;
#ifdef Q_OS_ANDROID_NO_SDK
- qDebug("QDroidUtils::getHostname()");
+ char prop_value[PROPERTY_VALUE_MAX];
+ int len = property_get("net.hostname", prop_value, 0);
+ if (len)
+ hostname = QString::fromLocal8Bit(prop_value, len);
#else
hostname = QHostInfo::localHostName();
#endif
@@ -267,7 +257,7 @@ QString QDroidUtils::getHostname()
bool QDroidUtils::setHostname(QString hostname)
{
#ifdef Q_OS_ANDROID_NO_SDK
- qDebug("QDroidUtils::setHostname()");
+ property_set("net.hostname", hostname.toLocal8Bit().constData());
#else
QFile file("/etc/hostname");
if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {