Как переподключить устройство BLE в фоновом режиме после выключения и включения?

Я работаю над небольшим проектом, связанным с BLE. У меня есть требование, что мне нужно повторно подключить устройство в фоновом режиме после выключения вручную, а затем отключить Bluetooth из iPhone-> Настройки->Bluetooth.

1 ответ

Просто сохраните идентификатор периферийного устройства или (UUID для

Для iOS 7:

- (void)centralManagerDidUpdateState:(CBCentralManager *)central
    {
        if(central.state == CBCentralManagerStatePoweredOn)
        {
            NSUUID *uuid = [[NSUUID alloc]initWithUUIDString:savedUUID];//where savedUUID is the string version of the NSUUID you've saved somewhere

            NSArray *peripherals = [_cbCentralManager retrievePeripheralsWithIdentifiers:@[uuid]];

            for(CBPeripheral *periph in peripherals)
            {
                [_cbCentralManager connectPeripheral:periph options:nil];
            }
        }
    }

Для iOS 6:

- (void)centralManagerDidUpdateState:(CBCentralManager *)central
    {
        if(central.state == CBCentralManagerStatePoweredOn)
        {
            CFUUIDRef uuid;//the cfuuidref you've previously saved
            [central retrievePeripherals:@[(id)uuid]];//now wait for the delegate callback below
        }
    }

    - (void)centralManager:(CBCentralManager *)central didRetrievePeripherals:(NSArray *)peripherals
    {
        for(CBPeripheral *periph in peripherals)
        {
            [_centralManager connectPeripheral:periph options:nil];
        }
    }

ПРИМЕЧАНИЕ: это всего лишь фрагменты кода. Вы должны также контролировать CBCentralManagerStatePoweredOff (среди прочего) и отмените все текущие периферийные соединения, когда вы получите это обновление.

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