Приложение iPhone работает при заблокированном экране

Вот кое-что, что я отчаянно пытаюсь приступить к работе:

У меня есть приложение, которое опрашивает модуль GPS через определенные интервалы, а затем отправляет координаты на сервер с помощью вызовов Unix, таких как write (); Он отлично работает, когда приложение активно, но как только экран блокируется, отчеты прекращаются.

Я нашел это: [UIApplication sharedApplication] .idleTimerDisabled = YES; Это поддерживает работу приложения, но также быстро разряжает аккумулятор. Я сталкивался с другими приложениями, которые транслируют музыку, даже когда экран заблокирован (приложения сторонних производителей), и поэтому я решил, что должен быть способ сохранить поток данных GPS вживую.

Кто-нибудь может помочь? Спасибо!


person David    schedule 19.11.2009    source источник
comment
Раньше я использовал способ отключения блокировки экрана, не только довольно быстро разряжается батарея, но и устройство может сильно нагреваться, если оставить его в таком состоянии на час!   -  person Michael Behan    schedule 19.11.2009


Ответы (5)


Посмотри на это:

http://marcopeluso.com/2009/08/23/how-to-prevent-iphone-from-deep-sleeping/

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

person tddmonkey    schedule 08.02.2010

Вы должны оставить экран разблокированным. Но это не значит, что вы должны оставить GPS включенным. Вы можете выключить монитор GPS и будить его каждые несколько минут, это, а также полностью черная «заставка», которая появляется через минуту, должны значительно сократить потребление воды.

person Kendall Helmstetter Gelner    schedule 19.11.2009
comment
Кендалл, не могли бы вы развить свое предложение? Если я оставлю экран разблокированным с помощью [UIApplication sharedApplication] .idleTimerDisabled = YES; это, по крайней мере, для меня держит экран и BG гореть, поэтому батарея сильно кровоточит. Есть ли другой способ сохранить разблокировку экрана, но выключить световой индикатор BG? - person David; 20.11.2009
comment
Я не думаю, что есть способ отключить свет BG. Идея заключалась в том, что разряд батареи можно было бы уменьшить, если бы на экране было минимальное количество данных, поэтому система не выполняла никаких других действий по сохранению изображений на экране. - person Kendall Helmstetter Gelner; 21.11.2009

Если ваше приложение воспроизводит (или записывает) звук, даже если вы играете в тишине, оно продолжит работу, даже когда экран заблокирован. Так что вы можете попробовать воспроизвести тишину через службы аудио-очереди, чтобы ваше приложение работало.

Обратите внимание, что я не знаю каких-либо подробностей, связанных с GPS, в отношении этого вопроса. Другой комментатор говорит, что GPS специально запрещено запускать, когда экран заблокирован (что может быть разумным решением со стороны Apple, учитывая возможные проблемы с конфиденциальностью). Я не могу посоветовать, правда это или нет.

person Andrey Tarantsov    schedule 21.11.2009

Не уверен на 100%, но, кажется, где-то слышал, что модуль GPS работает только тогда, когда экран не заблокирован. (Если, конечно, у вас нет взломанного телефона ...)

Думаю, я прочитал это, когда загружал работающее приложение, которое отслеживало мое местоположение, пока я не работал. У приложения был собственный «экран блокировки», который мне пришлось установить для его работы, который довольно быстро разряжал батарею. Если бы я заблокировал экран в обычном режиме, а затем снова разблокировал бы его, ему пришлось бы заново определять мое местоположение.

person Ian Kremer    schedule 19.11.2009

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

person Michael Behan    schedule 19.11.2009