IOS蓝牙技术—CoreBluetooth
一、iOS蓝牙简述
二、CoreBluetooth简介
1、基本概念
2、CoreBluetooth 框架介绍
三、开发模式
1、中心模式
2、外设模式
一、iOS蓝牙简述
iOS开发中关于蓝牙技术的框架有四种:
GameKit.framework 多用于游戏开发,iOS设备之间的连接。
MultipeerConnectivity.framework iOS设备之间传递文件,点对点的连接。
ExternalAccessory.framework 主要是用于和蓝颜2.0(需要苹果认证)设备连接通信的框架。
CoreBluetooth.framework 主要用户和蓝牙4.0的设备连接和通讯。蓝牙4.0也叫 BLE。
在这里我们就主要针对蓝牙4.0的开发,也就是iOS的BLE开发。
二、CoreBluetooth简介
1、基本概念
中心设备(central)。主动发起连接的设备。
外设(peripheral)。外部设备,比如耳机,音箱,智能手环。(当然手机也可以是外部设备,中兴设备也可能成为外部设备)。
服务。每个外设都有若干个服务,可以添加和删除服务。外设可以广播服务供中心设备区扫描。每个服务都有一个UUID,用来标识每个服务。
特征。每个服务都有若干个特征,设备之间是通过特征值来进行数据交互的。这些特征值有很多属性(比如:读,写,通知)。只有这个特征设置了相应的属性才能进行相应的操作。如果没有读的属性,中心设备数无法读取到外设的数据的。
特征的属性。每个特征都有它的属性值。不同的属性限制了外设对外提供的服务。读的属性可以有对外提供数据的能力,写属性可以对外提供数据写入特征的能力。
typedef NS_OPTIONS(NSUInteger, CBCharacteristicProperties) {
CBCharacteristicPropertyBroadcast = 0x01,
CBCharacteristicPropertyRead = 0x02,
CBCharacteristicPropertyWriteWithoutResponse = 0x04,
CBCharacteristicPropertyWrite = 0x08,
CBCharacteristicPropertyNotify = 0x10,
CBCharacteristicPropertyIndicate = 0x20,
CBCharacteristicPropertyAuthenticatedSignedWrites = 0x40,
CBCharacteristicPropertyExtendedProperties = 0x80,
CBCharacteristicPropertyNotifyEncryptionRequired NS_ENUM_AVAILABLE(10_9, 6_0) = 0x100,
CBCharacteristicPropertyIndicateEncryptionRequired NS_ENUM_AVAILABLE(10_9, 6_0) = 0x200
};
2、CoreBluetooth 框架介绍
CBCentralManager 中心设备管理,检测设备状态,扫描外部设备,链接外部设备等。
CBPeripheralManager 外部设备管理,检测外部设备状态,添加/移除服务,广播服务,更新特征值,响应中心设备的读写等。
CBPeripheral 外设对象 向外设写/读数据,订阅通知,查找服务,查找服务特征等。
CBCentral 中心设备
CBMutableService 特征服务
CBMutableCharacteristic 特征
CBUUID 表示id
CBATTError 状态码, 比如响应请求返回状态码。
typedef NS_ENUM(NSInteger, CBATTError) {
CBATTErrorSuccess NS_ENUM_AVAILABLE(10_9, 6_0) = 0x00,
CBATTErr