Будут ли CBCentralManager, методы делегата CBService вызываться в фоновом режиме в iOS6

Я использую Apple Core пример Bluetooth. Периферийное устройство работает на переднем плане в одном устройстве iphone. Я запускаю клиентское приложение cbcentral на одном устройстве. Оно хорошо работает, когда оба приложения в переднем плане. Мне нужно, когда я запускаю клиентский клиент cbcentral в фон, что методы делегата не вызываются, в которых я упомянул локальное уведомление. уведомление не приходит в фоновом режиме. Могу ли я использовать NSOperation для запуска методов делегата Bluetooth, как мы делаем NSUrlConnection? Будет ли это работать в последней версии iOS? Я проверил это, но это не работает.

Код:

-(void) peripheral:(CBPeripheral *)aPeripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error  
 {

          ..............
          ...............
         UILocalNotification *localNotif = [[UILocalNotification alloc] init];

         localNotif.fireDate = [itemDate dateByAddingTimeInterval:-(minutesBefore*60)];

         localNotif.timeZone = [NSTimeZone defaultTimeZone];

         localNotif.alertBody =  @"hi";

         localNotif.alertAction = NSLocalizedString(@"View Details", nil);

         localNotif.soundName = UILocalNotificationDefaultSoundName;


         [[UIApplication sharedApplication] scheduleLocalNotification:localNotif];

        ..............
 }

1 ответ

Решение

Я считаю, что вы ищете, это ядро ​​Bluetooth UIBackgroundModes здесь

Кроме того, вы можете захотеть взглянуть на Core Bluetooth и фоновый режим: обнаружение устройства и запуск действия даже после нескольких дней в фоновом режиме? и что именно могут делать приложения CoreBluetooth в фоновом режиме?

Основные фоновые режимы Bluetooth работают в iOS 5 или более поздней версии.

Другие вопросы по тегам