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

Я использую IBM Presence Insights для записи внутренних помещений мобильных устройств моих пользователей. Я использую инфраструктуру маяка и использовал Presence Insights SDK для создания приложения.

Будет ли мое приложение / телефон иметь маяки и отправлять обновления местоположения в Presence Insights, даже если приложение работает в фоновом режиме? Что делать, если приложение не запущено? Мне нужно знать это поведение для Android и iOS.

2 ответа

Решение

Провел некоторое расследование. Возможность ранжирования в фоновом режиме различна для разных операционных систем.

Для iOS:

  • iOS может отслеживать маяки в фоновом режиме, используя мониторинг "регион". Это отличается от ранжирования для определенных маяков, поскольку вместо этого он отслеживает большой регион / группу маяков. Этот метод не разряжает батарею телефона почти так же быстро и обеспечивает большую конфиденциальность для пользователя. Это рекомендуемый способ создания приложения на основе определения местоположения от Apple, и это то, что мы делаем в SDK.

  • Мониторинг региона работает, когда приложение находится в фоновом режиме, на переднем плане или полностью убито, см. Эту ссылку для получения дополнительной информации: https://community.estimote.com/hc/en-us/articles/203356607-What-are-region-Monitoring-and-Ranging-

  • Ссылка выше говорит об ограничениях, в частности, о том, что пользователь должен был разрешить "Доступ к вашему местоположению, даже если приложение не используется"
  • Когда телефон не используется, ИЛИ приложение находится в фоновом режиме, SDK будет отслеживать эти диапазоны маяка максимум каждые 15 минут (кажется, это зависит от устройства iOS, уровня операционной версии и т. Д.)
  • Когда телефон используется и находится в режиме FOREGROUND, он будет постоянно меняться для маяков (разработчику приложения не нужно ничего делать, чтобы инициировать этот процесс).
  • (Для меня это означает, что, возможно, кто-то может войти и покинуть помещение и вообще не пользоваться своим телефоном. Если он сделает это в течение 15 минут, его вообще не обнаружат.)
  • Весь этот мониторинг может осуществляться только в том случае, если пользователь загрузил приложение, а разработчик приложения "запустил" датчик маяка PI. Это необходимо для того, чтобы PI мог получить список маяков, связанных с организацией, и зарегистрировать эти области маяков в операционной системе телефона. По этой причине мы рекомендуем разработчикам приложений запускать определение маяка сразу после запуска приложения.
  • Я не уверен, выживет ли этот мониторинг, телефон перезагружается или нет.

Для Android:

  • В Android отсутствует концепция мониторинга региона, предоставляемая операционной системой.
  • Существует фоновый процесс, который мы создаем, который использует scanPeriod (как долго вы сканируете) и между ScanPeriod (как долго ждать, прежде чем проснуться и сканировать BLE)
  • В настоящее время, если пользователь открывает приложение для Android, мы создадим этот фоновый процесс, который будет запускаться каждые 5 минут и сканировать BLE.
  • В настоящее время это сильно разряжает батарею из-за этих значений
  • Если пользователь принудительно закроет приложение, оно закроет фоновый процесс, поэтому сканирование не произойдет. Мы ищем способы исправить это путем перезапуска фоновой службы, когда приложение закрыто
  • Фоновые процессы Android не выдерживают перезагрузки телефона, поэтому, если пользователь перезагружает свой телефон и не открывает приложение, он никогда не будет сканировать маяки

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

Presence Insights SDK для iOS и Android не содержит никакого кода, специфичного для запуска вашего приложения в фоновом режиме. То, как вы пишете свои приложения, будет определять, будут ли они работать в фоновом режиме и как они будут работать.

Вот хорошая информация для iOS и Android по настройке фоновых процессов, а также документы для SDK для мобильных приложений. Есть множество вариантов.

Слово мудрости - вы можете убить чью-то батарею, если не будете осторожны с настройкой фоновых процессов.

Надеюсь это поможет

Другие вопросы по тегам