没错,只需要3分钟就可以入门iOS的BLE(Bluetooth Low Energy)开发
1分钟了解BLE的基础常用概念
1分钟了解BLE的通讯流程
1分钟学会使用BLEKit库
BLE基础常用概念
Central(中心设备):负责扫描,发现广播的Peripheral,向Peripheral发起连接。比如Phone,Pad等等
Peripheral(外设):具备广播能力,能被Central发现和连接。比如心率计,手表
Service(服务):表示Peripheral可以提供哪些服务,比如心率计Peripheral就具备Heart Rate Service,血糖计Peripheral就具备Glucose Service。一个Peripheral可以具备多个不同的Services。
Characteristic:更加精细具体的服务单元,也是数据通讯的载体,Service包含Characteristic。比如Heart Rate Service有Heart Rate Control Point,Body Sensor Location,Heart Rate Measurement 3个Characteristic。通过读取Body Sensor Location的值,可以获取心率传感器的位置。心率值是通过Heart Rate Measurement 通知出来。控制心率器,向Heart Rate Control Point写数据。
Characteristic Property:不同的Characteristic支持不同属性,有可读,可写,通知等属性,比如Heart Rate Control Point支持可写,Body Sensor Location支持可写,Heart Rate Measurement支持通知。
BLE通讯流程
手机应用一般作为Central,通讯一般都需要以下步骤
初始化Central
扫描发现Peripheral
连接Peripheral
发现Service
发现Characteristic
读写数据,监听通知
断开连接
BLEKit库
https://github.com/LevinYan/BLEKit
BLEKit是本人对iOS BLE库进行封装,简单易用
- 初始化Central
self.bleManager = [BLEManager shareManager];
[self.bleManager initCentral:nil];
- 扫描发现Peripheral
[self.bleManager scanForPeripherals:nil result:^(CBPeripheral *peripheral) {
do something...
}];
- 连接Peripheral,自动发现Service和Characteristic
BLEPeripheralConnectOption *option = [BLEPeripheralConnectOption defaultOption];
option.autoDiscoverServices = YES; //enable auto discovery service when connect
[self.bleManager connectPeripheral:peripheral option:nil complete:^(NSString * _Nullable error) {
do something...
}];
- 读写数据,监听通知
[self.peripheral readValueForCharacteristic:self.characteristic result:^(NSData *value, NSError *error) {
do something...
}];
[self.peripheral writeValue:data forCharacteristic:self.characteristic result:^(NSError * _Nullable error) {
do something...
}];
[self.peripheral listenNotificationForCharacteristic:self.characteristic result:^(NSData *value, NSError *error) {
do something...
}];
- 断开连接
[self.bleManager cancelConnectPeripheral:self.peripheral];
Final
本文只是对iOS BLE入门介绍,更多深入内容还是需要靠自己慢慢学习。要是喜欢BLEKit,可以给个Star,要是发现bug,可以通过qq:243765379联系我。