129 lines
1.6 KiB
C++
129 lines
1.6 KiB
C++
/*!
|
|
* \copyright Copyright (c) 2015-2019 Governikus GmbH & Co. KG, Germany
|
|
*/
|
|
|
|
#include "DeviceInfo.h"
|
|
|
|
#ifdef Q_OS_ANDROID
|
|
#include <QtAndroidExtras/QAndroidJniObject>
|
|
#endif
|
|
|
|
#include <QDebug>
|
|
|
|
using namespace governikus;
|
|
|
|
DeviceInfo::DeviceInfo()
|
|
{
|
|
}
|
|
|
|
|
|
DeviceInfo::~DeviceInfo()
|
|
{
|
|
}
|
|
|
|
|
|
#ifdef Q_OS_ANDROID
|
|
QString DeviceInfo::getField(const char* const pField)
|
|
{
|
|
QAndroidJniObject field = QAndroidJniObject::getStaticObjectField("android/os/Build", pField, "Ljava/lang/String;");
|
|
if (field == nullptr || !field.isValid())
|
|
{
|
|
qCritical() << "Cannot get field:" << pField;
|
|
return QString();
|
|
}
|
|
|
|
return field.toString();
|
|
}
|
|
|
|
|
|
#endif
|
|
|
|
QString DeviceInfo::getPrettyInfo()
|
|
{
|
|
return QStringLiteral("%1 (%2)").arg(getName(), getFingerprint());
|
|
}
|
|
|
|
|
|
QString DeviceInfo::getName()
|
|
{
|
|
#ifdef Q_OS_ANDROID
|
|
return getField("MODEL");
|
|
|
|
#else
|
|
return QSysInfo::machineHostName();
|
|
|
|
#endif
|
|
}
|
|
|
|
|
|
QString DeviceInfo::getFingerprint()
|
|
{
|
|
#ifdef Q_OS_ANDROID
|
|
return getField("FINGERPRINT");
|
|
|
|
#else
|
|
return QString();
|
|
|
|
#endif
|
|
}
|
|
|
|
|
|
QString DeviceInfo::getOSBuildNumber()
|
|
{
|
|
#ifdef Q_OS_ANDROID
|
|
return getField("DISPLAY");
|
|
|
|
#else
|
|
return QString();
|
|
|
|
#endif
|
|
}
|
|
|
|
|
|
QString DeviceInfo::getOSVersion()
|
|
{
|
|
return QSysInfo::productVersion();
|
|
}
|
|
|
|
|
|
QString DeviceInfo::getKernelVersion()
|
|
{
|
|
return QSysInfo::kernelVersion();
|
|
}
|
|
|
|
|
|
QString DeviceInfo::getVendor()
|
|
{
|
|
#ifdef Q_OS_ANDROID
|
|
return getField("MANUFACTURER");
|
|
|
|
#else
|
|
return QString();
|
|
|
|
#endif
|
|
}
|
|
|
|
|
|
QString DeviceInfo::getModelNumber()
|
|
{
|
|
#ifdef Q_OS_ANDROID
|
|
return getField("MODEL");
|
|
|
|
#else
|
|
return QString();
|
|
|
|
#endif
|
|
}
|
|
|
|
|
|
QString DeviceInfo::getModelName()
|
|
{
|
|
#ifdef Q_OS_ANDROID
|
|
return getField("PRODUCT");
|
|
|
|
#else
|
|
return QString();
|
|
|
|
#endif
|
|
}
|