我有一個swift中的程序,用於檢測信標何時處於範圍內且超出範圍,即使應用程序處於後臺。
我遇到的問題是didExitRegion需要大約30秒纔會觸發。我知道這30秒是一個不可調整的值,但對於我的應用程序來說,30秒是遠離燈塔以獲取通知的很長一段路。我還有什麼其他的選擇來解決這個問題?
當應用程序處於後臺時,是否有可能監視某個Major值,並將它假設爲10秒作爲誤報,如果仍然沒有看到主要值,那麼我知道我超出範圍? 如果答案是肯定的,任何示例顯示如何監視主要價值?在監控ibeacon時替代didexitregion
0
A
回答
1
另一種方法是做燈塔範圍,並創建自己的退出事件,當你在該地區沒有看到任何信標在一個較短的時間段,比如說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(Kontakt Beacon)區域監控在android
- 2. 如何在iOS屏幕關閉時繼續監控iBeacon?
- 3. iBeacon - 監控區域的最大限制
- 4. iOS8 iBeacon設備重啓後的監控
- 5. 從Appdelegate設置iBeacon操作和監控
- 6. iBeacon監控與應用程序類
- 7. iBeacon監控/重新啓動手機後
- 8. iBeacon後臺監控停止工作
- 9. 使用iBeacon在didExitRegion中創建後端電話
- 10. CLLocation區域監控開始,但didExitRegion不會被調用iPhone上
- 11. iBeacon:前臺監視時間間隔(didDetermineStateForRegion)
- 12. 替代Nagios監控自定義警報
- 13. locationManager:didEnterRegion和didExitRegion永遠不會被調用:iBeacon
- 14. IBeacon區域監控在設備間不一致工作
- 15. iOS設備是否可以同時作爲iBeacon廣播並監聽iBeacon?
- 16. iBeacon百貨商場情景 - 測距與監控
- 17. 新的可能iBeacon顯示監控問題,因爲的Xcode 6.3
- 18. Gimbals如何受iOS 7.1 iBeacon監控更新的影響?
- 19. LocationManager和iBeacon:如何統計當前監控區域的數量
- 20. 斯威夫特iBeacon只監控了一個燈塔
- 21. 使用代理時監控httpwebrequest流量?
- 22. 得到didExitRegion
- 23. 實時MySQL監控
- 24. 地區監測的iOS:didEnterRegion火災,但didExitRegion不simuator
- 25. Zabbix代理狀態監控
- 26. didExitRegion沒有關閉藍牙時觸發
- 27. 在較長時間段內監控Java代碼指標
- 28. 替代ActiveX控件
- 29. 替代Webbrowser控件
- 30. 科爾多瓦應用程序監控在應用程序處於死亡狀態時顯示Estimote/iBeacon IOS
謝謝,這聽起來像一個很好的解決方案 – borna