博主之前做一个运类软件,涉及到android设备连接蓝牙BLE传感器设备,读取运动数据。今天在这里做一个小总结,希望对大家起到抛砖引玉的作用。
1.keywords
- BLE, bluetooth low energy 蓝牙低能耗,支持Android 4.0以上系统
BLE架构共有两种芯片构成:单模芯片 和 双模芯片。
1.单模芯片支持了Ble低功耗技术;双模芯片则支持传统的标准蓝牙。
2.单模芯片可以用单节钮扣电池(如3V、220mAh的CR2032)工作很长时间(几个月甚至几年);
标准蓝牙技术通常要求至少两节AAA电池(电量是钮扣电池的10至12倍,但可以容忍高得多的峰值电流),并且更多情况下续航时间短至几天或几周。
GATT ,表示服务器属性和客户端属性,描述了属性服务器中使用的服务层次,特点和属性。BLE设备使用它作为蓝牙低功耗应用规范的服务发现。GATT配置文件是一个通用规范,用于在BLE链路上发送和接收被称为“属性”的数据块
Attribute Protocol(ATT), GATT在ATT协议基础上建立,也被称为GATT/ATT。ATT对在BLE设备上运行进行了优化,为此,它使用了尽可能少的字节。每个属性通过一个唯一的的统一标识符(UUID)来标识,每个String类型UUID使用128 bit标准格式。属性通过ATT被格式化为characteristics和services。
-
角色
Android设备与BLE设备交互时,有两种角色模式:中央设备 & 被扫描设备。
适用于BLE连接本身( Android设备和ble设备都具备蓝牙模块 )。中央设备扫描,寻找广播;被扫描设备发出广播。GATT服务端 & GATT客户端。
决定了两个设备在建立连接后如何互相交流。
角色分配:
当手机和运动传感器建立连接后,他们开始向另一方传输GATT数据。哪一方作为服务器取决于他们传输数据的种类。
例如,如果运动传感器想向手机报告传感器数据,传感器是服务端。如果传感器更新来自手机的数据,手机会作为服务端。
2.蓝牙使用
- 清单文件中开启权限
BLUETOOTH :蓝牙通信,例如请求连接、接受连接、和传输数据
BLUETOOTH_ADMIN:启动设备发现或操纵蓝牙设置
#注意:如果你使用 BLUETOOTH_ADMIN 权限,你也必须声明 BLUETOOTH 权限。
- 确保设备开启蓝牙
- Android设备搜索蓝牙设备,加入设备集合
- 选择目标设备进行配对
- 程序读取传感器抓取的信息
这里仅是对ble的大致原理和使用进行总结,抛砖引玉之用,具体的细节还需要各位童鞋仔细研究。