Периферийное сканирование 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: