美文网首页iOS-swift程序员
ATBluetooth基于Swift4.0原生CoreBluet

ATBluetooth基于Swift4.0原生CoreBluet

作者: GiantForJade | 来源:发表于2017-12-06 23:04 被阅读41次

    ATBluetooth

    ATBluetooth基于Swift4.0原生CoreBluetooth的封装,目前仅支持中心模式,实现了设备的扫描搜索,连接,重新连接,以及数据的读写功能,可无缝接入蓝牙开发,目前项目持续优化中.

    使用教程

    使用者只需关注ATBlueToothContext以及ATBleDevice即可

    设备搜索实现

    atBlueTooth = ATBlueToothContext.default
    atBlueTooth.confing(.CenteMode)//目前仅支持中心模式
    atBlueTooth.delegate = self //设置代理 ATCentralDelegte
    atBlueTooth.startScanForDevices(advertisingWithServices: ["FFF0"]) // 扫描特定的服务
    atBlueTooth.startScanForDevices() //扫描所有服务
    
    //ATCentralDelegte
    func didFoundATBleDevice(_ device: ATBleDevice)
    
    • 搜索到的设备会创建ATBleDevice,具体属性可以见文件,使用者可以根据自己的需要保存相关信息,过滤添加自己需要的蓝牙智能设备。

    连接设备

    atBlueTooth.connect(device)
    device?.delegate = self //设置代理 ATBleDeviceStateDelegate
    func updatedATBleDeviceState(_ state:ATBleDeviceState,error:Error?)//可由此获取设备是否连接成功 or device.state
    
    

    向设备发送数据

    atBlueTooth.writeData(_ data:Data,type:ATCharacteristicWriteType = .withResponse,block: writeResult = nil)
    
    • 发送结果有两种回馈方式 block or delegate(ATBleDeviceStateDelegate)
      func updatedIfWriteSuccess(_ result: Result<Any>?) {
            guard result != nil else {
                return
            }
            switch result! {
            case .Success(let value):
                Print(value)
            case .Failure(let error):
                Print(error)
            }
      }
    

    设备重新连接

    //由设备的uuidString  此标志同一设备在不同的手机不同
    func reconnectDevice(_ uuidString:String?) //ATBlueToothContext
    

    ATBluetooth是利用工厂模式一步步进行开发实现的,项目开发大部分都是基于中心模式,后续会实现peripheral模式,持续优化中,望给出建议,欢迎issues,star.

    相关文章

      网友评论

        本文标题:ATBluetooth基于Swift4.0原生CoreBluet

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