2014-01-11 3 views
2

Из того, что я понял, для сегментации используются мелкие и основные идентификаторы маяков (например, основные для физических магазинов и второстепенные для разных мест в данном магазине).iBeacon, Bluetooth BLE и управление автопарком

Тогда, поскольку маячок не доставляет богатую полезную нагрузку, я предполагаю, что эти идентификаторы будут использованы, чтобы заслужить адекватную информацию для пользователя - и, вероятно, через веб-службы.

И, наконец, UUID считается для всего флота. Насколько я понимаю, приложение (например, для розничного магазина), вероятно, зарегистрируется только для одного или нескольких UUID (как правило, один для более сложных архитектур или перегрузки сервисов).

На уровне приложения вы можете (1) диапазон для маяков, когда приложение находится на переднем плане (с возможностью улавливания для минорных/основных идентификаторов) и (2) обнаруживать выход/запись области (monitoringForRegion:), а в фоновом режиме + доставлять UILocalNotification для пробуждения приложения (возврат к (1)).

Теперь давайте общаемся с конечным пользователем. Я думаю, мы можем предположить, что средний не будет проходить через весь розничный магазин с приложением на переднем плане в руке и, скорее всего, будет работать в фоновом режиме. Следовательно, случай (2) будет наиболее распространенным. Но поскольку все эмиттеры будут использовать один и тот же UUID, а менеджер геолокации, работающий в фоновом режиме, отслеживает область, связанную с UUID, методы делегирования областей didEnter и didExit не могут быть вызваны интеллектуально в зависимости от диапазона/конфигурации эмиттеров. Наконец, будет получена и поймана не вся реклама на основе местоположения, которую вы хотели бы транслировать своим клиентам. На самом деле, я боюсь, что система будет предлагаться только в том случае, когда клиент прибудет в место хранения (в контексте фонового режима).

Я что-то упустил?

ответ

4

К фразе, что сказал Давид немного по-другому:

Вы можете определить область радиомаяка используя UUID, UUID и основное значение, или UUID + основное и второстепенное значение.

Если вы определяете регион, используя только UUID, любой маяк с этим UUID будет вызывать сообщение didEnterRegion, и ОС будет обрабатывать все маяки с этим UUID как часть того же региона.

Однако, если вы создадите регион с UUID + Major или UUID + Major + Minor, только маяки, соответствующие этим значениям, вызовут уведомление региона. У вас может быть 2 маяка с одинаковым UUID и основным значением рядом друг с другом и разными второстепенными значениями. Если вы зарегистрировали 2 разных региона с определенным значением UUID + Major + Minor, вы получите независимые сообщения о входе/выходе/ранжировании по каждому региону. Третий маяк с тем же UUID и основным значением, но с другим незначительным значением не будет вызывать уведомления о входе/выходе.

+0

Я думаю, что я пропустил следующий метод: '[[CLBeaconRegion Alloc] initWithProximityUUID: (NSUUID *) главный: (CLBeaconMajorValue) несовершеннолетний: (CLBeaconMinorValue) Идентификатор: (NSString *)]' Но да, проектирование умного географическое отображение, основанное на том, как вы создаете магазины, должно быть частью всего процесса. –

6

Вы в основном правы. Единственное, чего вам не хватает, это то, что вы можете одновременно контролировать 20 разных регионов, и эти регионы могут дополнительно включать майор и/или несовершеннолетний. Таким образом, вы можете запускать много раз в (большом) магазине, грамотно разрабатывая идентификаторы iBeacon и региональные мониторы.

Два оговорки: в зоне мониторинга обратные вызовы срабатывают при первом включении маяка (около 50 м). Они также не одновременно. Они могут занять до 15 минут на 4S iPhone с приложением в фоновом режиме, хотя это быстрее на iPhone 5.

Смежные вопросы