Геозоны, iBeacons и отправка уведомлений, когда люди заходят в ресторан

Я пытаюсь отправить уведомление через мои приложения для iOS и Android, когда пользователь входит в ресторанную дверь. Я пробовал геозону, но минимальный радиус не достаточно мал, и люди будут получать уведомления от нескольких ресторанов в этом районе. Я знаю, что iBeacons существуют. Они мой единственный вариант? (Я знаю, что Foursquare отправляет такие уведомления, но я не думаю, что они используют iBeacons.)

2 ответа

Маяки намного точнее геозон, но их дальность действия до 40 метров. В густонаселенных городских районах маяки могут по-прежнему вызывать уведомления от нескольких соседних ресторанов одновременно. Вы также можете вызвать уведомление, когда пользователь идет по тротуару. Есть способы, которыми вы можете оценить вероятность этого, разместив маяки внутри ресторана, чтобы сигнал был очень слабым снаружи. Но вы не можете устранить это.

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

Уведомления, основанные на геозонах, особенно проблематичны в iOS, потому что геозоны часто возвращаются к расположению от вышек сотовой связи для экономии заряда батареи, когда на переднем плане нет приложений определения местоположения. Местоположения вышек сотовой связи являются точными только в пределах одного-двух километров, и они смещают геозону внешнего диапазона неопределенности местоположения, перекрывающейся с геозоной. Это может вызвать приветственное уведомление ресторана из более чем в миле.

Один из способов улучшить плохие уведомления, основанные на Geofence, - использовать следующую технику на iOS:

  1. Запросите дополнительные 180 секунд фонового времени работы при срабатывании геозоны.
  2. Запросите обновления местоположения с помощью GPS и следите за обновлениями в течение 180 секунд в фоновом режиме.
  3. Используя данные обновления местоположения, если вы обнаружите, что точность исправления достаточно высока, а расстояние от ресторана достаточно мало, то активируйте уведомление. До тех пор, пока это не произойдет, не запускайте его вообще.

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

Недостатком этого подхода является то, что разряд батареи будет выше, чем при использовании ibeacons, которые работают с использованием BLE (bluetooth low energy)

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