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

Как отключить автоматическую блокировку iPhone/iPad, когда приложение находится в режиме переднего плана?

Я разрабатываю приложение для музыкального/видеоплеера и просто хочу написать, как отключить автозаблокировку, когда мое приложение находится на переднем плане.

Я знаю, что в какой-то момент я должен использовать [[UIApplication sharedApplication] setIdleTimerDisabled:YES]; и [[UIApplication sharedApplication] setIdleTimerDisabled:NO];, но где их лучше всего разместить?

4b9b3361

Ответ 1

Включить таймер простоя в

- (void)applicationWillResignActive:(UIApplication *)application

и отключите его в

- (void)applicationDidBecomeActive:(UIApplication *)application

Ответ 2

Лучшее место для его отключения - в файле didFinishLaunchingWithOptions. Система автоматически позаботится о том, чтобы настройка не влияла, когда приложение находится в фоновом режиме.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    application.idleTimerDisabled = YES; 
    return YES;
}

Я опубликовал эту альтернативу, потому что принятый ответ не предотвращает автоматическую блокировку при появлении предупреждения (электронная почта, сообщение, событие календаря и т.д.) или центр уведомлений или центр управления.

Ответ 3

Swift 3.0:

Внутри AppDelegate.swift: application.idleTimerDisabled = true

Внешний AppDelegate.swift: UIApplication.shared().isIdleTimerDisabled = true

Ответ 4

И в Swift 3.0:

UIApplication.shared().isIdleTimerDisabled = true

Ответ 5

мои 2 цента: для xcode 9:

 application.idleTimerDisabled = true

..... AppDelegate.swift: 28: 15: 'idleTimerDisabled' был переименован в 'isIdleTimerDisabled'

так:

application.isIdleTimerDisabled = true