2016-11-28 10 views
0

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

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

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

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

ответ

0

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

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

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

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

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

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

  • Увеличение тайм-аут области выхода на 20 секунд от 10 сек. По телефону BeaconManager.setRegionExitPeriod(20000l);

0

Как обнаружить только одну запись в день. пользователи входят в ресторан несколько раз, но я хочу уведомлять один раз в день, даже если маяк обнаружен в следующий раз.

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

  • Нет связанных вопросов^_^