Запуск служб определения местоположения в фоновом режиме на старом iphone 3G

У меня есть приложение на основе местоположения, которое должно работать в фоновом режиме. У меня есть несколько iPhone, которые я тестирую, включая более старый 3G. Я регистрирую свое приложение, чтобы мне потребовались фоновые службы на основе определения местоположения, и все работает так, как рекламируется, со старым телефоном 3G. Когда вы нажимаете кнопку блокировки, он запускает applicationWillResignActive: как и ожидалось, к сожалению, телефон сразу же переходит в режим низкого энергопотребления, и все. Когда вы подключаете телефон с помощью кабеля USB, а затем нажимаете кнопку блокировки, телефон 3G остается активным и правильно сообщает об изменениях местоположения. При отключении он сразу же переходит в режим пониженного энергопотребления.

Странно то, что я почти уверен, что раньше это работало. Я хочу узнать, есть ли у кого-нибудь приложение, работающее на более старом iphone (3G), которое регистрируется для служб определения местоположения и не сразу переводится в режим пониженного энергопотребления при нажатии кнопки блокировки. Если да, то что я делаю не так.

Я следовал всем направлениям, есть места в моем Info.plist.

Спасибо за вашу помощь!

Привет, Брайан


person Bryan    schedule 08.06.2011    source источник


Ответы (1)


Я думаю, вы видите ожидаемое поведение.

Во время недавней поездки со своим старым 3g я заметил, что диспетчер местоположения оставался активным только тогда, когда через usb подавалось питание. На USB-накопителе при разблокировке телефона приложение (в данном случае карты Google) сразу запускалось с активным диспетчером местоположения. Без usb мне приходилось перезапускать Location Manager каждый раз, когда я разблокировал телефон.

Я сильно подозреваю, что это функция безопасности / энергосбережения. Location Manager невероятно расходует заряд батареи, особенно на старых устройствах. Постоянно запуская Диспетчер местоположения при работе от батареи, вы можете легко вывести телефон пользователя из строя без его ведома.

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

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

person TechZen    schedule 08.06.2011
comment
Спасибо за ответ. Это очень полезно. Вы абсолютно правы, говоря, что службы определения местоположения постоянно работают в фоновом режиме. Мое приложение действительно использует службы определения местоположения в фоновом режиме, но у нас есть очень успешный алгоритм понижающего энергосбережения, который в конечном итоге переключается на существенные изменения, а затем отключает все службы в зависимости от использования. - person Bryan; 09.06.2011