iOS开发之蓝牙4.0 -- BLE开发
前言—— 常用概念用语:
MFI ( make for ipad ,iphone, itouch) -------- 专们为苹果设备制作的设备
BLE (buletouch low energy) -------- 蓝牙4.0设备因为低耗电,所以也叫做BLE
peripheral --------- 外设 被连接的设备为perilheral
central --------- 中心 发起连接的设备为central
service and characteristic ---------- 服务和特征 每个设备会提供服务和特征,类似于服务端的api,但是机构不同。每个外设会有很多服务,每个服务中包含很多字段,这些字段的权限一般分为 读read,写write,通知notiy几种,就是我们连接设备后具体需要操作的内容。
Description ----------- 每个characteristic可以对应一个或多个Description用户描述characteristic的信息或属性
Apple之前专门推出CoreBluetooth的Framework来支持BLE的开发。对于硬件开发有了解的朋友应该知道,在之前使用低版本的蓝牙的设备,要连接到iOS设备上,需要注册MFI,拥有MFI协议才能进行相应的开发。
蓝牙基础知识:
1、Central和Perpheral关系
所有涉及蓝牙低功耗的交互中有两个主要的角色:中心Central和外围设备Perpheral,从上面这幅图可以看到,我们的iOS设备是Central,用来接收数据和发送命令,而外设比如蓝牙耳机是Peripheral,向外传输数据和接收命令。我们要做的就是通过Central来连接Peripheral,然后实现数据的接收和控制指令的发送。在做到这一步之后,再根据具体的硬件,对接收到的数据进行parse解析
2、Service和Characteristic的关系
当你与远程Peripheral(表示为CBPeripheral)进行数据交互时,你将处理它的Service和Characteristic。每一个外设设备可以拥有多个服务(CBService),每一个服务可以拥有多个特征(CBCharacteristic),特征就是具体的键值对。每个特征有不同的属性(读,写,通知等)
3、iOS SDK蓝牙4.0相关的组件为CoreBluetooth,官方文档https://developer.apple.com/library/ios/documentation/CoreBluetooth/Reference/CoreBluetooth_Framework/index.html
蓝牙中心模式流程
1、建立中心角色并初始化
2、初始化完成回调。判断手机蓝牙状态
3、扫描外设
4、扫描外设回调,找到外设设备保存设备信息
5、连接外设设备
6、连接外设设备回调(成功or失败)
7、扫描选中设备所有的服务和特征值 若nil换成特定的UUID就可以找到特定的Services
8、扫描选中设备所有的服务和特征值回调——获取外设的services和Characteristics,获取Characteristics的Descriptor和Descriptor的值
9、与外设设备做数据交互
10、执行读写通知方法之后的回调
11、交互完毕,断开蓝牙
12、断开蓝牙回调
主要协议以及方法使用说明:
CBCentralManagerDelegate
CBPeripheralDelegate
蓝牙之间传递使用的是16进制数据,现提供16进制数据转字符串以及字符串转16进制数据函数