it-swarm.com.ru

Поиск всех iBeacons, а не только с определенным UUID

Можно ли искать все iBeacons, которые находятся рядом? Я знаю, что можно искать iBeacons по UUID. Но я хочу найти все iBeacons поблизости. 

20
Christian

IBeacon является регионом и имеет определяющее свойство UUID. Таким образом, вы можете искать только те из них, которые соответствуют UUID . После того, как вы найдете один или несколько с определенным UUID, вы можете выяснить, какой из них ближе всего, используя обратные вызовы делегатов, где маяки хранятся в массиве, упорядоченном по расстоянию. ,.

В этом есть отличный пример кода, а также довольно подробный видео-сеанс WWDC: «Что нового в Core Location»

12
Joride

iBeacons являются конструкциями более высокого уровня, чем обычные периферийные устройства BLE. Из того, что можно определить из документов Apple, маяки привязаны к их сервису UUID. то есть семейство маяков - это «регион», и вы входите и выходите из региона, основываясь на радиусе действия и видимости маяка для ВАС, а не наоборот. К сожалению, Apple использовала термин регион, который большинство из нас, вероятно, ассоциируют с MapKit, так что это добавляет общей путаницы 

Вот плохие новости: вы можете сканировать только те ProximityUUID, которые вам известны, нет «подстановочного знака» бесконтактного UUID. Кроме того, CLBeacons не представляет ничего в плане низкоуровневых кишок CoreBluetooth, поэтому, если вы хотите найти все маяки, которые находятся рядом с вами, вам придется использовать CoreBluetooth, сканировать периферийные устройства, а затем искать возвращенные периферийные устройства. и запросить каждого из них, чтобы найти маяки. Конечно, Apple не зарегистрировала (с помощью Bluetooth SIG) и (пока) не опубликовала характеристики iBeacon, поэтому вам понадобится анализатор BT для обратного инжиниринга того, что представляет собой iBeacon с любого другого устройства BLE. 

7
dhmspector

К сожалению, в настоящее время вы не можете искать произвольный iBeacon, не зная сначала значения близостиUUID. Я попытался написать напрямую в COREBluetooth, и, хотя вы можете обнаружить и подключиться к передающим маякам в вашем регионе, вы получите обратно несерьезное отношение к BLE UUID. Таким образом, вы даже не можете подтвердить, что подключенное вами периферийное устройство на самом деле является iBeacon.

Это не является ограничением спецификации BLE, скорее это ограничение, наложенное Apple. Также представляется, что это ограничение не существует для платформы Android.

Пока этот разрыв не будет устранен, Android будет иметь значительное преимущество перед iOS в этой области.

Я не согласен с предыдущими комментариями о том, что сканирование UUID будет бесполезным. Напротив, если вы знали UUID маяка, вы можете создать карту маяка/местоположения/объекта в облаке и использовать ее для навигации (при условии, что маяк был исправлен) с помощью веб-службы. Вы можете собирать данные, чтобы в конечном итоге очень богатая база данных пар UUID/местоположения маяка была бы доступна всем, кто хотел написать приложения для определения местоположения. Возможно, именно поэтому Apple скрывает информацию; они могут сдерживать это для своих собственных целей.

5
TNBtech

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

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

сканирование на неизвестные UUID не будет очень полезным, так как ваше приложение не будет знать, что делать с информацией.

uUID генерируется раз и навсегда, используя команду «uuidgen» в терминале.

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

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

вы должны либо использовать Bonjour для связи с устройством через WIFI, либо использовать основной и вспомогательный идентификатор для получения данных из какого-либо веб-сервиса.

5
Pizzaiola Gorgonzola
0
Heath Borders