3#if QT_VERSION < QT_VERSION_CHECK(6,0,0)
4#include <QtAndroidExtras>
6#include <QCoreApplication>
7#include <QJniEnvironment>
9#define QAndroidJniEnvironment QJniEnvironment
10#define QAndroidJniObject QJniObject
17#define LOC QString("Display: ")
27#if QT_VERSION < QT_VERSION_CHECK(6,0,0)
30 QJniObject activity = QNativeInterface::QAndroidApplication::context();
32 QAndroidJniObject windowManager = activity.callObjectMethod(
"getWindowManager",
"()Landroid/view/WindowManager;");
33 QAndroidJniObject display = windowManager.callObjectMethod(
"getDefaultDisplay",
"()Landroid/view/Display;");
35 display.callMethod<
void>(
"getRealMetrics",
"(Landroid/util/DisplayMetrics;)V", displayMetrics.object());
37 if (env->ExceptionCheck())
39 env->ExceptionClear();
40 display.callMethod<
void>(
"getMetrics",
"(Landroid/util/DisplayMetrics;)V", displayMetrics.object());
42 auto xdpi = displayMetrics.getField<jfloat>(
"xdpi");
43 auto ydpi = displayMetrics.getField<jfloat>(
"ydpi");
44 int height = displayMetrics.getField<jint>(
"heightPixels");
45 int width = displayMetrics.getField<jint>(
"widthPixels");
46 auto rate = display.callMethod<jfloat>(
"getRefreshRate");
47 LOG(VB_GENERAL, LOG_INFO,
LOC +
48 QString(
"rate:%1 h:%2 w:%3 xdpi:%4 ydpi:%5")
49 .arg(rate).arg(height).arg(width)
57 if (xdpi > 0 && ydpi > 0)
60 static_cast<int>(height / ydpi * 25.4F));
void UpdateCurrentMode(void) override
Retrieve screen details.
#define QAndroidJniEnvironment
#define QAndroidJniObject
#define LOG(_MASK_, _LEVEL_, _QSTRING_)