Никогда не видел ничего в CoreBluetooth Framework о поддержании соединения в фоновом режиме

Я использую Xcode 5 и CoreBluetooth Framework.
В файле plist

Требуемые фоновые режимы -> приложение общается с помощью CoreBluetooth

В Xcode 5 есть раздел дляФоновые режимы в возможностях вашего приложения. Установить фоновые режимы наНА и проверить"Использует аксессуары Bluetooth LE"

Наше приложение и соединение BLE работает нормально, пока приложение работает.
Проблема в том, что когда телефон переходит в спящий режим или если задняя часть переходит в фоновый режим, соединение BLE перестает работать.
Я не видел ничего в CoreBluetooth Framework о том, чтобы поддерживать соединение в фоновом режиме.

Когда приложение получит фон, чем вызовет методstartBackgroundNotification, как ниже метод

-(void)startBackgroundNotification{
    self.counterTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
            [[UIApplication sharedApplication] endBackgroundTask:counterTask];
    }];
    BackgroundManager = [[CBCentralManager alloc]initWithDelegate:self queue:nil];
    nDevices = [[NSMutableArray alloc]init];
    sensorTags = [[NSMutableArray alloc]init];
}

После вызова startBackgroundNotification, чем будет вызывать (делегировать)centralManagerDidUpdateState

-(void)centralManagerDidUpdateState:(CBCentralManager *)central {
    if (central.state != CBCentralManagerStatePoweredOn) {
            UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"BLE not supported !"
                                                               message:[NSString stringWithFormat:@"CoreBluetooth return state: %d",central.state]
                                                              delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
            [alertView show];
        }
    }
    else
        [central scanForPeripheralsWithServices:nil options:nil];
}

Но никогда не вызывайте функцию ниже

-(void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI{
}


Когда приложение находится в фоновом режиме, и мы нажимаем кнопку на устройстве BLE, телефон выдает уведомление о том, что устройству необходим доступ к приложению, поэтому я должен снова открыть приложение вручную.

Ответы на вопрос(1)

Ваш ответ на вопрос