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