Время от времени я получаю сообщение «CoreBluetooth [ПРЕДУПРЕЖДЕНИЕ] Неизвестная ошибка: 1309» на консоли при запуске приложения BlueTooth, которое я разрабатываю. Несмотря на то, что в сообщении указано, что это предупреждение, оно останавливает выполнение приложения. Мне удалось чтобы обойти эту проблему, выключив и снова включив настройку Bluetooth.Может ли кто-нибудь сказать мне, в чем причина этого и что мне следует делать, чтобы этого избежать?
ios CoreBluetooth [ПРЕДУПРЕЖДЕНИЕ] Неизвестная ошибка: 1309
Ответы (2)
Это известная проблема. Она возникает из-за взаимоблокировки в CoreBluetooth (ошибка Apple), ошибка 1309 в основном появляется, когда ваше приложение работает как центральное и периферийное, и когда операции перекрывают друг друга, в этом случае возникает взаимоблокировка (которая решается перезагрузкой устройства).
Похоже, что стек BLE повреждается и в некоторых других случаях (iOS 7 и ниже), в iOS 7.1 стек намного стабильнее и не имеет подобных проблем.
Как мы решаем подобные проблемы? strong>
Отображается экран устранения неполадок, на котором пользователь может решить проблему самостоятельно.
Вы можете найти известные проблемы iOS здесь http://help.getpebble.com/customer/portal/articles/957568-troubleshooting#Pair
В любом случае, я думаю, вы можете начать использовать 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);
}];
Поскольку CoreBluetooth выдает это «предупреждение», должен быть кто-то в Apple или в сообществе Bluetooth, кто написал код или, по крайней мере, знает, в какой ситуации вызывается сообщение. Может ли кто-нибудь сказать мне, что вызывает это и что мне следует делать, чтобы этого избежать, или указать мне какой-нибудь материал, который поможет мне в этом начинании?
Если бы мне пришлось рискнуть предположить, я бы сказал, что основная причина, по которой вы не получили большую часть ответа, заключается в том, что вы не дали описания своей проблемы, кроме «иногда я вижу ошибку 1309, и все перестает работать».
Если вы еще этого не сделали, сообщите об ошибке на сайте bugreporter.apple.com и включите как можно больше подробностей — описание того, что вы пытаетесь сделать, воспроизведите шаги, которые привели к проблеме, даже тестовое приложение. Ответьте мне напрямую, указав номер ошибки, и я свяжусь с вами.