0

我正在研究 corebluetooth 框架,如果两个 BLE 都可见,我可以发现并连接设备。现在我遇到一个问题,一旦发现外围设备由于某种原因被关闭,我就能够发现设备现在我正在尝试使用连接该设备

[centralManager connectPeripheral:activePeripheral options:nil];

这种方法,但是外围设备无法连接,所以我需要在连接之前检查外围设备是否可用。

谢谢

4

1 回答 1

1

你有一种方法:

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

如果您添加扫描选项,例如:

NSDictionary * options = [NSDictionary dictionaryWithObjectsAndKeys:@YES, CBCentralManagerScanOptionAllowDuplicatesKey, nil];
[manager scanForPeripheralsWithServices:nil options:options];

然后将不断调用上述方法来更新外围设备的状态。然后您可以观察一段时间内未调用该方法的外围设备,然后从列表中删除该外围设备

或者第二种选择是在连接到外围设备之前再次扫描它。

于 2013-08-06T11:22:07.247 回答