如何在Qt Android应用程序上禁用屏幕保护程序

How to disable screensaver on Qt Android App

本文关键字:程序上 屏幕保护 程序 应用程序 应用 Qt Android      更新时间:2023-10-16

我在Android上使用Qt,我想禁用屏幕关闭/屏幕保护程序打开。

我没有使用QtQuick/QML,只有C++。Qt版本是5.8

编辑:我忘了提到我使用Qt Creator。

实际来源

您需要将"QT += androidextras"添加到 .pro 文件中

#include <QtAndroidExtras/QAndroidJniEnvironment>
#include <QtAndroidExtras/QtAndroidExtras>
QAndroidJniObject activity = QAndroidJniObject::callStaticObjectMethod("org/qtproject/qt5/android/QtNative", "activity", "()Landroid/app/Activity;");
if (activity.isValid()) {
    QAndroidJniObject window = activity.callObjectMethod("getWindow", "()Landroid/view/Window;");
    if (window.isValid()) {
        const int FLAG_KEEP_SCREEN_ON = 128;
        window.callMethod<void>("addFlags", "(I)V", FLAG_KEEP_SCREEN_ON);
    }
}
//Clear any possible pending exceptions.
QAndroidJniEnvironment env;
if (env->ExceptionCheck()) {
    env->ExceptionClear();
}