Справочное приложение altbeacon и несколько вызовов на вход / выход

Я нахожусь на Android 6.0.1 (Nexus 5) и тестирую мониторинг маяков через библиотеку Altbeacon 2.9.1, и во время тестирования устройства дома возле маяка (в нескольких комнатах) я получаю несколько обратных вызовов входа / выхода. Маяк основан на Raspberry Pi 3 с настройками по умолчанию (передача как iBeacon).

Я использую справочное приложение Altbeacon, однако в выходных данных журнала я вижу сообщения о событиях входа (didEnterRegion) каждые 5-6 минут, что приводит к уведомлениям. В это время Nexus 5 стоит на столе.

Единственная модификация исходного кода состояла в том, чтобы добавить определенный регион для мониторинга, но это все.

Любые идеи о том, почему поведение так?

1 ответ

Наиболее вероятным объяснением является то, что передачи от маяка только периодически принимаются вашим устройством Android.

При настройках по умолчанию библиотека маяков Android считает, что регион завершен, если в течение 10 секунд не было обнаружено ни одного маяка, соответствующего этому региону. По умолчанию передатчик маяка Linux будет рассылать рекламу раз в секунду. Если 10 из этих передач пропущены подряд, вы получите выход из региона, а затем вход в регион при следующем получении. Поймите, что даже в идеальных условиях не все передачи маяка принимаются из-за радиошума и других проблем. Как только вы приблизитесь к границе диапазона передатчика маяка, такие прерывистые события входа / выхода будут происходить все чаще и чаще.

Чтобы решить эту проблему, вы можете сделать несколько вещей:

  • Увеличьте частоту передатчика вашего маяка с 1 до 10 Гц. Это значительно уменьшит вероятность того, что пакеты маяка не будут получены в течение 10 секунд.

  • Увеличьте мощность передатчика, если это возможно (хотя это, скорее всего, невозможно с Raspberry Pi)

  • Переместите маяк ближе к приемнику Android

  • Увеличьте время выхода из региона до 10 секунд с 10 секунд, позвонив BeaconManager.setRegionExitPeriod(20000l);

Другие вопросы по тегам