一、简述 iOS 蓝牙模块的开发

什么是蓝牙BLE?

BLE是蓝牙4.0(Bluetooth low energy)的简称,特点就是低耗电。

蓝牙设备间是怎么连接交互的?

只要是集成了蓝牙BLE模块的设备,都可以通过蓝牙协议栈(GATT、ATT、L2CAP)进行交互。iphone和mac都集成了BLE,我们可以通过<CoreBlueTooth>框架与底层的蓝牙协议栈进行交互。举例:当iPhone作为中心设备时,通过CBCentralManager来管理 Remote Peripheral(CBPeripheral、CBCharacteristic、CBService).当iPhone作为外设时,通过CBPeripheralManager、可变的CBMutableService、CBMutableCharacteristic提供服务。

中心设备和外设的区别与规范

\color{blue} {中心设备Central:}是发起蓝牙连接的设备,并对外设Peripheral进行管理。中心设备的规范需要提供三个功能:1.搜索连接外设;2.与外设提供的数据交互;3.订阅一个当数据发生变化就会发出通知的特征Characteristic。
\color{blue} {外设Peripheral:}通过Radio(无线电广播设备)广播数据包,提供数据的一方。外设的规范也需要提供三个功能:1.发布、广播服务Service;2.响应对特征的读写请求;3.响应对特征的订阅请求。

APP的状态对蓝牙连接的影响

当iPhone在后台或处于暂停状态,APP不能进行BLE通信。即便iPhone设置了支持蓝牙在后台运行的选项,数据处理的方式也会有所不同。蓝牙在后台运行时也可能因为内存过低被系统杀死,CoreBlueTooth支持中心设备、外设的状态信息的保存和恢复,可以通过这个来实现长期交互。

下面将简单叙述iPhone作为中心设备时的代码实现

关键类
CBCentralManagerDelegate
CBPeripheralDelegate

Characteristic 补充:

特征值能否被订阅、写入数据,是根据特征值的 properties属性来决定的。
特征动态的订阅、取消订阅:setNotifyValue:forCharacteristic:
静态读取特征值:readValueForDescriptor:
给特征写入数据:writeValue:forCharacteristic:type:

代码实现在第二篇
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文介绍了蓝牙的概念以及具体的使用步骤. 一.蓝牙概念 蓝牙2.0为传统蓝牙,传统蓝牙也称为经典蓝牙.蓝牙4.0因...
    o惜乐o阅读 18,235评论 41 59
  •     本文是参考了网上众多资料总结。    做iOS开发也有很长时间了一直没有时间和机会做蓝牙方面的开发。201...
    悟2023阅读 3,359评论 0 1
  • 蓝牙基础 IOS中关于蓝牙的框架其实有四个: (1)GameKit.framework 根据名称我们可以猜出,这是...
    wesk痕阅读 13,614评论 3 8
  • 本文介绍了蓝牙的概念以及具体的使用步骤. 一.蓝牙概念 蓝牙2.0为传统蓝牙,传统蓝牙也称为经典蓝牙.蓝牙4.0因...
    Kris_A阅读 4,599评论 0 53
  • 《低功耗蓝牙工具APP开发实战》 什么是 LightBLE? 一个功能比较全面的蓝牙调试工具。支持所有使用蓝牙4....
    寺西创客阅读 7,767评论 1 4