我正在设计一款iOS应用程序,其中包含一个定制的蓝牙设备,可以从我的iPhone发送和接收文本。当我发送CBCharacteristicWriteType.WithoutResponse时,我能够将文本数据发送到设备,但是使用它会发送数据作为尽力而为,并且根据Apple文档不能保证。当我尝试使用.WithResponse编写数据时,我收到一个未知错误,所以我在我的iPhone上下载了BT服务器日志,并看到以下消息:
writeCharacteristic - 注意 - ATT - 在设备上写入响应特征句柄0x0025的值“(#my device number#)”
runCommand - 错误 - ATT - 特征句柄0x0024不可写!
processCommands - 错误 - ATT - 设备命令失败“(#my设备编号#)”
这会是蓝牙芯片的问题吗?或者我做错了什么?任何输入都非常感谢!如果需要任何额外的代码,请告诉我,我会把它提起来!
答案 0 :(得分:4)
您需要检查properties
上CBCharacteristic
的{{1}} - 如果指定了CBService
,则特征支持使用响应进行写入。如果仅指定CBCharacteristicPropertyWrite
,则无法执行带响应的写入。
要更改此设置,您需要修改BLE设备中的固件。