我一直在使用CoreBlueTooth框架在BTLE iOS設備之間進行通信,並且我看到一個奇怪的行爲。這是我在做什麼:如果外圍設備響應遲一點,中心會出現寫請求的錯誤響應
- iOS設備1(外設):公開一個可寫的特性。
- iOS設備2(中央):掃描可寫特性並將數據寫入其中。
- iOS設備1(外設):接收寫入請求。等待一段時間以確認收到數據。
- iOS設備2(中央):獲取下面的代理回調並收到提到的錯誤。
問題:在這裏,如果我通過調用API [iPeripheral respondToRequest:iRequest withResult:iStatus]
在幾秒鐘內回覆寫請求,那麼它一切正常,我的中央成功。但是,如果我花一些時間,即使我的外設沒有響應寫請求,我也會收到錯誤響應。
這是某種在幾秒鐘內連接丟失或已知的CB框架的行爲,任何想法的?
- (void)peripheral:(CBPeripheral *)iPeripheral didWriteValueForCharacteristic:(CBCharacteristic *)iCharacteristic error:(NSError *)iError
Error Domain=CBErrorDomain Code=0 "Unknown error." UserInfo=0x183a6d70 {NSLocalizedDescription=Unknown error.}
我的中央和外圍設備都在iOS 7.0上運行。
當你說「如果我在幾秒鐘內回覆寫入請求」,你指的是外設側的第3步,是否正確? – cbowns
@cbowns是的。如果我立即執行第3步,那麼它一切正常。 – Abhinav
您的延遲確認有什麼用途? – cbowns