所以有一種方法可以通過centralManagerDidUpdateState()
來監控CBCentralManager
的狀態變化。但是有沒有類似的方法調用來監視CBPeripheral
的狀態更改?我找不到在CoreBluetooth
庫中發現的任何內容,並且我想在每次更改CBPeripheralState
時調用一個函數。監控CBPeripheral狀態變化
現在我所擁有的是一個switch語句,用於檢查外設狀態,但它總是會返回連接或斷開狀態。我將如何到達連接/斷開連接的情況?我試過把我switch語句中的我的代碼各個部分,從bleInit()
方法,以startScanning(), connectToPeripheral()
等
switch(peripheral.state){
case .disconnected:
print("disconnected")
case .connecting:
print("connecting")
case .connected:
print("connected")
case .disconnecting:
print("disconnecting")
default: break
}
我能夠使didConnect和didDisconnect啓動並運行,並且外設狀態按預期顯示。不過要回顧一下,我無法得到關於連接和斷開狀態的通知,因爲它們發生得這麼快?出於好奇,爲什麼這些案例暴露在API中?他們通常會用什麼樣的用法? –
我想蘋果在CoreBluetooth狀態跟蹤內部使用它們。我可能不應該說你會「永遠」不會看到它們,但是在外圍設備處於這些狀態之一的瞬間,恰好讀取狀態變量的可能性非常小。 – Paulw11
這可能會偏離主題,但是有什麼方法可以檢查外設斷開連接的原因(不考慮距離或信號強度等因素),無論是在我的應用程序端還是在丟棄連接的硬件端? 我相信我在某個地方看到,只要應用程序處於前臺,Apple不會超時。 –