ios CoreBluetooth [警告]未知错误:1309

时间:2013-12-04 16:23:07

标签: ios iphone objective-c core-bluetooth

我在运行正在开发的BlueTooth应用程序时偶尔在控制台上收到消息“CoreBluetooth [WARNING] Unknown error:1309”。即使消息指出它是一个警告,它也会停止执行应用程序.I能够通过关闭蓝牙设置然后重新打开来解决这个问题。任何人都可以告诉我是什么导致了这个以及我应该做些什么来避免它?

2 个答案:

答案 0 :(得分:3)

这是一个已知问题,它是由于CoreBluetooth(苹果公司的bug)中的死锁造成的, 1309错误主要出现在您的应用程序作为中央和外围设备运行时,并且当操作相互重叠时,在这种情况下将产生死锁(可以通过重启设备来解决)。

似乎BLE堆栈在其他一些情况下也会被破坏(iOS 7及更低版本),在iOS 7.1堆栈上更加稳定,并且没有这样的问题。
我们如何解决此类问题?
显示用户可以自行解决问题的故障排除屏幕。

您可以在http://help.getpebble.com/customer/portal/articles/957568-troubleshooting#Pair

找到已知的iOS问题

无论如何,我认为你可以开始使用https://github.com/l0gg3r/LGBluetooth,这将减少你身边有错误的机会,让你的工作更有效。
这是读/写示例

<强>读取

[LGUtils readDataFromCharactUUID:@"f045"
                     serviceUUID:@"5ec0"
                      peripheral:peripheral
                      completion:^(NSData *data, NSError *error) {
                          NSLog(@"Data : %s Error : %@", (char *)[data bytes], error);
                      }];

<强>写

int8_t dataToWrite = 0xFF;
[LGUtils writeData:[NSData dataWithBytes:&dataToWrite length:sizeof(dataToWrite)]
       charactUUID:@"cef9"
       serviceUUID:@"5ec0"
        peripheral:peripheral 
        completion:^(NSError *error) {
            NSLog(@"Error : %@", error);
        }];

答案 1 :(得分:1)

由于CoreBluetooth正在发出此“警告”,因此Apple或蓝牙社区中必须有人编写代码或至少知道触发消息的情况。任何人都可以告诉我是什么导致了这个以及我应该做些什么来避免它,或者指出一些能帮助我完成这项工作的材料?

如果我不得不冒险猜测,我会说你没有收到太多回应的主要原因是因为你没有给出任何关于你的问题的描述,“有时候我会看到错误1309并且事情停止了”

如果你还没有,请在bugreporter.apple.com上提交一个错误,并尽可能详细地说明 - 你要做的事情的描述,导致问题的重复步骤,甚至是测试应用程序。直接用错误编号回复我,我会跟进