簡體   English   中英

IOS CoreBluetooth:BLE斷開連接時,應用程序在后台運行

[英]IOS CoreBluetooth : App Running in Background When BLE is Disconnected

我試圖在BLE斷開連接時在后台運行我的應用程序。但是一段時間后系統會終止該應用程序。因此,我閱讀了蘋果的文檔《核心藍牙編程指南》。最后我在“ iOS應用程序的核心藍牙后台處理”。

“在后台執行長期行動

某些應用可能需要使用Core Bluetooth框架在后台執行長期操作。 例如,假設您正在為與門鎖(配備低功耗藍牙技術)通信的iOS設備開發家庭安全應用程序。 應用程序和鎖的交互作用是在用戶離開家時自動鎖定門,並在用戶返回時自動將門解鎖-所有這些都在后台進行。 當用戶離開家時,iOS設備最終可能會超出鎖的范圍,從而導致與鎖的連接丟失。 此時,應用程序可以簡單地調用CBCentralManager類的connectPeripheral:options:方法,並且由於連接請求不會超時,因此當用戶返回家園時,iOS設備將重新連接。 現在,假設用戶離開家了幾天。 如果應用程序在用戶不在時被系統終止,則當用戶返回家中時,該應用程序將無法重新連接至鎖,並且用戶可能無法解鎖門。 對於此類應用程序,至關重要的是能夠繼續使用Core Bluetooth執行長期操作,例如監視活動和未決的連接。”

從這段話中我們知道,“監視活動和未決連接can solve the problem但是我找不到任何方法來monitoring active and pending connections

核心藍牙框架參考

BLE斷開連接后,如何實現使我的應用程序在后台運行?

有人有什么主意嗎 ?

如果使用藍牙中心后台執行模式注冊應用程序,則該應用程序如果未運行,將被啟動,並獲得調用它的委托方法來處理發現和連接,例如centralManager:didDiscoverPeripheral ,從中可以調用connectPeripheral:options:

確實,系統可能會在后台殺死您的應用程序,但會為這些事件重新啟動它。

系統唯一不會重新啟動您的應用程序以執行后台BLE的情況是,如果用戶在上次啟動時強行殺死了該應用程序。 系統會記住這一點,並且不會重新啟動應用程序,直到用戶第一次手動重新啟動它為止。

暫無
暫無

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

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