同时连接到多个BLE设备iOS

时间:2015-09-22 04:44:19

标签: ios objective-c

我正在尝试扫描附近所有可用的BLE设备并与它们建立连接,以便我可以继续获取RSSI值。

这是我的代码:

- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral
     advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI {
    NSLog(@"Received peripheral : \n%@", peripheral);
    myPeripheral=peripheral;
    NSLog(@"RSSI value:%@",RSSI);

    [myCentralManager connectPeripheral:peripheral options:nil];
    peripheral.delegate=self;

}

-(void)centralManager:(CBCentralManager *)central didConnectPeripheral:(CBPeripheral *)peripheral{
    //NSLog(@"Peripheral Connected");
    NSLog(@"%@ connected",peripheral.identifier);
}

任何人都可以指导我如何建立与多个外围设备的连接? 感谢

1 个答案:

答案 0 :(得分:3)

您可以这样做:

第1步:停止扫描。这有助于加快连接速度。

[self.centralManager stopScan];

第2步:扫描周边设备。

[self.centralManager scanForPeripheralsWithServices:nil options:nil];

第3步:将所有已发现的外围设备保存在代理回调方法中。

centralManager:didDiscoverPeripheral:advertisementData:RSSI:

步骤2.1:我称之为2.1,因为这将在第2步之后很快执行。使用GCD,在延迟说出2-5秒后调度一个线程(用户dispatch_after)并循环保存的Per和call connectPeripheral:options:方法以连接它们。