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

时间:2015-09-25 06:06:05

标签: ios qt screen qml screen-lock

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

怎么办呢?

1 个答案:

答案 0 :(得分: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] 
    }

yourclass.h

class YourClass
{
public:
   void setTimerDisabled()
}

现在您可以在Qt-app的任何地方拨打电话:

YourClass yc;
yc.setTimerDisbabled();

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

ios {
OBJECTIVE_SOURCES += \
    yourclass.mm \
}

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

#if defined(Q_OS_IOS)
   // iOs stuff
#elsif defined(Q_OS_ANDROID)
   //Android stuff ...
#else
  //Other stuff ...
#endif