我正在尝试扫描附近所有可用的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);
}
任何人都可以指导我如何建立与多个外围设备的连接? 感谢
答案 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:
方法以连接它们。