iOS Swift 蓝牙开发(一) 蓝牙相关基础知识

2,703 阅读2分钟

1、蓝牙常见名称和缩写

  • MFI —— 专们为苹果设备制作的设备(make for iPad, iPhone, iPod touch)
  • BLE —— 蓝牙4.0设备因为低耗,所以也叫做BLE(bluetooth low energy)
  • Peripheral, central —— 发起连接的设备是central,被连接的设备为peripheral
  • Service and characteristic —— 服务和特征 每个设备会提供服务和特征。每个外设会有很多服务,每个服务中包含很多特征,这些特征的权限一般分为read,write,notiy几种,就是我们连接设备后具体需要操作的内容。
  • MFI —— 开发使用ExternalAccessory 框架
  • 4.0 BLE —— 开发使用CoreBluetooth 框架

2、蓝牙基础知识

CoreBluetooth框架 左侧为中心模式(app作为中心设备) 右侧为外设模式(app作为模拟外设)

服务和特征(service and characteristic):
每个设备都会有一些服务,每个服务里面都会有一些特征,特征是提供数据的地方。每个特征属性分为这么几种:读,写,通知这么几种方式。


\

3、蓝牙中心模式流程

  1. 建立中心角色

  2. 扫描外设(discover) 

  3. 连接外设(connect) 

  4. 扫描外设中的服务和特征(discover)

  • 4.1 获取外设的services

  • 4.2 获取外设的Characteristics,获取Characteristics 

  1. 与外设做数据交互(explore and interact) 

  2. 订阅Characteristic的通知 

  3. 断开连接(disconnect)

4、蓝牙设备状态

  1. 待机状态(standby):设备没有传输和发送数据,并且没有连接到任何设备 

  2. 广播状态(Advertiser):周期性广播状态 

  3. 扫描状态(Scanner):主动寻找正在广播的设备 

  4. 发起链接状态(Initiator):主动向扫描设备发起连接 

  5. 主设备(Master):作为主设备连接到其他设备 

  6. 从设备(Slave):作为从设备连接到其他设备

5、蓝牙设备的五种工作状态

  • 准备(standby)
  • 广播(advertising)
  • 监听扫描(Scanning)
  • 发起连接(Initiating)
  • 已连接(Connected)

6、蓝牙和版本的使用限制

  • 蓝牙2.0 === 越狱设备
  • 蓝牙4.0 === IOS6 以上
  • MFI认证设备(make for iPad, iPhone, iPod touch) === 无限制

若有收获,就点个赞吧

iOS Swift 蓝牙开发(二)iOS中心设备的代码实现juejin.cn/post/703666…