В iOS мы внедрили мониторинг и ранжирование ibeacons в фоновом режиме. Когда устройство входит в область, мы начинаем варьироваться для ibeacons в фоновом режиме. Когда устройство выходит из региона, мы останавливаемся на ibeacons в фоновом режиме.iOS мониторинг/дальнобойность маяков в фоновом режиме потребляет много батареи
Это работает очень хорошо, когда мы выпускаем следующее заявление при запуске приложения: locationManager.startUpdatingLocation()
и мы можем держать в пределах маяки в фоновом режиме в течение всего времени, что мы находимся в регионе.
Когда мы не выдаем это утверждение, диапазон iBeacons в фоновом режиме прекращается через пару секунд после его запуска. Это недостаточно для нашего приложения, так как нам нужно постоянно гасить маяки, пока мы находимся в регионе. То, что мы также видим, что мониторинг и дальность для маяков в фоновом режиме таким образом занимает много заряда батареи.
У кого-нибудь есть опыт? Расход батареи в фоновом режиме вызван startUpdatingLocation() (который также генерирует обратные вызовы для didUpdateLocations() с широтой и долготой, которые нам не нужны)? Есть ли другой способ избежать ранжирования для маяков, которые будут остановлены через пару секунд в фоновом режиме?
Я видел эту другую запись Beacon Ranging in Background on iOS, но только в течение 180 секунд также не то, что мы действительно хотим. В записи написано: Чтобы решить вторую проблему, получив 10 секунд времени после перехода, вы можете запросить дополнительное время для сохранения. iOS позволяет вам перемещаться в фоновом режиме на 180 секунд. Это не требует фоновых режимов и специального разрешения от AppStore.
Наш прецедент имеет общие черты с другим сообщением. В нашем случае мы хотим отслеживать местоположение устройства, когда пользователь ходит внутри и снаружи нескольких зданий. Есть несколько перекрывающихся областей, каждая область с несколькими маяками. Пользователи будут изредка иметь приложение на переднем плане. – RobG
Вы можете контролировать не только UDID, но и основные и незначительные изменения. Таким образом вы получите несколько уведомлений didEnter и didExit, которые позволят вам узнать, в каком здании/комнате находится пользователь. –
Вы правы. Мы рассмотрим это как альтернативу. – RobG