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: ")
32 #if QT_VERSION < QT_VERSION_CHECK(6,0,0)
35 QJniObject activity = QNativeInterface::QAndroidApplication::context();
37 QAndroidJniObject windowManager = activity.callObjectMethod(
"getWindowManager",
"()Landroid/view/WindowManager;");
38 QAndroidJniObject display = windowManager.callObjectMethod(
"getDefaultDisplay",
"()Landroid/view/Display;");
40 display.callMethod<
void>(
"getRealMetrics",
"(Landroid/util/DisplayMetrics;)V", displayMetrics.object());
42 if (env->ExceptionCheck())
44 env->ExceptionClear();
45 display.callMethod<
void>(
"getMetrics",
"(Landroid/util/DisplayMetrics;)V", displayMetrics.object());
47 float xdpi = displayMetrics.getField<jfloat>(
"xdpi");
48 float ydpi = displayMetrics.getField<jfloat>(
"ydpi");
49 int height = displayMetrics.getField<jint>(
"heightPixels");
50 int width = displayMetrics.getField<jint>(
"widthPixels");
51 float rate = display.callMethod<jfloat>(
"getRefreshRate");
52 LOG(VB_GENERAL, LOG_INFO,
LOC +
53 QString(
"rate:%1 h:%2 w:%3 xdpi:%4 ydpi:%5")
54 .arg(rate).arg(height).arg(width)
62 if (xdpi > 0 && ydpi > 0)
65 static_cast<int>(height / ydpi * 25.4F));