核心蓝牙 - 无法使用CBCharacteristicWriteType.WithResponse写入值

时间:2015-02-12 16:28:18

标签: ios swift bluetooth core-bluetooth

我正在设计一款iOS应用程序,其中包含一个定制的蓝牙设备,可以从我的iPhone发送和接收文本。当我发送CBCharacteristicWriteType.WithoutResponse时,我能够将文本数据发送到设备,但是使用它会发送数据作为尽力而为,并且根据Apple文档不能保证。当我尝试使用.WithResponse编写数据时,我收到一个未知错误,所以我在我的iPhone上下载了BT服务器日志,并看到以下消息:

  

writeCharacteristic - 注意 - ATT - 在设备上写入响应特征句柄0x0025的值“(#my device number#)”

     

runCommand - 错误 - ATT - 特征句柄0x0024不可写!

     

processCommands - 错误 - ATT - 设备命令失败“(#my设备编号#)”

这会是蓝牙芯片的问题吗?或者我做错了什么?任何输入都非常感谢!如果需要任何额外的代码,请告诉我,我会把它提起来!

1 个答案:

答案 0 :(得分:4)

您需要检查propertiesCBCharacteristic的{​​{1}} - 如果指定了CBService,则特征支持使用响应进行写入。如果仅指定CBCharacteristicPropertyWrite,则无法执行带响应的写入。

要更改此设置,您需要修改BLE设备中的固件。