1

Я ищу способ обнаружения всех маяков в данной области с одинаковыми или разными идентификаторами (UUID, Major и Minor). На данный момент я могу обнаружить «случайно» один из маяков с одним и тем же идентификатором, а не все.Как обнаружить несколько маяков с одинаковыми идентификаторами?

Вот ситуация под рукой:
У меня 3-маяки, соответственно:

  1. B1 (UUID: 1, Основные: 1, минорный: 1) - расстояние: 1 метр
  2. В2 (UUID: 1, Основные: 1, Малая: 1) - Расстояние: 5 метров
  3. B3 (UUID: 1, Основные: 1, Малая: 2) - Расстояние: 6 метров

маяки все помещены в том же регионе и когда дано 3 uni Que идентификаторы, например B2, имеющие различный минор, чем B1 и B3, я могу проверить, что все 3 маяка обнаружены. Это означает, что нет ничего плохого в работе с маяками или для области, в которой я сканирую.

Проблема в том, что поскольку B1 и B2 имеют одинаковый идентификатор, я получаю только коллекцию, содержащую либо: B1 и B3, либо B2 и B3 в реализации RangeNotifier.didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region).

При использовании приложения RadBeacon для настройки маяков я могу, по сути, видеть все маяки, даже если они имеют одинаковые идентификаторы. Может кто-то может объяснить, почему это происходит и как это исправить?

Установка:
устройства: Android 5.1 LG G4 (Это также происходит из-за края Samsung Galaxy S6)
Библиотека: AltBeacon 2.5.1

ответ

2

По умолчанию Android Beacon Library будет рассматривать все объявления от передатчиков, отправляющих те же идентификаторы маяков, что и один маяк. Начиная с версии 2.3 библиотеки, вы можете настроить это поведение, чтобы он относился к каждому отдельному передатчику (идентифицированному MAC-адресом Bluetooth) в качестве другого маяка. Делать это так просто:

Beacon.setHardwareEqualityEnforced(true); 

Как поведение по умолчанию, так и эта конфигурация имеют свои преимущества для разных вариантов использования. Стоит отметить, что на устройствах iOS CoreLocation отслеживает маяки с помощью идентификатора Bluetooth, поэтому настройка конфигурации, как указано выше, более точно отслеживает поведение IOS. Вероятно, библиотека переключится на это как значение по умолчанию в будущей версии 3.0.

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