[iOS蓝牙]蓝牙连接并通过特征CBCharacteristic读写数据

本文主要涉及的是手机作为中心设备,搜索周边的外围设备,这在大部分的实践中比较常见。

下一篇将写手机作为周边,建立一个蓝牙热点(个人认为),让中心设备搜索。

开发流程

在实践中,主要的开发流程有以下:
1. 新建Central Manager实例并进行监听蓝牙设备状态
2. 开始搜索外围设备,通过delegate获得数据
3. 连接外围设备,delegate通知连接结果
4. 获得外围设备的服务,delegate获得结果
5. 获得服务的特征,delegate获得结果
6. 根据服务和特征给外围设备发送数据
7. 根据delegate回调,从外围设备读数据

蓝牙相关解释

本文要介绍的CoreBluetooth,专门用于与BLE设备通讯。并且现在很多蓝牙设备都支持4.0,4.0以其低功耗著称,所以一般也叫BLE(Bluetoothlow energy),所以也是在iOS比较推荐的一种开发方法。
Central(中心设备);
Peripheral(外围设备);
advertising(广告);
Services(服务);
Characteristic(特征)
CoreBluetooth介绍

在CoreBluetooth中有两个主要的部分,Central和Peripheral,CBPeripheralManager 作为周边设备。CBCentralManager作为中心设备。所有可用的iOS设备可以作为周边(Peripheral)也可以作为中央(Central),但不可以同时既是周边也是中央。

周边设备(Peripheral)设备是广播设备的数据,中央设备(Central)是管理并且使用这些数据的设备。
也就是说周边(Peripheral)向周围发送广播,告诉周围的中央设备(Central)它(周边(Peripheral)这里有数据,并且说明了能提供的服务和特征值(连接之后才能获取),
其实蓝牙传值相当于网络接口,硬件的service的UUID加上characteristic的UUID,
打一个比喻:service的UUID相当于主地址,characteristic的UUID相当于短链接,短链接必须是主地址的分支,拼在一起的是接口,你和硬件设定的蓝牙传输格式类似于json,双方可识别的数据,因为蓝牙只能支持16进制,而且每次传输只能20个字节,所以要把信息流转成双方可识别的16进制

先上代码:代码地址,博客以后在码。

你可能感兴趣的:(IOS)