Подтвердить что ты не робот

Отключить автоматическую блокировку экрана в iOS 5.1

Следующая строка кода запрещает приложению автоматически блокировать экран после некоторого простоя.

[UIApplication sharedApplication].idleTimerDisabled = YES; //write this in applicationDidFinishLaunching

Он хорошо работает до iOS 5.0. Но iOS 5.1 не соблюдает эту строку и блокирует экран после некоторого простоя. Как решить эту раздражающую проблему?

Спасибо.

Edit:

Тот же код отлично работает, когда он установлен в устройстве 5.0.1. Но я не знаю, почему он не работает с устройством 5.1.

4b9b3361

Ответ 1

Просто установите [UIApplication sharedApplication].idleTimerDisabled = YES; в

- (BOOL) application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions

хорошо работает для меня. Однако есть оговорка. Я заметил, что каждый раз, когда я вызываю утилиту камеры для получения моментального снимка, idleTimerDisable устанавливается за НЕТ за сценой. Поэтому сразу после загрузки изображения мне пришлось снова вызвать следующую строку кода:

[UIApplication sharedApplication].idleTimerDisabled = YES;

Я не удивлюсь, если в нем будет больше мест, требующих такой же стратегии. Пока этот подход работал без проблем для меня.

Ответ 2

[[UIApplication sharedApplication] setIdleTimerDisabled: YES];

работал у меня на iOS 5.1

Ответ 3

Нет никакой разницы. Возможно, у вас есть еще одна ошибка.
См. iOS 5.0 to 5.1 API Diffs

Ответ 4

Важно:. Вы должны установить это свойство только при необходимости и должны быть уверены, что reset это НЕТ, когда потребность больше не будет существовать. Наиболее приложения должны позволять системе отключать экран при работе в режиме ожидания таймер истекает. Сюда относятся звуковые приложения. При надлежащем использовании Служб аудио сессии, воспроизведение и запись продолжаются если экран выключен. Единственные приложения, которые отключить таймер простоя - это сопоставление приложений, игр или аналогичные программы со спорадическим взаимодействием с пользователем.

Возможно, вы превысили допустимый предел времени бодрствования?

Ответ 5

Я знаю, что он старый, но я нашел это хорошо, и в Swift вы можете сделать это, как будто это

application.idleTimerDisabled = true

Спасибо за ответы! я использую прямо сейчас xcode 7 Beta 3 (Swift 2)

Ответ 6

Прекрасно работает, если ваше приложение зарегистрировано для какой-либо фоновой задачи, например, при обновлении местоположения GPS.

Ответ 7

Для Swift я использую это для выполнения вне делегата:

    UIApplication.sharedApplication().idleTimerDisabled = true