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关系

iOS开发之蓝牙4.0 -- BLE开发_第1张图片
蓝牙开发通讯流程图

所有涉及蓝牙低功耗的交互中有两个主要的角色:中心Central和外围设备Perpheral,从上面这幅图可以看到,我们的iOS设备是Central,用来接收数据和发送命令,而外设比如蓝牙耳机是Peripheral,向外传输数据和接收命令。我们要做的就是通过Central来连接Peripheral,然后实现数据的接收和控制指令的发送。在做到这一步之后,再根据具体的硬件,对接收到的数据进行parse解析


2、Service和Characteristic的关系

iOS开发之蓝牙4.0 -- BLE开发_第2张图片
外设设备服务和特征的关系图

当你与远程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

蓝牙4.0苹果官方开发指南:https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/AboutCoreBluetooth/Introduction.html

蓝牙中心模式流程

1、建立中心角色并初始化



2、初始化完成回调。判断手机蓝牙状态

iOS开发之蓝牙4.0 -- BLE开发_第3张图片

3、扫描外设

iOS开发之蓝牙4.0 -- BLE开发_第4张图片

4、扫描外设回调,找到外设设备保存设备信息

iOS开发之蓝牙4.0 -- BLE开发_第5张图片

5、连接外设设备

iOS开发之蓝牙4.0 -- BLE开发_第6张图片

6、连接外设设备回调(成功or失败)

iOS开发之蓝牙4.0 -- BLE开发_第7张图片

7、扫描选中设备所有的服务和特征值 若nil换成特定的UUID就可以找到特定的Services


8、扫描选中设备所有的服务和特征值回调——获取外设的services和Characteristics,获取Characteristics的Descriptor和Descriptor的值

iOS开发之蓝牙4.0 -- BLE开发_第8张图片

9、与外设设备做数据交互

iOS开发之蓝牙4.0 -- BLE开发_第9张图片

10、执行读写通知方法之后的回调

iOS开发之蓝牙4.0 -- BLE开发_第10张图片

11、交互完毕,断开蓝牙


12、断开蓝牙回调

iOS开发之蓝牙4.0 -- BLE开发_第11张图片

主要协议以及方法使用说明:

CBCentralManagerDelegate

iOS开发之蓝牙4.0 -- BLE开发_第12张图片

CBPeripheralDelegate

iOS开发之蓝牙4.0 -- BLE开发_第13张图片

蓝牙之间传递使用的是16进制数据,现提供16进制数据转字符串以及字符串转16进制数据函数

iOS开发之蓝牙4.0 -- BLE开发_第14张图片
iOS开发之蓝牙4.0 -- BLE开发_第15张图片

完毕,谢谢

你可能感兴趣的:(iOS开发之蓝牙4.0 -- BLE开发)