Ваше описание того, как работают API-интерфейсы мониторинга маяков, является точным. Он одинаков как для iOS CoreLocation, так и для библиотеки маяков Android.
Я - тот, кто разработал этот API для библиотеки маяков Android. Это работает так, потому что я хотел, чтобы было легко создавать кроссплатформенные приложения, поэтому я сделал это так же, как iOS.
Причина, по которой iOS работает таким образом, заключается в том, что Apple смоделировала его на своих ранее существовавший API Geofence Region, который также сообщает вам, когда вы входили или выходили, но не дает вам более подробной информации об особенностях, вызывающих вход или выход.
Можно, конечно, утверждать, будет ли другой API лучше , К сожалению, при использовании SDK вы должны принять API как есть. Альтернатива - построить свой собственный.
Если вы действительно хотите обратный вызов события для определенного c маяка обнаруженного / маяка больше не обнаруживаемого события, вы можете легко построить его поверх API ранжирования. Просто отследите список всех видимых маяков, и, когда новый будет найден, вызовите событие didStertDetectingBeacon. Затем, если пройдет 10 секунд, не видя его в обратном вызове диапазона, запустите обратный вызов didStopDetectingBeacon.