iOS: как использовать отслеживание местоположения в течение заданного периода времени, сохраняя при этом заряд батареи?

iOS: как использовать отслеживание местоположения в течение заданного периода времени, сохраняя при этом заряд батареи?

Мне нужно активировать отслеживание местоположения в заранее определенные периоды времени (не имеет значения, работает ли приложение в фоновом или на переднем плане) и нужно быть уверенным, что время работы от батареи не слишком сильно повлияет?

PS: Пожалуйста, обратите внимание, что беговое местоположение в фоновом режиме с отслеживанием значительных изменений не подходит, потому что оно дает вам местоположение через 10 минут и только тогда, когда вы преодолели разумное расстояние ... поэтому во время движения 40 км я получил местоположение только 3 раза, что не будет позвольте мне поймать движение пользователя вблизи некоторой точки. Если запускать локацию чаще ... это разряжает батарею до 40 процентов за 6 часов ...


person Rufat Abdullayev    schedule 22.03.2016    source источник


Ответы (1)


Недавно я очень тщательно изучил все фоновые режимы в iOS.

Единственный детерминированный способ, который позволит вам сделать это без фонового режима определения местоположения, — это тихие push-уведомления.

Вы отправляете пользователю тихий push-уведомление, и пользователь возвращает местоположение.

Вы также можете использовать выборку в фоновом режиме. Но это очень недетерминировано. Вы не можете предсказать, действительно ли оно разбудит ваше приложение или нет.

РЕДАКТИРОВАТЬ:

Обратите внимание, что это не разбудит приложение, которое было принудительно закрыто.

Однако система не запускает ваше приложение автоматически, если пользователь принудительно закрыл его. В этой ситуации пользователь должен перезапустить ваше приложение или перезагрузить устройство, прежде чем система попытается снова запустить ваше приложение автоматически.

person michal.ciurus    schedule 22.03.2016
comment
Привет и спасибо. Это звучит как хорошее решение! Я попробую! Но запустит ли он приложение, если оно было ранее убито пользователем? В любом случае я это проверю. В настоящее время я использую комбинацию фонового режима определения местоположения и выполнения фоновой задачи, которая через несколько минут запускает обновления местоположения и завершает их через несколько секунд... это отлично работает для постоянного отслеживания местоположения и предполагает около 30% заряда батареи в течение дня. - person Rufat Abdullayev; 23.03.2016
comment
Привет Михал! Спасибо! Это работает для меня. Кроме того, я мог запускать выполнение фоновых задач и фоновое местоположение или любые другие фоновые режимы и запускать задачи в фоновом режиме столько, сколько мне нужно в цикле ... Итак, теперь мне удалось запустить обновление фонового местоположения веб-сервера на устройстве ios, а затем отправить пользователю местоположение на сервер и остановить обновление местоположения на устройстве ios с сервера самостоятельно. и все это управляется с веб-сервера. Спасибо еще раз - person Rufat Abdullayev; 24.03.2016