美文网首页
ios BLE 蓝牙4.0 swift开发防坑

ios BLE 蓝牙4.0 swift开发防坑

作者: 一束强光 | 来源:发表于2017-04-27 11:29 被阅读0次

    一、无法扫描到蓝牙,但其他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存储到数组中才可以扫描到此设备。

    相关文章

      网友评论

          本文标题:ios BLE 蓝牙4.0 swift开发防坑

          本文链接:https://www.haomeiwen.com/subject/tupgzttx.html