How to connect to low energy bluetooth in ios swift?

I want to connect with peripherals. But my code does not call the didConect function

this is my code:

func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) { let device = (advertisementData as NSDictionary) .object(forKey: CBAdvertisementDataLocalNameKey) as? NSString if device?.contains(BEAN_NAME) == true { print("Did discover peripheral", peripheral) self.bluetoothManager.stopScan() self._peripheral = peripheral self._peripheral.delegate = self central.connect(peripheral, options: nil) } } func centralManager( central: CBCentralManager, didConnect peripheral: CBPeripheral) { //cant call this print("connected to \(BEAN_NAME)") peripheral.discoverServices(nil) } 

Magazines:

 BLE service is powered on Did discover peripheral <CBPeripheral: 0x1740eef00, identifier = 4872623B-F872-443A-8A96-F4E1F84D6841, name = GoDoor in :), state = disconnected> 
+4
source share
3 answers

I solved it. just need to change:

 func centralManager(central: CBCentralManager, didConnect peripheral: CBPeripheral) 

in it:

 func centralManager(_ central: CBCentralManager, didConnect peripheral: CBPeripheral) 

reference: Swift 3: Unable to connect to peripherals via BLE

+2
source

I created a demo project that scans Bluetooth LE devices and displays them in a list:

Check it out on github: quickies / BluetoothScanner.ios

Screenshot

Screen shot

+2
source
  @IBAction func btnConnect(_ sender: UIButton){ self.appDelegate.bleManager.stopScan() self.appDelegate.selectPeripheral = self.arrayPeripheral[sender.tag] self.appDelegate.bleManager.connect(self.selectPeripheral, options: nil) } 
0
source

Source: https://habr.com/ru/post/1240777/


All Articles