2017-02-15 21 views
1

Я делаю приложение для запуска локального уведомления при вводе области. Однако иногда, когда телефон заблокирован, уведомления не появлялись, даже если бы я был в области региона некоторое время. Всплывающее окно уведомления будет отображаться только при нажатии кнопки питания/дома (телефон все еще находится в режиме блокировки).Быстрое обнаружение локального уведомления о локализации

Как правило, все работает, за исключением того, что иногда уведомление будет отображаться только при нажатии кнопки питания/дома, чтобы разбудить телефон, хотя он все еще заблокирован.

Надеюсь, кто-то может просветить меня, пожалуйста! =)

+0

Вы используете 'BackgroundFetch' для этого? – KrishnaCA

+0

Да Фоновая выборка включена в «Возможности». Мониторинг области работает, даже когда я терминал/закрываю приложение. Странная часть заключается в том, что иногда всплывающее уведомление появляется только при нажатии кнопки питания/дома, но телефон все еще находится в режиме блокировки. = ( – Shen

+0

вы используете «стандартную службу определения местоположения» или «услугу значительного изменения местоположения»? – KrishnaCA

ответ

0

По словам разработчика documentation. В структуре основного местоположения две службы могут предоставить вам текущую информацию о местоположении.

  1. Стандартное расположение служба является настраиваемым общим назначение решения для получения данных о местоположении и отслеживать изменения местоположения для заданного уровня точности.

  2. Служба значительного изменения местоположения предоставляет обновления только тогда, когда произошли значительные изменения в местоположении устройства, например, 500 метров или более.

Вы должны использовать стандартные услуги определения местоположения, чтобы сохранить местоположение мониторинга в фоновом режиме

Если ваше приложение IOS должно держать местоположение мониторинга, даже если он находится в фоновом режиме, использовать стандартную услугу определения местоположения и укажите значение местоположения ключа UIBackgroundModes для продолжения работы в фоновом режиме и получения обновлений местоположения. (В этой ситуации вы также должны убедиться, что для параметра locationsLocationUpdatesAutomatically параметра location manager установлено значение YES, чтобы помочь сэкономить электроэнергию.)

+0

Исправьте меня, если я ошибаюсь, но есть еще один метод, упомянутый в документации разработчика. Это мониторинг региона, который я использую здесь. - Мониторинг региона позволяет отслеживать пересечения границ для определенных географических регионов и низкого уровня Bluetooth -энергетических маяковых регионов (мониторинг зоны маяка доступен только в iOS). – Shen