Qt For Android 使屏幕常亮
.pro文件
添加如下语句: QT += androidextras
添加WAKE_LOCK权限

添加头文件、命名空间和宏定义
#include
#include
#include
using namespace QtAndroid;
#define CHECK_EXCEPTION() \
if(env->ExceptionCheck())\
{\qDebug() << "exception occured";\env->ExceptionDescribe();\env->ExceptionClear();\
}
功能实现
QAndroidJniEnvironment env;QAndroidJniObject activity = androidActivity();//取消屏幕常量
// if(m_lastChecked)
// {
// if(m_wakeLock.isValid())
// {
// m_wakeLock.callMethod("release");
// CHECK_EXCEPTION();
// }
// m_lastChecked = false;
// return;
// }QAndroidJniObject name = QAndroidJniObject::getStaticObjectField("android/content/Context","POWER_SERVICE","Ljava/lang/String;");CHECK_EXCEPTION();QAndroidJniObject powerService = activity.callObjectMethod("getSystemService","(Ljava/lang/String;)Ljava/lang/Object;",name.object<jstring>());CHECK_EXCEPTION();QAndroidJniObject tag = QAndroidJniObject::fromString("QtJniWakeLock");// 10 == SCREEN_BRIGHT_WAKE_LOCK// 6 == SCREEN_DIM_WAKE_LOCK// getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);// before setContentView() was called.QAndroidJniObject m_wakeLock = powerService.callObjectMethod("newWakeLock","(ILjava/lang/String;)Landroid/os/PowerManager$WakeLock;",10,tag.object<jstring>());CHECK_EXCEPTION();qDebug() << "wakeLock isValid() - " << m_wakeLock.isValid();if(m_wakeLock.isValid()){m_wakeLock.callMethod<void>("acquire");CHECK_EXCEPTION();}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
