Можно ли изменить время didExitRegion с помощью android-beacon-library

Я работаю с iBeacons и использую библиотеку AltBeacon.

Я бы спросил, можно ли изменить время между последним просмотром маяка и вызовом didExitRegion.

Я нашел общедоступную статическую длинную строку INSIDE_EXPIRATION_MILLIS = 100001, поэтому я предполагаю, что время составляет 10 секунд. Это правильно?

К сожалению, я не нашел способа установить другое значение.

Есть ли какой-либо другой метод, который показывает мне, когда маяк не виден в течение определенного времени? (3-5 секунд)

Любые предложения будут ценны.

2 ответа

Решение

Да, вы правы, что выход из области библиотеки Android Beacon запускается через 10 секунд после последнего просмотра маяка, и указанная вами константа java - единственный способ ее настройки. Изменение этого означает перекомпиляцию источника для библиотеки.

Создание этого настраиваемого во время выполнения является разумным запросом новой функции. Если вы заинтересованы в его создании, сделайте это здесь: https://github.com/AltBeacon/android-beacon-library/issues/new

Кроме того, если у вас есть навыки, мы будем рады, если вы внесете изменения самостоятельно и отправите запрос на размещение на GitHub. Так создается лучшее программное обеспечение с открытым исходным кодом!

Пока эта функция не добавлена, вы можете увеличить время выхода, добавив таймер в обратный вызов didExitRegion. Делать его короче сложнее, но вы можете использовать таймер для обратного вызова didRangeBeaconsInRegion и отменить таймер, если вы получите другой обратный вызов, прежде чем он сработает.

Одно предостережение об уменьшении времени: не все пакеты маяков принимаются мобильными устройствами, а некоторые маяки не передаются очень часто. Время выхода по умолчанию на iOS составляет всего 3 секунды, и это часто приводит к прерывистым событиям выхода / входа, когда медленные рекламные маяки (те, которые передают только 1 Гц) находятся вокруг телефона, который пропускает три передачи подряд.

Для новых читателей:

BeaconManager.setRegionExitPeriod(2000); // 2 seconds
Другие вопросы по тегам