iOS系统中总共提供了4个框架用于实现蓝牙连接,分别如下:
1.GameKit.framework(用法简单)
只能用于iOS设备之间的同个应用内连接,多用于游戏(如:棋牌类),从iOS7开始过期
2.MultipeerConnectivity.framework(代替GameKit.framework)
只能用于iOS设备之间的连接,从iOS7开始引入,主要用于非联网状态下,通过wifi或者蓝牙进行文件共享(仅限于沙盒的文件),多用于附近无网聊天
3.ExternalAccessory.framework(MFi)
可用于第三方蓝牙设备交互,但是蓝牙设备必须经过苹果MFi认证
4.CoreBluetooth.framework(常用 Apple推行蓝牙的核心)可用于第三方蓝牙设备交互,必须要支持蓝牙4.0。硬件至少是4s,系统至少是iOS6。蓝牙4.0以低功耗著称,一般也叫BLE(Bluetooth Low Energy)
关联使用的框架有HealthKit
、HomeKit
、wathOS
、iBeacon
。现在厂商主要使用蓝牙做自家智能硬件产品,如跑步机、蓝牙音箱、蓝牙车锁等。Ble4传输上限是20字节 所以大数据传输会涉及到拆包、拼包、校验等。
1.建立设备管理者
2.扫描设备
3.连接设备
4.扫描设备的服务
5.扫描设备中的特征
6.订阅或读取设备特征值
7.获取设备中的数据或将数据写入设备
CenterManager
扫描链接外设成功后 启动一个Peripheral外设管理对象 负责外设数据的操作处理
1.启动一个Peripheral外设管理对象 负责设备数据的操作处理
2.扫描设备中的服务和特征(Discover Services And Characteristics)
3.获取设备的services (基本服务(电池信息和设备信息)、硬件自定服务)
4.Discover指定Service下的特征 获取的Characteristics,
5.通过指定特征( Characteristics)订阅(Notiy)/读取(Read)/写入(Write) 等操作
6.获取Characteristics的Descriptor和Descriptor的值
Characteristics
是蓝牙数据传输操作的做小单元。蓝牙通信里的服务和特征是指每个设备都会有1个或多个服务,每个服务里都会有1个或多个特征。而特征就是具体的键值对,提供数据的地方,每个特征属性分为:读、写、通知等等。
下一篇会讲代码具体的实现。