如何使用Qt防止屏幕锁定ios

Mar*_*hof 3 qt screen qml ios screen-lock

我想在Qt for iOS中开发一个包含地图的应用程序.在使用过程中,应禁用手机的屏幕锁定.但我找不到任何解决方案如何使用Qt防止iOS中的屏幕锁定.

怎么办?

Hub*_*ubi 5

您必须使用本机iOS API.您可以使用Qt应用程序中的clang编译器直接编译ObjC++代码.

所以你可以混合.cpp.mm(ObjC++)文件.QtCreator并qmake通过OBJECTIVE_SOURCES关键字支持此功能.

yourclass.mm实施中:

    #import <Foundation/Foundation.h>
    #import <UIKit/UIKit.h>

    void YourClass::setTimerDisabled() {
        [[UIApplication sharedApplication] setIdleTimerDisabled: YES] 
    }
Run Code Online (Sandbox Code Playgroud)

yourclass.h:

class YourClass
{
public:
   void setTimerDisabled()
}
Run Code Online (Sandbox Code Playgroud)

现在,您可以在Qt-app中随时随地拨打电话:

YourClass yc;
yc.setTimerDisbabled();
Run Code Online (Sandbox Code Playgroud)

在您的项目文件(.pro)中,如果您只想在iOS上使用此文件:

ios {
OBJECTIVE_SOURCES += \
    yourclass.mm \
}
Run Code Online (Sandbox Code Playgroud)

如果您只想在单个平台上使用指定的代码,请在源文件和头文件中使用预处理器命令,如下所示:

#if defined(Q_OS_IOS)
   // iOs stuff
#elsif defined(Q_OS_ANDROID)
   //Android stuff ...
#else
  //Other stuff ...
#endif
Run Code Online (Sandbox Code Playgroud)