AusweisApp2/src/global/DeviceInfo.cpp

70 lines
1009 B
C++
Raw Normal View History

2017-07-03 09:30:10 +02:00
/*!
2018-03-28 15:10:51 +02:00
* \copyright Copyright (c) 2015-2018 Governikus GmbH & Co. KG, Germany
2017-07-03 09:30:10 +02:00
*/
#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* 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()
{
2017-12-20 14:54:05 +01:00
return QStringLiteral("%1 (%2)").arg(getName(), getFingerprint());
2017-07-03 09:30:10 +02:00
}
2017-12-20 14:54:05 +01:00
QString DeviceInfo::getName()
2017-07-03 09:30:10 +02:00
{
2017-12-20 14:54:05 +01:00
2017-07-03 09:30:10 +02:00
#ifdef Q_OS_ANDROID
return getField("MODEL");
2017-12-20 14:54:05 +01:00
#else
return QSysInfo::machineHostName();
2017-07-03 09:30:10 +02:00
2017-12-20 14:54:05 +01:00
#endif
2017-07-03 09:30:10 +02:00
}
QString DeviceInfo::getFingerprint()
{
#ifdef Q_OS_ANDROID
return getField("FINGERPRINT");
2017-12-20 14:54:05 +01:00
#else
2017-07-03 09:30:10 +02:00
return QString();
2017-12-20 14:54:05 +01:00
#endif
2017-07-03 09:30:10 +02:00
}