Автоматически подключаться к устройству Bluetooth без сопряжения

Можно ли настроить Bluetooth-устройство таким образом, чтобы мое приложение автоматически подключалось к нему, когда рядом - без сопряжения и т. д.?

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

1 ответ

Что вы можете. Если устройство будет выполнено на заказ и вы знаете его характеристики

Код ниже (TRANSFER_SERVICE_UUID - GUID вашего устройства):

 _centralManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil];


- (void)centralManagerDidUpdateState:(CBCentralManager *)central {
// You should test all scenarios
 if (central.state != CBCentralManagerStatePoweredOn) {
    [self stop];
    return;
 }

if (central.state == CBCentralManagerStatePoweredOn) {
    // Scan for devices
    [_centralManager scanForPeripheralsWithServices:@[[CBUUID UUIDWithString:TRANSFER_SERVICE_UUID]] options:@{ CBCentralManagerScanOptionAllowDuplicatesKey : @YES }];
    NSLog(@"Scanning started");

    if(_delegate)
    {
        if([_delegate respondsToSelector:@selector(CB_changedStatus:message:)])
        {
            [_delegate CB_changedStatus:CBManagerMessage_ScanningStarted message:@"Scanning started"];
        }
    }
  }
}

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

NSLog(@"Discovered %@ at %@", peripheral.name, RSSI);

if (_discoveredPeripheral != peripheral) {
    // Save a local copy of the peripheral, so CoreBluetooth doesn't get rid of it
    _discoveredPeripheral = peripheral;



    // And connect
    NSLog(@"Connecting to peripheral %@", peripheral);

    if(_delegate)
    {
        if([_delegate respondsToSelector:@selector(CB_changedStatus:message:)])
        {
            [_delegate CB_changedStatus:CBManagerMessage_ConnectingToPeripheral message:[NSString stringWithFormat:@"Connecting to peripheral %@", peripheral]];
        }
    }

    [_centralManager connectPeripheral:peripheral options:nil];

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