最近音响项目要用到蓝牙开发功能,所以查找了一些蓝牙的基本资料学习一下,蓝牙的应用领域很广,比如,手环,车载设备,音响控制,还有智能家居等等吧。
蓝牙这里主要介绍 BLE, BLE 简称 Bluetooth Low Energy,也经常被称为Bluetooth Smart,这里值得提一点的是,蓝牙的协议非常多,BLE 只是传统蓝牙的子集。
这里对蓝牙协议感兴趣的童鞋们可以参考: http://blog.csdn.net/xubin341719/article/details/38145507 (转载)
蓝牙开发分为 中心管理模式 和 外设管理者模式,主流的都是使用中心管理模式,简单理解就是手机作为主机,用蓝牙连接 音响和手环等外设设备做数据交互,反之就是外设管理者模式啦!
开发流程是酱紫的:
1. 建立中心角色
2. 扫描发现外设(discover)
3. 连接外设(connect)
4. 扫描外设中的服务和特征(discover)
- 4.1 获取外设的services
- 4.2 获取外设的Characteristics,获取Characteristics的值,获取 Characteristics的Descriptor和Descriptor的值
5. 与外设做数据交互(explore and interact)
6. 订阅Characteristic的通知
7. 断开连接(disconnect)
服务(services):蓝牙外设对外广播的必定会有一个服务,可能也有多个,服务下面包含着一些特征,服务可以理解成一个模块的窗口;
特征(characteristic):存在于服务下面的,一个服务下面也可以存在多个特征,特征可以理解成具体实现功能的窗口,一般特征都会有value,也就是特征值,特征是与外界交互的最小单位;
UUID:可以理解成蓝牙上的唯一标识符,给服务和特征取名字,用来区分和过滤服务和特征用的
代码部分是酱紫的:
1. 配置一下 Info.plist 文件
1.0 Capabilites->UIBackgroundModes 勾选: bluetooth-central 和 bluetooth-peripheral
1.1 Privacy - Bluetooth Peripheral Usage Description
2. 代码是如下:查看注释