iOS6 не отключает Bluetooth Smart/LE Peripheral

До обновления до iOS6 все работало нормально, но теперь, когда я запускаю

[centralManager cancelPeripheralConnection:peripheral];

обратный вызов срабатывает

-(void) centralManager:(CBCentralManager *)central didDisconnectPeripheral:(CBPeripheral     *)peripheral error:(NSError *)error{
NSLog(@"Disconnected");
NSLog(@"Error: %@", [error localizedDescription]);
}

и вывод консоли

Disconnected
Error: (null)

Тем не менее, периферийное устройство не отключается, пока я не включу Bluetooth в настройках или не включу телефон (у меня есть статус подключения на периферийном устройстве). Кто-нибудь еще обнаружил эту конкретную проблему iOS6?


person chwi    schedule 15.11.2012    source источник


Ответы (1)


Я считаю, что это функция (если вы хотите так ее называть) iOS6.

Это просто способ не мешать другим приложениям, которые могут использовать соединение (или это может быть в середине процедуры сопряжения). Отключение может занять до 45 секунд.

Если возможно, лучшим решением может быть инициирование отключения от периферийного устройства, тогда отключение произойдет сразу.

http://lists.apple.com/archives/bluetooth-dev/2012/Sep/msg00090.html

person palhaland    schedule 15.11.2012
comment
Это печально слышать. Мое периферийное устройство — вертолет, и отключение используется для отключения двигателей, поэтому, возможно, мне просто нужно отправить 0-данные перед отключением. Спасибо. - person chwi; 16.11.2012