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

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


person Jake    schedule 24.03.2016    source источник


Ответы (2)


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

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

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

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

  1. Запросите дополнительные 180 секунд работы в фоновом режиме при срабатывании геозоны.
  2. Запрашивайте обновления местоположения с помощью GPS и отслеживайте эти обновления в течение 180 секунд в фоновом режиме.
  3. Используя данные обновления местоположения, если вы обнаружите, что точность исправления достаточно высока, а расстояние от ресторана достаточно мало, активируйте уведомление. До тех пор, пока это не произойдет, не запускайте его вообще.
person davidgyoung    schedule 24.03.2016
comment
Спасибо. Не повлияет ли использование GPS в течение примерно 180 секунд на расход заряда батареи моих приложений? - person Jake; 24.03.2016
comment
Это только в течение 180 секунд после входа в геозону. Если эти события происходят нечасто (например, в среднем не чаще пары раз в день), то разряд батареи может быть приемлемым. - person davidgyoung; 24.03.2016

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

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

person arc4randall    schedule 24.03.2016