Периферийное сканирование CoreBluetooth с определенным идентификатором

В настоящее время я использую 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)
    }
}

Есть ли какой-либо другой способ прямого сканирования для конкретного периферийного устройства? Спасибо

1 ответ

Насколько я знаю, CoreBluetooth не позволяет сканировать напрямую на определенную периферию.

Однако вы можете проверить, является ли это уже известным периферийным устройством к системе, позвонив retrievePeripheralsWithIdentifiers:,

Вам нужно только отсканировать один раз и сохранить ссылку на CBPeripheral объект после обнаружения его. Затем вы можете запросить подключение к нему позже, используя connectPeripheral:options:

Другие вопросы по тегам