如何在 Qt Android App 上禁用屏幕保护程序
How to disable screensaver on Qt Android App
我在 Android 上使用 Qt,我想禁用屏幕关闭/屏幕保护程序打开。
我没有使用 QtQuick/QML,只使用 C++。 Qt版本为5.8
编辑:我忘了说我用的是Qt Creator。
实际source
您需要将 "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();
}
我在 Android 上使用 Qt,我想禁用屏幕关闭/屏幕保护程序打开。
我没有使用 QtQuick/QML,只使用 C++。 Qt版本为5.8
编辑:我忘了说我用的是Qt Creator。
实际source
您需要将 "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();
}