Хорошо, что, черт возьми, происходит с iOS6 и как она справляется с отключениями Bluetooth LE? Раньше устройство сразу отключалось, но теперь по какой-то странной причине устройство ждет отключения около 30-60 секунд. Мне нужно, чтобы отключить ASAFP!
Я облазил весь Интернет, пытаясь выяснить, как инициировать немедленное отключение от периферийного устройства, и нашел это отличное электронное письмо, в котором объясняется обходной путь: отказаться от подписки на уведомления о характеристиках службы.
Теперь я думаю, что делаю это.. Когда я хочу отключиться, я звоню [connected_device setNotifyValue:NO forCharacteristic:connected_characteristic]
Затем в функции didUpdateNotificationStateForCharacteristic у меня есть...
if((int)characteristic.isNotifying == 0){
[manager cancelPeripheralConnection:peripheral];
}
В функции didDisconnectPeripheral...
connected_peripheral = nil;
connected_characteristic = nil;
[connected_peripheral release];
[connected_characteristic release];
Я также тщательно изучил CoreBluetooth Temperature Sensor пример, но это не особо помогло....
Любая помощь в этом была бы потрясающей! Я просто не знаю, что мне не хватает.....
ОБНОВЛЕНИЕ: похоже, что приложение должно быть подключено к устройству Bluetooth не менее минуты, прежде чем ему будет разрешено отключиться. Если приложение подключено более минуты, оно немедленно отключится после отправки команды. В противном случае он будет ждать до этой отметки в одну минуту, чтобы фактически отключиться.
ОБНОВЛЕНИЕ: когда я пытаюсь отключиться до отметки в одну минуту, я получаю следующий вывод в журнал, когда устройство фактически отключается.
Oct 24 16:49:35 Christophers-iPhone awdd[8168] <Error>: libMobileGestalt copySystemVersionDictionaryValue: Could not lookup ReleaseType from system version dictionary
Oct 24 16:49:35 Christophers-iPhone awdd[8168] <Error>: CoreLocation: CLClient is deprecated. Will be obsolete soon.