При использовании API мониторинга маяков (например, вы получаете обратный вызов didEnterRegion
), вы обычно не знаете, какой маяк инициировал запись и вошел ли второй маяк снова. Чтобы получить эту информацию, вам необходимо использовать API определения дальности маяка.
При использовании API определения дальности маяка (например, вы получаете обратный вызов didRangeBeaconsInRegion
), обратные вызовы будут выполняться с частотой ~ 1 секунда. Если вы записываете временную метку в самый первый раз, когда получаете обратный вызов для определенного маяка, а затем связываете его с идентификатором маяка, вы можете позже определить, какой идентификатор маяка был обнаружен первым.
Если два маяка появляются одновременно в пределах того же обратного вызова, тогда вам понадобится более точная метка времени, чем вы можете получить, просто посмотрев на время выполнения обратного вызова. Если вы используете Android Beacon Library версии 2.17+, вы можете получить такую временную метку, позвонив beacon.getFirstCycleDetectionTimestamp()
. Этот метод возвращает количество миллисекунд с 1970 года, когда был обнаружен первый пакет радиомаяка, который привел к обратному вызову ранжирования.