前言:
最近做了款蓝牙打印的功能,包含蓝牙自动连接,蓝牙搜索,连接之后进行打印。总结了下知识点,写了一个简单的Demo,对系统的<CoreBluetooth/CoreBluetooth.h>进行二次封装,避免一大推的代理调用。使用方法:
pod 方法 : pod 'JWBluetoothPrinte'
github地址: https://github.com/kafeidou1991/JWBluetoothPrinte
给大家分享下。有什么错误的话希望大神们给我留言或者QQ(38251725)我,及时指正,避免误导小伙伴们,谢谢。
1.导入工程文件
首先我们要知道手机蓝牙简单的工作流程,我们怎么才能实现打印功能呢?下面我说下自己的见解。流程如下:判断蓝牙是否打开-->搜索蓝牙设备-->连接蓝牙设备-->扫描蓝牙服务-->搜索服务特性-如果有打印特性 即可实现打印。话不多少直接上代码。使用方法:使用pod 或者 手动添加 <JWBluetoothPrinte>库地址也可,在使用的地方导入“#import"JWBluetoothManage.h"”头文件即可。
2.搜索蓝牙设备列表
搜索结果里面有两个数组返回,peripherals是存放所有搜索到的蓝牙设备数组,rssis是对应蓝牙设备的信号强度数组,如果不需要 不关心即可。里面的大致流程就是:调用系统的广播功能,进行搜索设备。
3.连接蓝牙
1>自动连接上次连接的设备。
当连接一次之后,会将蓝牙设备的唯一标识符记录在本地,然后在蓝牙设备列表中匹配,如果存在就连接,没有就不连接。
2>手动连接
手动连接蓝牙,和自动连接没什么区别。
4.连接成功搜索服务,特性
设备连接蓝牙成功之后会启动搜索服务阶段,搜索到服务之后会继续搜索蓝牙设备特性属性。
要知道,只有符合CBCharacteristicPropertyWrite 支持写入的设备才能进行打印操作,否则是不支持打印功能的。当搜索到可写入属性的时候之后,这边可以进行打印操作了。
5.打印功能
创建一个打印的helper,里面的属性可以详细阅读API,支持换行 文字,二维码生成,图片打印等等。
好了,希望能够帮到需要做蓝牙的开发者,后续会考虑更新些东西。有什么错误或者问题,希望能够指正,QQ:38251725