3

我目前正在使用 CoreBluetooth 扫描我之前使用特定标识符连接的外围设备,然后只连接到外围设备。我知道我可以通过使用服务扫描外围设备来做到这一点,然后与标识符进行比较,如果条件满足,然后连接到外围设备,如下面的代码

func discoverDevices(){
    centralManager.scanForPeripheralsWithServices([CBUUID(string: "1234")], options: nil)
}
func centralManager(central: CBCentralManager, didDiscoverPeripheral peripheral: CBPeripheral, advertisementData: [String : AnyObject], RSSI: NSNumber) {
    if peripheral.identifier == NSUUID(UUIDString: "AD4612DG87-7512-683D-79RT-234DFG987RUI{
    self.centralManager.connectPeripheral(peripheral, options: nil)
    }
}

有没有其他正确的方法可以直接扫描特定的外围设备?谢谢

4

1 回答 1

1

据我所知,CoreBluetooth 不允许您直接扫描特定的外围设备。

但是,您可以通过调用来检查它是否已经是系统的已知外围设备retrievePeripheralsWithIdentifiers:

您只需要扫描一次并CBPeripheral在发现对象后保留对它的引用。然后您可以稍后使用connectPeripheral:options:

于 2016-01-29T08:25:01.980 回答