Профилактика глубокого сна iOS 5 - PullRequest
5 голосов
/ 19 декабря 2011

Я пытаюсь создать приложение для будильника, которое может активировать будильник в режиме заблокированного экрана (приложение находится на переднем плане, но экран заблокирован).Тревога должна срабатывать с помощью NSTimer, а не с помощью uilocalnotification.

В iOS 4 я использовал хак «воспроизведение беззвучного звука каждые 10 секунд», чтобы приложение не переходило в глубокий сон, и события таймера работали нормально.Однако в iOS 5 это, похоже, не работает.

Есть идеи?Или это должно сработать и я что-то не так делаю?

Ответы [ 3 ]

4 голосов
/ 22 декабря 2011

Кажется, что на самом деле вы можете использовать хак 'play silent audio' в iOS 5, но звук должен быть слышимый , означающий, что вы не можете воспроизвести его на громкости, установленной на 0.0 .

4 голосов
/ 16 февраля 2012

Вы можете использовать github.com/marcop/iPhoneInsomnia и установить громкость больше 0, но он все равно не работает, потому что звуковой файл настолько короткий, что система убивает ваше приложение до срабатывания таймера и воспроизводитзвук.Я решил это, установив numberOfLoops audioPlayer в -1 (бесконечный повтор).Тогда это должно сработать.

И вам также следует установить для plist-ключа UIBackgroundMode массив из одной строки с именем «audio»

2 голосов
/ 19 декабря 2011

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

[[UIDevice currentDevice] setProximityMonitoringEnabled:YES];

Это позволит вам сохранить полный контроль над устройством, пока экран не выключится.

...