我正在研究 corebluetooth 框架,如果两个 BLE 都可见,我可以发现并连接设备。现在我遇到一个问题,一旦发现外围设备由于某种原因被关闭,我就能够发现设备现在我正在尝试使用连接该设备
[centralManager connectPeripheral:activePeripheral options:nil];
这种方法,但是外围设备无法连接,所以我需要在连接之前检查外围设备是否可用。
谢谢
我正在研究 corebluetooth 框架,如果两个 BLE 都可见,我可以发现并连接设备。现在我遇到一个问题,一旦发现外围设备由于某种原因被关闭,我就能够发现设备现在我正在尝试使用连接该设备
[centralManager connectPeripheral:activePeripheral options:nil];
这种方法,但是外围设备无法连接,所以我需要在连接之前检查外围设备是否可用。
谢谢
你有一种方法:
- (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];
然后将不断调用上述方法来更新外围设备的状态。然后您可以观察一段时间内未调用该方法的外围设备,然后从列表中删除该外围设备
或者第二种选择是在连接到外围设备之前再次扫描它。