2014-03-12 22 views
0
「respondToRequest withResult」

我一直在使用CoreBlueTooth框架BTLE的iOS devices.On外圍側之間的通信以來,我收到了來自中央寫請求:的iOS:如何觀察的結果是:在CoreBluetooth

- (void)peripheralManager:(CBPeripheralManager *)peripheral didReceiveWriteRequests:(NSArray *)requests{ 
      ... 
} 

根據蘋果的CoreBluetooth醫生,我回答:

[self.peripheralManager respondToRequest:request withResult:CBATTErrorSuccess]; 

然而,這種方法沒有一個返回值或委託方法來表示結果。

我錯過了什麼嗎?

回答

0

respondToRequest:withResult:方法被認爲總是成功的。您必須在HCI級別的Central端觀察它(可能使用hcidump命令或如果使用linux,則使用btmon)。

+1

由於Core Bluetooth堆棧或類似的緩衝區限制,響應肯定會丟失。最近的SO問題揭示了這個問題。發生這種情況時,會導致連接在30秒內自動斷開。這種事件的一個指標是'updateValue:ForCharacteristic'返回false。 – allprog

+0

@allprog如果丟失了,接下來會發生什麼? – gaussblurinc

+0

@gaussblurinc我不確定我是否收到您的問題。我想我在評論中描述了「何時失蹤」的情況。你能說一點嗎? – allprog