我有一個連接到藍牙外設的iOS應用程序(將其視爲連接的按鈕)。外設處於固定位置,因此不一定在iOS設備的範圍內。我的應用程序旨在作爲後臺任務運行,並且外設會定期通知我的應用程序按鈕按下。在後臺保持iOS BLE應用程序的最佳實踐方法
我發現iOS有時會因爲(我相信)內存壓力而殺死我的應用程序。我認爲BLE狀態保存和恢復將幫助我:
...通過重新啓動被殺死的應用每當藍牙連接到外圍恢復,並壓在外圍的按鈕。然而,這個帖子:
...(由Anton評論)似乎表明,狀態恢復是一個有點片狀和BT關閉後不能恢復狀態/日或之後飛行模式等等。
這是BLE狀態還原的情況。我是否浪費時間試圖讓它發揮作用?如果它能夠工作,那麼在任何地方是否有很好的示例實現?
如果我不能使用狀態恢復,有沒有其他的選擇?
- 保持我的應用程序足跡小,所以它不太可能被iOS殺死?
- 將某種保持活動通信添加到保持應用程序活動的遠程服務器?
- 爲我的應用程序添加消息或VOIP等功能(我知道它需要通過應用商店批准纔是合法的)。這將允許應用程序重新啓動並重新建立BLE外設連接,還是喚醒只允許VOIP特定的API調用?
- 還有什麼?
很明顯,上面的列表不太可取得BLE狀態恢復爲我做的工作。任何意見不勝感激。
你在哪裏看到關於切換飛行模式後不重新連接的意見?我也相當肯定,如果你有一個長時間運行的連接,你會在重新啓動後重新啓動。你真的試圖實施國家恢復和有問題嗎?我發現BLE很難在iOS上很好地使用,但在遇到任何問題之前我不會嘗試解決它。 (當然,如果你的內存使用率很高,你應該繼續努力,但這是完全獨立的。) –
我相信我已經看到了開發人員在很多地方提到的飛機模式問題,包括這裏:[link](https: //forums.developer.apple.com/thread/26798)(這與我在原始文章中的鏈接相同)以及我不清楚這些問題是否仍然存在或與舊版iOS相關。我試圖讓國家恢復工作,但看到一些負面的帖子,這讓我想檢查我沒有浪費我的時間!任何鏈接到一個良好的工作解決方案將是偉大的! –
任何人都可以提出任何技術? –