IOS蓝牙BLE writevalue返回“未知错误”

问题描述:

我的深化发展IOS我的第一个智能蓝牙(BLE)软件6.IOS蓝牙BLE writevalue返回“未知错误”

我能够接收通知和阅读chracteristics值与Nordic Development kit交换,包括从定制GATT我创建的配置文件(使用特定的UUID进行服务和特性)。

但是,每次我尝试写入特征值时,都会收到错误消息Unknown Error,但没有更多信息。没有错误代码,没有来自XCode的CoreBluetooth[WARNING]

我已经将我的服务和特性属性权限设置为无需身份验证。使用开发的北欧工具,我可以为我的特征写一个值,所以它不会是一个权限问题。

这里是我用写值

uint16_t val = 2; 
NSData * valData = [NSData dataWithBytes:(void*)&val length:sizeof(val)]; 
[testPeripheral writeValue:valData forCharacteristic:characteristic type:CBCharacteristicWriteWithResponse]; 

的代码,并在错误“未知错误”惜售回调

- (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]); 

    //code... 
} 

在控制台中的错误文本

Did write characteristic value : <068c0e00 fedc070c 050b3200 04> with ID Unknown (<4444>) 
With error: Unknown error. 

错误信息中的值不是我想要写的??! 444是我用于测试的正确UUID。

要重写的值的长度是否重要?

在互联网上看到hoirs并试了很多测试后,我需要找出它。 有什么建议吗?

+0

如果仍然未解决,错误号是多少? – Larme

问题出在设备数据库管理上,而不是在IOS端。但是,没有来自CoreBluetooth的错误代码,很难弄清楚!

+0

我面临同样的问题。设备数据库管理的含义是什么?你能否再解释一下,以帮助我们理解根本原因。 – Abhinav

+1

我有一些关于我的uController中的特征的错误设置。您可以尝试在IOS蓝牙属性上取消配对设备以强制进行新的配对/密钥交换。您也可以尝试通过关闭后台实例来使用应用程序的新实例(如果存在并重新启动它)。祝你好运 – sdespont

sdespont是对的。

我面临同样的问题。只需双击主页按钮并向上滑动以终止应用程序,然后重新启动它,然后BLE工作! 我认为它位于设备数据库管理中,即使在调试期间也应该取消连接。

您应该检查CBCharacteristic的属性。如果属性指示特征不可写,您可能会收到此错误。

祝你好运。

+0

非常感谢:) –