comment se connecter avec Bluetooth basse énergie dans ios rapide?

Je veux me connecter avec le périphérique ble. Mais mon code n'appelle pas la fonction didConect

c'est mon code:

func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [Ssortingng : Any], rssi RSSI: NSNumber) { let device = (advertisementData as NSDictionary) .object(forKey: CBAdvertisementDataLocalNameKey) as? NSSsortingng 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) } 

Journaux

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

J'ai résolu ce changement:

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

avec :

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

reference: Swift 3: Impossible de se connecter au périphérique via BLE

J'ai créé un projet de démonstration, qui parsing les périphériques Bluetooth LE et les affiche dans une list:

Découvrez-le sur github: quickies / BluetoothScanner.ios

Capture d'écran

Capture d'écran

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