iOS蓝牙:写入特性时出现未知错误

时间:2013-02-12 12:51:37

标签: ios objective-c core-bluetooth bluetooth-lowenergy

在我的应用程序中,我发现了一个给定服务的外设。然后我会在继续之前检查所需的所有特征是否存在。

当我为我的特征写一个值时,回调didWriteValueForCharacteristic:触发:

- (void) peripheral:(CBPeripheral *)peripheral didWriteValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error{

    NSLog(@"Did write characteristic value : %@ with ID %@", characteristic.value, characteristic.UUID);
    NSLog(@"With error: %@", [error localizedDescription]);
}  

并产生此输出:

Did write characteristic value : <005c> with ID Unknown (<00005004 1212efde 1523785f eabcd123>)
With error: Unknown error.

值是正确的,特征的128位UUID也是如此,但在我的外围设备中,我实际上从未得到过写入的值。

对可能出错的任何建议?

1 个答案:

答案 0 :(得分:4)

我最初发送了一个WriteWithoutResponse,将此更改为WriteWithResponse,在评论中给了我@Larme所提到的CoreBluetooth[WARNING] error 13。此值corresponded to无效的属性值长度,意味着我发送了错误的数字格式,即我发送了16位值,而外设预期为8位。

更改外设以接受16位数据解决了这个问题。