目录
前言
最近由于项目需求在学习 BLE,网上Android BLE开发 的资料相比其他 Android 资料显得有些匮乏,在此记录学习例程,希望能能对学习 BLE 的童鞋有所帮助。
在上手 Android 之前我们需要先搞清楚蓝牙的协议及通讯过程,才不会在调用 Google 提供的 API 时似懂非懂。
蓝牙的分类
当前的蓝牙协议分为 基础率 / 增强数据率(BR/EDR)和 低耗能(BLE)两种类型。
当然现在 BLE蓝牙模块 还有单模和双模之分,单模指的是 仅支持BLE ,双模即 Bluetooth Classic + BLE。
蓝牙BD/EDR和蓝牙BLE主要区别
BLE协议框架
蓝牙协议规定了两个层次的协议,分别为 蓝牙核心协议(Bluetooth Core)和 蓝牙使用层协议(Bluetooth Application)。
蓝牙核心协议关心对蓝牙核心技术的描述和规范,它只提供基础的机制,并不关心如何运用这些机制;
蓝牙使用层协议,是在蓝牙核心协议的基础上,根据具体的使用需要定义出各种各样的策略,如 FTP、文件传输、局域网...
蓝牙核心协议(Bluetooth Core)又包含 BLE Controller 和 BLE Host 两部分。
这两部分在不一样的蓝牙技术中(BR/EDR、AMP、BLE),承担角色略有不一样,但大致的功能是相同的。
Controller 负责定义 RF、Baseband 等偏硬件的规范,并在这之上抽象出用于通信的逻辑链路(Logical Link);
Host 负责在逻辑链路的基础上,进行更为友好的封装,这样就可以屏蔽掉蓝牙技术的细节,让 Bluetooth Application