BLE是Bluetooth Low Energy的简写,是蓝牙连接传输数据技术的一种,顾名思义,和普通的蓝牙技术相比它的最大优点就是省电,这是如何做到的呢,这就是我们下面会介绍的BLE使用的GATT和ATT协议,既然它的特点是省电,这也就决定了这种技术不适用于传输数据量大、对传输速率和实时性要求高的应用,不过针对像心率监测、设备防丢这样的场景就很适合了。
GATT/ATT协议
Generic Attribute Profile (GATT):这就是BLE使用的协议,它是在ATT的基础上增加了一份清单(Profile),这上面写了很多Service来表示设备支持什么功能
Attribute Protocol (ATT):,说白了就是属性的读写,也可以理解为有固定的键值的map,那么这个协议都有哪些对我们暴露出的组成部分呢?
Characteristic: 相当于一个扩展的键值对,包含了128位UUID的键值、属性值和一系列描述,描述又是什么呢
Descriptor:描述就是对某个属性值的我们可读的解释,通过它我们就能知道当某个属性被设置成对应的值的时候会如何如何,再简单点说就是告诉我们某个属性的特定值代表什么意思,从这里就能知道如何操作属性来实现开发者的功能
Service:Characteristic集合,可以说它就可以对应一个独立的功能,比如心率监测
一张图理解这个协议的组成:
Android中如何操作
先看一张流程图:
我们所要做的一般也就是这几种操作:扫描设备,连接/断开设备,向设备发送数据,从设备接收数据,容错处理
首先声明权限:<