前言:
最近做了款藍牙打印的功能,包含藍牙自動連接,藍牙搜索,連接之后進行打印??偨Y(jié)了下知識點,寫了一個簡單的Demo,對系統(tǒng)的<CoreBluetooth/CoreBluetooth.h>進行二次封裝,避免一大推的代理調(diào)用。使用方法:
pod 方法 : ? ? ? ? ? ?pod 'JWBluetoothPrinte'
github地址: ?https://github.com/kafeidou1991/JWBluetoothPrinte
給大家分享下。有什么錯誤的話希望大神們給我留言或者QQ(38251725)我,及時指正,避免誤導小伙伴們,謝謝。
1.導入工程文件
首先我們要知道手機藍牙簡單的工作流程,我們怎么才能實現(xiàn)打印功能呢?下面我說下自己的見解。流程如下:判斷藍牙是否打開-->搜索藍牙設(shè)備-->連接藍牙設(shè)備-->掃描藍牙服務(wù)-->搜索服務(wù)特性-如果有打印特性 即可實現(xiàn)打印。話不多少直接上代碼。使用方法:使用pod? 或者 手動添加 <JWBluetoothPrinte>庫地址也可,在使用的地方導入“#import"JWBluetoothManage.h"”頭文件即可。

2.搜索藍牙設(shè)備列表

搜索結(jié)果里面有兩個數(shù)組返回,peripherals是存放所有搜索到的藍牙設(shè)備數(shù)組,rssis是對應(yīng)藍牙設(shè)備的信號強度數(shù)組,如果不需要 不關(guān)心即可。里面的大致流程就是:調(diào)用系統(tǒng)的廣播功能,進行搜索設(shè)備。
3.連接藍牙
1>自動連接上次連接的設(shè)備。

當連接一次之后,會將藍牙設(shè)備的唯一標識符記錄在本地,然后在藍牙設(shè)備列表中匹配,如果存在就連接,沒有就不連接。
2>手動連接

手動連接藍牙,和自動連接沒什么區(qū)別。
4.連接成功搜索服務(wù),特性
設(shè)備連接藍牙成功之后會啟動搜索服務(wù)階段,搜索到服務(wù)之后會繼續(xù)搜索藍牙設(shè)備特性屬性。

要知道,只有符合CBCharacteristicPropertyWrite 支持寫入的設(shè)備才能進行打印操作,否則是不支持打印功能的。當搜索到可寫入屬性的時候之后,這邊可以進行打印操作了。
5.打印功能

創(chuàng)建一個打印的helper,里面的屬性可以詳細閱讀API,支持換行 文字,二維碼生成,圖片打印等等。
好了,希望能夠幫到需要做藍牙的開發(fā)者,后續(xù)會考慮更新些東西。有什么錯誤或者問題,希望能夠指正,QQ:38251725