Рекомендации по времени автономной работы iPhone

Я разрабатываю приложение для записи голоса, которое обменивается данными с сервером в режиме реального времени, поэтому требует постоянного подключения к Интернету. Я включил UIRequiresPersistentWiFi в свой info.plist, а также отключил переход устройства в спящий режим, когда приложение активно. Однако это по понятным причинам серьезно сказывается на времени автономной работы устройства. В конечном итоге пользователям приходится оставлять его постоянно подключенным. Для приложения, которое рекламируется как предназначенное для замены портативных рекордеров, это серьезный недостаток. В моем приложении также есть много потоков XML, отправляемых с iPhone на сервер, поэтому беспроводная связь имеет первостепенное значение.

Мои вопросы: 1. Можно ли как-то включить статус UIRequiresPersistentWifi только тогда, когда это необходимо во время сеанса. Например, может ли это быть включено только во время передачи или обновления xml на сервер и отключено в другое время? 2. Точно так же IdleTimer можно включать и выключать программно по желанию во время сеанса. Например, включение таймера простоя только тогда, когда на устройстве не выполняются задачи переднего плана или фоновые задачи.

Есть ли другие предложения по обеспечению нормального срока службы батареи? Все мои пользователи будут использовать iTouch 4 или iPhone 4.

Любая помощь / предложения будут приняты с благодарностью.


person Anand    schedule 05.01.2011    source источник


Ответы (2)


Ответ на часть 2: Да, вы можете включать и отключать таймер простоя в зависимости от того, что делает пользователь или приложение и как долго это было. Я знаю пару приложений, которые отключают таймер простоя, но затем снова включают его, если пользователь не касается каких-либо элементов пользовательского интерфейса в течение 10 минут, но затем снова отключает его, если пользователь снова запускает какую-то долгую операцию. и Т. Д.

Частичный ответ на часть 1: использование радио (отправка данных Wi-Fi) требует энергии. Хороший способ сэкономить электроэнергию - как можно дольше не отправлять данные. Возможно, буферизуйте большие объемы данных на устройстве и попробуйте загрузить их позже.

person hotpaw2    schedule 06.01.2011

Я предлагаю не связываться с сервером постоянно, извините :(

Можно ли кэшировать фрагменты данных в файл на телефоне и периодически передавать их на сервер одним большим пакетом? То же самое и с XML. Или ваше приложение действительно требует, чтобы оно транслировалось в реальном времени?

И насколько я знаю, если вы указали UIRequiresPersistentWifi, вы застряли с ним :(

Извините, вероятно, это не тот ответ, который вам нужен!

person deanWombourne    schedule 06.01.2011