diff options
author | aavit <eirik.aavitsland@digia.com> | 2014-02-04 14:50:50 +0100 |
---|---|---|
committer | Eirik Aavitsland <eirik.aavitsland@digia.com> | 2014-02-05 12:23:36 +0200 |
commit | a7fe929aae9d5f71a776b4fc8d250b4fd304299f (patch) | |
tree | f80394c3b5fe41315f8dbc0832c479159c17ab52 /src | |
parent | daece6e6a90095fd99bf7b9b98c7e9ea955b1c3e (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.cpp | 30 |
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)) { |