我使用以下调用通过BLE发送数据
[peripheral writeValue:dataPiece forCharacteristic:characteristic
type:CBCharacteristicWriteWithResponse];
当dataPiece大小为180 bytes
或更少时,一切正常:接受设备接收所有数据,在呼叫设备上调用相应的回调(peripheral: didWriteValueForCharacteristic: error:
)。当大小变大(>180
)时,接收设备仍然获取所有数据(在两个块中:180 bytes
和其余的)。但是在后一种情况下,不会调用发送设备上的回调。
同样[peripheral maximumWriteValueLengthForType:CBCharacteristicWriteWithResponse]
会返回超过512
的{{1}},因此我希望180
能正常工作。
我错过了什么(显然是的,但是什么)?
答案 0 :(得分:0)
对于外围设备,它应在中央调用readValueForDescriptor:
方法时响应描述符。
如果没有响应,则中央无法向其中写入数据。
请参阅:
(void)readValueForDescriptor:(CBDescriptor *)descriptor;
(void)peripheral:(CBPeripheral *)peripheral didUpdateValueForDescriptor:(CBDescriptor *)descriptor error:(nullable NSError *)error;