苹果提供了#import <CoreBluetooth/CoreBluetooth.h>框架,以供我们去进行蓝牙方面的开发
首先第一步:
要实现蓝牙功能,首先要确定设备具有蓝牙功能,并且出于开启状态
开发中使用最多的三个类:
- CBCentralManager 中心设备:负责扫描外围设备,查找对应服务及特征,并且提供订阅监听操作
- CBPeripheralManager 外围设备:负责开发广播,以供中心设备查询,可以更新特征值以供中心设备监听
- CBPeripheral 设备对象
首先先从中心设备
CBCentralManager创建方法
中央设备创建方法.png 中央设备创建方法.png
从创建方法可以看出,需要设备代理
蓝牙状态监控代理.png
当设备蓝牙已经开启,接下来就是搜索外围设备
开始搜索外围设备.png
系统还提供了其他两中方法
系统提供的另外两种搜索外围设备方法.png 系统提供的另外两种搜索外围设备方法.png
既然调用了搜索方法,就会有相应的回调代理
搜索外围设备回调方法.png
搜索到周边设备,接下来就是连接某一个设备
连接外围设备.png
对应的代理回调
连接外围设备成功回调.png 连接外围设备失败回调.png 连接外围设备断开回调.png
连接成功之后,就需要将CBPeripheral类设置代理,同时开始查询设备类对应有哪些服务
连接外围设备成功之后,设置代理,查询服务.png
查询服务,参数穿空就是查询所有服务
查询外围设备服务.png
查询回调
查询到外围设备服务回调.png
查询服务特征
查询服务特征.png
查询服务特征回调
查询服务特征回调.png
当你走到这一步的时候,就已经基本差不多了,接下来就是读取数据和发送数据了
读取特征值
读取特征值.png
订阅服务特征,YES和NO分别是开始订阅和取消订阅
订阅服务特征,YES和NO分别是开始订阅和取消订阅.png
对应代理回调
对应代理回调.png
当订阅状态发生改变时,代理回调
当订阅状态发生改变时,代理回调.png
发送数据
发送数据.png
对应代理回调
发送数据成功回调.png
至此中心设备代理实现就结束了,其实没有什么
中央设备实现流程.png
然后就是外围设备代理实现
CBPeripheralManager 外围设备
外围设备创建方法.png 外围设备创建方法.png
判断蓝牙是否开启,这个和中心设备原理一样,必须实现
判断蓝牙是否开启,这个和中心设备原理一样,必须实现.png
接下来就是创建服务并添加特征,我这里使用的uuid是随机创建的,到时候你们自己定
创建服务和特征.png
添加服务
添加服务.png
代理回调
添加服务代理回调.png
添加完服务之后,就是要开启广播
开启广播.png
代理回调
开启广播代理.png
接下来,中心设备就可以搜索到外围设备了
然后就是处理订阅和接受数据回调
接收到读取数据请求
接收到读取数据请求.png接收到写数据请求
接收到写数据请求.png
接受到订阅请求
接受到订阅请求.png这样基本的蓝牙功能就已经实现了,其他还有一些没有提到的方法,大家可以自己研究
网友评论