CoreBluetooth [警告]未知错误:241

时间:2013-07-17 05:51:32

标签: iphone ios objective-c core-bluetooth

我正在使用核心蓝牙。我正在做简单的写操作。在外围方面,将这个价值纳入:

- (void)peripheralManager:(CBPeripheralManager *)peripheral didReceiveWriteRequests:(NSArray *)requests 

因为我实现了上面的方法,所以要花费太多时间来写入值。而且我正在中央收到警告:

 CoreBluetooth[WARNING] Unknown error: 241

这很奇怪,因为当我向docs看时,我发现错误代码只有0到17。有没有人能解决这个问题?

4 个答案:

答案 0 :(得分:1)

我仍然没有清除该错误代码。但现在解决了这个问题。我创建了属性CBCharacteristicPropertyWriteWithoutResponse的特征,因此上面的错误被删除了。数据也顺畅写入外设。但仍然想知道这个错误。

答案 1 :(得分:1)

确保您正在致电:

斯威夫特:

func respondToRequest(request: CBATTRequest!, withResult result: CBATTError)

目标-C:

- (void)respondToRequest:(CBATTRequest *)request withResult:(CBATTError)result

成功通过CBATTError.Success并仅调用该函数一次。例如。来自委托回调:

func peripheralManager(peripheral: CBPeripheralManager!, didReceiveWriteRequests requests: AnyObject[]!)

呼叫:

peripheral.respondToRequest(requests[0] as CBATTRequest, withResult: CBATTError.Success)

这解决了我们的问题。

答案 2 :(得分:1)

我同意迈克尔的观点。我以前遇到过同样的问题,最后得到了解决。

如果中央设备将数据写入外围设备,它可以在 CBCharacteristicPropertyWriteWithoutResponse 模式或 CBCharacteristicPropertyWriteWithResponse 模式下工作。第一个不需要外设响应,但第二个响应。如果中央设备在需要时没有从外围设备接收响应,则会发生此错误。由于中央设备只等待几秒钟,因此您应该调用方法

- (void)respondToRequest:(CBATTRequest *)request withResult:(CBATTError)result

只要代理方法

就响应写操作
- (void)peripheralManager:(CBPeripheralManager *)peripheral didReceiveWriteRequests:(NSArray *)requests 

被召唤。

如果写入数据很大,外围设备可能会收到多个CBATTRequest。请记住,只响应请求数组的第一个请求。

答案 3 :(得分:1)

2410xF1位于蓝牙属性协议(ATT)的“应用程序错误”范围内,请参阅第3卷,第F部分,3.4.1蓝牙4.0规范的错误处理。不幸的是,Apple没有记录这些内容的使用。

根据{{委托回调。