Я подозреваю, что ваши маяки недостаточно часто рекламируются для надежного обнаружения.
Каждый изготовитель маяка имеет различную скорость рекламы по умолчанию - как часто отправляются пакеты. Стандарт iBeacon требует 10 Гц (10 пакетов в секунду), но многие производители маяков с батарейным питанием уменьшают это значение до 1 Гц (1 пакет в секунду) для экономии батареи.
Проблема заключается в том, что не 100% пакетов обнаруживаются даже в наилучших условиях, что является одной из причин, по которым Apple устанавливает скорость передачи в 10 раз больше обычной скорости измерения раз в секунду, чтобы обеспечить надежное обнаружение.
Чтобы исправить это, сделайте одно из двух:
- Сконфигурируйте ваши маяки, если возможно, для рекламы на частоте 10 Гц.
- Измените период сканирования на 10 секунд, чтобы увеличить время сбора дополнительных пакетов:
beaconManager.setForegroundScanPeriod(10000);