一、无法扫描到蓝牙,但其他APP如LightBlue能搜到
1、方法
func central.scanForPeripherals(withServices: nil, options: nil)
要写在
func centralManagerDidUpdateState(_ central: CBCentralManager)
中的
case .poweredOn:
下,不能写在其他地方。
2、扫描到设备的代理方法改变了,swift2.0的代理方法是
func centralManager(central: CBCentralManager, didDiscoverPeripheral peripheral: CBPeripheral, advertisementData: [String : AnyObject], RSSI: NSNumber)
现在swift3.0的代理方法是
func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber)
如果不把方法改过来,就始终不能获取到扫描到设备的代理。
二、能扫描到设备,无法连接设备
可以扫描到蓝牙设备,能够走上面的didDiscover代理,但是当我连接到指定的蓝牙设备的时候central.connect(peripheral, options: nil),却始终无法连接,蓝牙连接成功和失败的接口都没有回调。
解决方法:
peripherals.append(peripheral)
定义一个数组,把CBPeripheral存储到数组中才可以扫描到此设备。
网友评论