Предотвращение сна iPhone в Swift: методы поддержания активности экрана

Чтобы iPhone не переходил в спящий режим в Swift, вы можете использовать различные методы. Вот несколько вариантов:

  1. Отключить автоматическую блокировку. Вы можете отключить функцию автоматической блокировки на iPhone, которая контролирует режим сна устройства. Этого можно добиться путем программной настройки параметров устройства с помощью свойства UIApplication.shared.isIdleTimerDisabled.
UIApplication.shared.isIdleTimerDisabled = true
  1. Используйте подход на основе таймера. Вы можете создать таймер, который периодически сбрасывается, чтобы предотвратить переход устройства в спящий режим. Это можно сделать с помощью класса Timerв Swift.
Timer.scheduledTimer(withTimeInterval: 30, repeats: true) { timer in
    UIApplication.shared.isIdleTimerDisabled = true
}
  1. Воспроизведение беззвучного аудио. Постоянное воспроизведение беззвучного аудиофайла может заставить устройство бодрствовать. Этого можно добиться, используя платформу AVFoundationдля воспроизведения аудиофайла без звука.
import AVFoundation
try? AVAudioSession.sharedInstance().setCategory(.playback)
try? AVAudioSession.sharedInstance().setActive(true)
let player = try? AVAudioPlayer(contentsOf: URL(fileURLWithPath: Bundle.main.path(forResource: "silence", ofType: "mp3")!))
player?.numberOfLoops = -1
player?.play()

Не забудьте добавить в проект беззвучный аудиофайл с именем «silence.mp3».