美文网首页
一、简述 iOS 蓝牙模块的开发

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

作者: LucXion | 来源:发表于2023-03-31 11:36 被阅读0次

什么是蓝牙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:

代码实现在第二篇

相关文章

网友评论

      本文标题:一、简述 iOS 蓝牙模块的开发

      本文链接:https://www.haomeiwen.com/subject/prhfddtx.html