Как предотвратить блокировку экрана ios с помощью Qt
Я хочу разработать приложение для Qt для iOS, содержащее карту. Во время использования блокировка экрана телефона должна быть отключена. Но я не могу найти никакого решения, как предотвратить блокировку экрана в iOS с помощью Qt.
Как это можно сделать?
1 ответ
Вы должны использовать родной iOS API. Вы можете скомпилировать код ObjC++ непосредственно с помощью компилятора clang в вашем приложении Qt.
Так что вы можете смешивать .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-приложении:
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