簡體   English   中英

在信標周圍花費時間

[英]Time spend around a beacon

識別背景中信標周圍(不在區域內)的時間的正確方法應該是什么。 當應用程序使用didRangeBeacons和一些業務邏輯在前台運行時,我能夠做到這一點。我在一些論壇上讀到,當應用程序在后台注冊位置更新時,測距確實有效,但是我沒有成功。 我在plist中為UIBackgroundModes添加了位置更新鍵。

我正在使用estimote信標及其sdk。

我在這里看到兩個可能的解決方案:

  1. 偵聽進入和退出區域事件,存儲時間戳,然后使用它們計算退出時的時間跨度。 如果您將區域定義為僅包含一個信標,則監視該區域等同於監視該信標。 唯一要記住的是,iOS限制了同時要監視的20個區域的限制-因此此解決方案不能擴展到20個以上的信標。

  2. 在后台使用范圍。 除了UIBackgroundModes ,您還需要啟動常規位置服務,即startUpdatingLocation

    當應用程序在前台運行時,信標范圍調整通常會傳遞事件。 當您的應用程序在后台運行時,僅當該應用程序啟用了位置更新后台模式且標准定位服務正在運行時,此服務才會傳遞事件。

    (這來自CLLocationManager類參考 ,“在后台使用位置服務”部分)

    請注意,在后台進行測距將比平時消耗更多的電池壽命,並且Apple還要求使用后台模式的理由。 除非應用程序的用戶從后台模式獲得了一些價值,否則他們可能會選擇拒絕它。 總而言之,明智地使用背景范圍! (:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM