У меня есть программа в swift, которая обнаруживает, что маяк находится в диапазоне и выходит за пределы диапазона, даже несмотря на то, что приложение находится в фоновом режиме.
Проблема, которую у меня есть, занимает около 30 секунд для didExitRegion для запуска. Я знаю, что это 30 секунд - это не регулируемое значение, но для моего приложения 30 секунд - это длинный путь, чтобы уйти от маяка, чтобы получить уведомление. Какую еще альтернативу я должен решить эту проблему?
Возможно ли отслеживать значительное значение, когда приложение находится в фоновом режиме, и дать ему как 10 секунд для ложного позитива, и если все еще не видно основного значения, то я знаю, что я вне диапазона? Если да, любой образец, чтобы показать, как контролировать основное значение?Альтернатива didexitregion при мониторинге ibeacon
ответ
Альтернативой является создание маяка в диапазоне и создание собственного события выхода, если вы не видели никаких маяков в регионе в течение меньшего периода времени, скажем, 10 секунд.
Однако существует большое ограничение делать это:
В фоновом режиме на IOS, вы можете колебаться только для маяков в течение ограниченного периода времени после события ввода области, или после того, как приложение получает толкнули к задний план. По умолчанию это всего лишь 5 секунд, но может быть extended up to 3 minutes programatically. Через три минуты вы не получите больше обратных вызовов, поэтому, если к тому времени вы не обнаружите 10-секундный выход, вам придется полагаться на обычное событие didExitRegion
.
Если вы используете эту технику, вам нужно понять, что iOS все еще сообщает о присутствии маяка на некоторое время после того, как он не был обнаружен, с близостью UNKNOWN.
Вот пример того, как сделать это в пределах обратного вызова:
var lastBeaconDetectionTime = 0.0
var exitFired = false
func locationManager(manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], inRegion region: CLBeaconRegion) {
for beacon in beacons {
if beacon.proximity != CLProximity.Unknown {
lastBeaconDetectionTime = NSDate().timeIntervalSince1970
exitFired = false
}
}
if NSDate().timeIntervalSince1970 - lastBeaconDetectionTime > 10.0 && !exitFired {
exitFired = true
// TODO: Add logic for region exit firing after 10 seconds
}
}
- 1. Мониторинг iBeacon с ненадежными результатами (didEnterRegion & didExitRegion)
- 2. locationManager 'didExitRegion' не получает вызов iBeacon Xcode
- 3. Доступны ли основные/второстепенные значения iBeacon при мониторинге региона?
- 4. locationManager: didEnterRegion и didExitRegion никогда не получат вызов: iBeacon
- 5. didExitRegion не срабатывает при выключении bluetooth
- 6. Сделать обратный вызов в didExitRegion с помощью iBeacon
- 7. Каковы наиболее важные показатели при мониторинге openDJ?
- 8. Получение проблемы при мониторинге .docx файл меняет
- 9. Запуск приложения, когда IBeacon обнаружен
- 10. Использование InfluxDB в мониторинге
- 11. IBeacon не будет работать
- 12. didEnterRegion, didExitRegion не называется
- 13. Мониторинг iBeacon в фоновом режиме
- 14. iBeacon Monitoring Reliability
- 15. iOS iBeacon Мониторинг случайно запущен
- 16. iBeacon Monitoring не работает с Cordova-plugin-ibeacon
- 17. Мониторинг iBeacon не работает должным образом
- 18. iBeacon на iOS8 не работает должным образом?
- 19. Предостережение для фона IBeacon области Ранжирования
- 20. Swift - получить iBeacon - внешний класс
- 21. сделалEnterRegion и didExitRegion анимация противоречивая
- 22. AltBeacon: didExitRegion и didEnterRegion Чередование
- 23. didExitRegion timer reset во время одновременных выходов
- 24. AltBeacon - вопросы надежности: «didExitRegion» часто называют даже если маяк право помимо андроид устройства
- 25. Может ли ibeacon общаться с ibeacon?
- 26. IOS8 iBeacon Мониторинг после перезагрузки устройства
- 27. Как Azure WebJobs приостанавливает сообщения при мониторинге нескольких очередей?
- 28. Запуск при запуске и мониторинге процессов redis и node.js
- 29. Приложение не перезапустится при мониторинге значительных изменений местоположения CLLocationManager - iPhone
- 30. Возможно ли отложить обновление местоположения при мониторинге значительных изменений местоположения?
Спасибо, что звучит как хорошее решение – borna