iBeacon, Bluetooth BLE и управление автопарком

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

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

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

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

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

Я что-то упускаю?


person Romain Dorange    schedule 11.01.2014    source источник


Ответы (2)


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

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

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

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

person Duncan C    schedule 12.01.2014
comment
Я думаю, что пропустил следующий метод: [[CLBeaconRegion alloc] initWithProximityUUID:(NSUUID *) major:(CLBeaconMajorValue) minor:(CLBeaconMinorValue) identifier:(NSString *)] Но да, разработка интеллектуальной географической карты на основе того, как построены ваши магазины, должна быть частью всего процесса. - person Romain Dorange; 12.01.2014

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

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

person davidgyoung    schedule 11.01.2014