在iOS开发中,咱们最经常使用的蓝牙开发框架应该是Core Bluetooth
,由于它能够与第三方蓝牙设备交互(必需要支持蓝牙4.0),蓝牙4.0以低功耗著称,因此通常也叫BLE(Bluetooth Low Energy),目前普遍应用于智能手环,智能嵌入式设备,智能家居等领域。笔者最近须要用到这个知识,因此一块儿来学习一下吧。在Core Bluetooth
中提供了与蓝牙设备进行通讯所需的类与协议,因此在开发以前必定要将他们的关系弄清楚,那么开发起来才会事半功倍。app
Apple 官方文档地址:developer.apple.com/documentati…框架
重要的类与协议
- CBCentral:中心设备,发起链接的是CBCentral
- CBCentralManager:中心设备管理者,相似定位中的
CLLocationManager
- CBPeripheral:外围设备,被链接的设备是CBPeripheral
- CBService:外围设备的服务,每一个外围设备都会提供不少服务
- CBCharacteristic:外围设备的特征,包含在每一个服务里
- CBDescriptor:用于描述CBCharacteristic的信息或属性
- CBCentralManagerDelegate:CBCentralManager对象遵照的协议,用于监视外围设备的发现、链接和检索
- CBPeripheralDelegate:CBPeripheral对象遵照的协议,用于监视外围设备的服务和属性的发现、检索和交互
两种开发模式
- 中心模式:以下图左边所示,以App为中心,链接其余的外设进行通讯;(常见开发模式)
- 外设模式:以下图右边所示,使用手机做为外设,链接其余中心设备进行通讯;
中心模式的开发步骤
- 建立CBCentralManager实例进行蓝牙管理
- 搜索外围设备
- 链接外围设备
- 得到外围设备的服务
- 得到服务的特征
- 从外围设备读数据(读取或订阅)
- 向外围设备写数据
- 断开链接
注意问题
- 不要对
Core Bluetooth
中的任何类进行子类化
- iOS 10之后须要在info.plist文件中加上
NSBluetoothPeripheralUsageDescription