ATBluetooth
ATBluetooth基于Swift4.0原生CoreBluetooth的封裝,目前僅支持中心模式,實現(xiàn)了設(shè)備的掃描搜索,連接贪庙,重新連接,以及數(shù)據(jù)的讀寫功能,可無縫接入藍牙開發(fā),目前項目持續(xù)優(yōu)化中.
使用教程
使用者只需關(guān)注ATBlueToothContext以及ATBleDevice即可
設(shè)備搜索實現(xiàn)
atBlueTooth = ATBlueToothContext.default
atBlueTooth.confing(.CenteMode)//目前僅支持中心模式
atBlueTooth.delegate = self //設(shè)置代理 ATCentralDelegte
atBlueTooth.startScanForDevices(advertisingWithServices: ["FFF0"]) // 掃描特定的服務
atBlueTooth.startScanForDevices() //掃描所有服務
//ATCentralDelegte
func didFoundATBleDevice(_ device: ATBleDevice)
- 搜索到的設(shè)備會創(chuàng)建ATBleDevice,具體屬性可以見文件,使用者可以根據(jù)自己的需要保存相關(guān)信息,過濾添加自己需要的藍牙智能設(shè)備蒿往。
連接設(shè)備
atBlueTooth.connect(device)
device?.delegate = self //設(shè)置代理 ATBleDeviceStateDelegate
func updatedATBleDeviceState(_ state:ATBleDeviceState,error:Error?)//可由此獲取設(shè)備是否連接成功 or device.state
向設(shè)備發(fā)送數(shù)據(jù)
atBlueTooth.writeData(_ data:Data,type:ATCharacteristicWriteType = .withResponse,block: writeResult = nil)
- 發(fā)送結(jié)果有兩種回饋方式 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)
}
}
設(shè)備重新連接
//由設(shè)備的uuidString 此標志同一設(shè)備在不同的手機不同
func reconnectDevice(_ uuidString:String?) //ATBlueToothContext
ATBluetooth是利用工廠模式一步步進行開發(fā)實現(xiàn)的,項目開發(fā)大部分都是基于中心模式,后續(xù)會實現(xiàn)peripheral模式,持續(xù)優(yōu)化中,望給出建議,歡迎issues,star.