Ble蓝牙开发之一认识
初步认识
- Ble蓝牙是指低功耗蓝牙,在android4.3(api 18)以上理论都是兼容的
Ble两种角色
- 中心设备
- 外围设备
关系
中心设备扮演扫描的角色,寻找外围设备的广播消息。
Ble 名词解释
- ScanResult 扫描蓝牙设备的结果(api21才有)
- BluetoothDevice 蓝牙设备
- BluetoothGatt作为中央来使用和处理数据
Ble三大部分
- Service 服务(系统服务、用户服务….)
- Characteristic 特征
- Descriptor :用于描述characteristic的信息或属性
共同点:都拥有不同的UUID
关系:
- 一个ble设备有多个Service
- 一个Service有多个Characteristic
- 一个Characteristic包含一个value和多个Descriptor
- 一个Descriptor包含一个value
- 一个value存储的最大数据长度为20byte,大于20byte自动分包
Characteristic权限
READ、WRITE、NOTIFY、WRITE_NO_RESPONSE是否有读,写,通知的权限
开发流程
- 外围设备开机
- 使能中心设备蓝牙
- 添加蓝牙权限
- 扫描外围设备(discover)
- 连接外围设备(connect)
- 扫描外围设备的服务和特征 (discover)
- 获取数据(读取外围设备的数据)
- 1 Service->Characteristic-getValue()
- 2 Service->Characteristic-getDescriptor-getValue()
- 写入数据(向外围设备发送数据)
- 1 BluetoothGatt.writeCharacteristic(Characteristic.setValue(“写入的数据”))
- 2 BluetoothGatt.writeDescriptor(Descriptor.setValue(“写入的数据”))
- 订阅通知(接收外围设备广播的数据)
- 1 Service->Characteristic-getDescriptor->BluetoothGatt.writeDescriptor(Descriptor.setValue(“特点的值”))
- 断开连接(disconnect)