- 分类
通常由两种形式
传统蓝牙BR(Basic Rate),如蓝牙耳机和音响等
低功耗蓝牙(Bluetooth Low Energy),如蓝牙手环等Iot设备
数据传输模型
分为三层,数据发送时由高层逐层向下流动,接收时相反
L2CAP
Logical
Logical层主要完成BLE通信过程中的各种逻辑控制,在一次BLE通信过程中,存在master和slave两方,master主动扫描并发起连接,slave则不断广播等待连接,下图为一次通信过程中master和slave的状态,scanner和davertiser分别表示amster和slave的扫描状态和广播状态,建立连接之后,开始调频通信
- Physical
Physical层定义了3个广播信道和37个数据通信信道,在两个蓝牙设备进行连接的过程中,先随机挑选一个广播信道进行广播,待建立连接之后,会在37个通信信道上进行跳频通信
Android BLE接口
在TCP的socket通信中,服务端程序运行于某一IP地址上,并持续监听某个port,客户端程序选择服务端的IP和port发起socket连接,经过三次TCP握手之后完成socket连接的建立并使用该socket进行通信.
蓝牙也是如此,需要先扫描走位蓝牙设备,并选择某个BLE设备,此时需用到以下API
接口名称 | 所属类 | 接口描述 |
---|---|---|
startScan | bluetoothLeScanner | 开始扫描周围BLE设备 |
stopScan | bluetoothLeScanner | 结束扫描 |
扫描并完成选择后就需要与之通信,会用到以下API
接口名称 | 所属类 | 接口描述 |
---|---|---|
writeCharacteristic | BluetoothGatt | 读写指定Characteristic |
readCharacteristic | BluetoothGatt | 读写指定Characteristic |
在每一个BLE设备中都会有一个对应的profile用于对这个设备进行描述,一个peofile中包含多个service,为该设备提供各种服务,在一个service中又会有多个characteristic,设备提供的service就是靠这些characteristic来完成