随着物联网的发展,有关蓝牙的开发也是越来越多,以 IOS 的框架为核心,简述一下自己的经历对蓝牙的认知与开发过程。
1.蓝牙 框架的发展:gamekit -- > mutipeer --> coreBluetooth. 现在的蓝牙开发基本上都是以 coreBluetooth 来开发,其低功耗,应用广泛。
2.开发模式: 1) 中心者模式: 以手机作为中心来连接外部设备
2) 管理者模式: 自己的手机作为外设,自己创建服务和特征,其他的设备连接我们的手机。
普遍的都是以 中心者模式 开发。
3.相关概念及类:
CBPeripheral:简单理解为 外部设备,里面包含有蓝牙名字,连接状态,包含服务等等信息。
CBService :外部设备包含的服务(一个或多个),一个服务包含若干特征
CBCharacteristic:特征,一般会有特征值,是与外界交互的最小单位
UUID :可以理解为一个唯一标识,用来标记一个服务或一个特征
4.开发流程,一般步骤:
1)创建中心管理者
2)搜索外设
3)连接外设
4)发现服务
5)发现特征
6)从外设读取数据(读取特征)
7)给外设发送数据(写入特征值)
5. 实例:
导入 BLE 框架
#import <CoreBluetooth/CoreBluetooth.h>
self.centralManager = [[CBCentralManageralloc]initWithDelegate:selfqueue:niloptions:nil];
// 找到设备时调用,每找到一个就调用一次
- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary<NSString *,id> *)advertisementData RSSI:(NSNumber *)RSSI {
// 将找到的 peripheral存入数组
if (![self.discoveredPeripheralscontainsObject:peripheral]) {
[self.discoveredPeripheralsaddObject:peripheral];
}