我正在使用核心蓝牙。我正在做简单的写操作。并在外设端将该值放入:
- (void)peripheralManager:(CBPeripheralManager *)peripheral didReceiveWriteRequests:(NSArray *)requests BUt因为我实现了上面的方法,所以写这个值花费了太多的时间。我得到了中央的警告:
CoreBluetooth[WARNING] Unknown error: 241这很奇怪,因为当我查看docs时,我发现错误代码只有0到17。有没有人有解决这个问题的办法?
发布于 2015-10-09 20:01:45
241或0xF1在蓝牙属性协议(ATT)的“应用错误”范围内,请参阅第三卷,F部分,3.4.1蓝牙4.0规范的错误处理。不幸的是,苹果没有记录这些应用的用法。
我的经验也是,如果iOS没有及时调用-[peripheralManager respondToRequest:withResult:],在响应-peripheralManager:didReceiveReadRequest:委托回调时,它会代表应用程序自动使用0xF1响应ATT错误响应。
发布于 2013-07-17 14:25:43
我仍然没有清除该错误代码。但现在解决了这个问题。我已经创建了带有属性CBCharacteristicPropertyWriteWithoutResponse的特征,所以上面的错误被删除了。也可以平滑地将数据写入外设。但是仍然想知道那个错误。
发布于 2014-06-27 08:55:25
确保你是在打电话:
Swift:
func respondToRequest(request: CBATTRequest!, withResult result: CBATTError)Objective-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)这为我们解决了问题。
https://stackoverflow.com/questions/17692088
复制相似问题