2016-04-29 85 views
2

我有一個監控iBeacons進入/退出事件的應用程序。當它收到一個事件時,它將事件轉發給服務器。在用戶最小化和/或強制關閉它之後,應用程序繼續工作(例如,服務器繼續接收更新)(因此它在後臺正常工作)。iBeacon後臺監控停止工作

但是,在手機離開任何iBeacons足夠長的時間(例如,一夜之間)並再次接近iBeacons後,該應用會停止接收進入/退出更新,直到用戶再次打開它(帶來它進入前臺)。如果用戶在此時最小化/關閉應用程序,則更新在後臺繼續正常工作。

我需要做什麼來允許在後臺長時間運行監控更新?一段時間後,iOS會停止後臺監控嗎?

注:我在運行iOS 9.3.1

+0

你是否問過這個用戶:使用這項服務需要用戶的「始終」授權。 – k1th

+0

是的,我正在使用「始終」授權。我相信這是正常工作,因爲我在用戶最小化/強制關閉應用程序後繼續觀察更新。 – mattnedrich

回答

2

iOS應用都應該是能夠在後臺無限期檢測信標時,他們已被授予「永遠」的位置訪問。

這是我聽過的第二份報告,所以我不知道它是一個錯誤還是新的iOS版本的變化。報告你的iOS版本會有所幫助。

一種可能性:網絡呼叫可能被阻止,而不是信標檢測。在成功和不成功連接到服務器

  1. 登錄信標檢測
  2. 日誌:您可以通過添加的NSLog語句來檢驗這一假設。

一旦添加了上述內容,重現了在服務器上看不到事件的問題。然後將手機連接到XCode並轉到設備,然後查看最近的NSLog輸出以查看:

  1. 是否有指示檢測到信標的線?
  2. 服務器連接是否成功?

如果您發現網絡連接失敗,您可以通過請求額外的後臺網絡權限來糾正這種情況。

編輯:當您未嘗試檢測時,您可能會嘗試的另一件事是在前臺啓動不同的信標掃描器應用,如Locate。這將迫使一個OS藍牙掃描,它可能會啓動您的應用程序的檢測。如果這樣做,它會告訴你,藍牙掃描已被暫停在整個電話。

+0

感謝您的建議,我會給這個鏡頭。有一件事讓我懷疑這是一個網絡問題,我甚至都沒有看到當它停止工作時,在鎖定屏幕上出現建議的應用程序圖標。我的理解是,如果應用程序檢測到它正在監視的信標,則iOS將在鎖定屏幕左下角顯示該應用程序圖標。 – mattnedrich

+0

同意你應該懷疑,因爲你沒有看到圖標。看看我對我的問題的編輯其他建議。另外,請張貼您的iOS版本。 – davidgyoung

+0

我試過啓動不同的信標掃描器應用程序 - 我們使用的是Estimote信標,所以我推出了Estimote掃描儀應用程序。它能夠在Estimote應用程序中看到信標,但是,我的應用程序沒有醒來,並且在我再次啓動之前仍然沒有收到任何信標更新。我很樂觀,認爲這可能有效,但不幸的是沒有。 – mattnedrich