Подтвердить что ты не робот

Ios CoreBluetooth [ПРЕДУПРЕЖДЕНИЕ] Неизвестная ошибка: 1309

Я спорадически получаю сообщение "CoreBluetooth [WARNING] Неизвестная ошибка: 1309" на консоли при запуске приложения BlueTooth, которое я разрабатываю. Несмотря на то, что сообщение указывает, что это предупреждение, оно прекращает выполнение приложения. Я смог обойти эту проблему, отключив Bluetooth и снова включив ее. Может ли кто-нибудь сказать мне, что вызывает это и что я должен сделать, чтобы избежать этого?

4b9b3361

Ответ 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 и включите в нее как можно больше деталей - описание того, что вы пытаетесь сделать, повторите шаги, которые приводят к этой проблеме, даже тестовое приложение. Ответьте мне прямо с номером ошибки, и я последую за ним.