我正在寫一個藍牙LE應用程序。在應用程序中,用戶遷移到設置 - >藍牙外設以獲取範圍內的BLE設備列表。他們通過點擊選擇其中一個設備,然後在成功連接到所選設備後將用戶發送回設置視圖控制器。iOS/Swift:在另一個ViewController的AppDelegate中設置變量(藍牙/ ble)
這裏是我的問題:
1)當涉及到回調,如didDiscoverCharacteristicsForService和didUpdateValueForCharacteristic,只有當他們視圖控制器當前活動的一部分提供這些價值?
2)當我的用戶選擇他們想要連接的設備時,如何在另一個控制器(例如我的PeripheralController)的AppDelegate控制器中設置一個變量?
我需要能夠使用前面提到的兩個回調,無論用戶在應用程序中的哪個位置,但只有在他們選擇了要連接的設備之後。
3)假設用戶在最初選擇要連接的設備後關閉應用程序。這些信息在哪裏保存?它被保存了嗎?
4)我是否必須手動保存它,以便在應用程序再次啓動時,應用程序連接並開始偵聽來自該設備的服務請求?
謝謝。
編輯 我編輯了原始文章並分離了問題,希望他們現在更容易看到和理解。
我是能夠成功地回答問題2但是,我還是很好奇的問題1,我仍然對問題3和4
典型的方法是創建一個管理你的藍牙的對象。該對象可以在'didFinishLaunchingWithOptions'中創建,並作爲屬性存儲在AppDelegate中。例如,該對象可以擁有自己的協議,並根據需要添加視圖控制器作爲其委託或使用NSNotificationCenter「廣播」藍牙事件。 – Paulw11