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.