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
。现在厂商主要使用蓝牙做自家智能硬件产品,如跑步机、蓝牙音箱、蓝牙车锁等。蓝牙上限传输是20字节,蓝牙传输上限是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个或多个特征。而特征就是具体的键值对,提供数据的地方,每个特征属性分为:读、写、通知等等。
下一篇会讲代码具体的实现。
网友评论