我希望在Qt上开发一个包含地图的iOS应用程序。在使用过程中,手机的屏幕锁定应该被禁用。但是我无法找到任何解决方案来使用Qt防止iOS设备锁屏。
有什么方法可以实现吗?
我希望在Qt上开发一个包含地图的iOS应用程序。在使用过程中,手机的屏幕锁定应该被禁用。但是我无法找到任何解决方案来使用Qt防止iOS设备锁屏。
有什么方法可以实现吗?
您必须使用原生的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()
}
YourClass yc;
yc.setTimerDisbabled();
如果您只想在iOS上使用您的项目文件(.pro
),请按如下方式操作:
ios {
OBJECTIVE_SOURCES += \
yourclass.mm \
}
如果您只想在单个平台上使用指定的代码,请在源文件和头文件中使用预处理命令,例如:
#if defined(Q_OS_IOS)
// iOs stuff
#elsif defined(Q_OS_ANDROID)
//Android stuff ...
#else
//Other stuff ...
#endif