在看Android4.42的源码时看到有添加对BLE设备的处理,看的一头雾水,多方百度,终于有种柳暗花明的感觉。
本文总结来源于百度多篇文章,欢迎转载,分享交流
BLE蓝牙概念
BLE:Bluetooth low Energy 低能耗蓝牙,实现低成本,短距离的无线传输,传输速率于传统蓝牙相同位2.4GHZ,采用非常快速的连接方式,适用于发送数据量少而且发送次数较少的蓝牙通信
相比于传统蓝牙
BLE通信协议
在进行BLE通信时通信双方分为外围(Periphery)和中央(Central)
1,外围用于提供数据
2,中央用于接收和处理数据
相当于集中式布局,中央可接收多个外围的数据,但外围只能向一个中央发送数据,也就是说一个中央同时可连接多个外围设备,但一个外围设备只能连接一个中央
3,主要类
i>,BluetoothGattServer:外围设备要发送的数据
ii>,BluetoothServerCallback:返回外围设备的状态
iii>,BluetoothGatt:中央使用和处理数据
iv>,BluetoothGattCallBack:返回中央设备的状态
使用ble通信可以包含多个Profile,一个profile可以包含多个service,一个service可以包含多个特征characteristic。
目前所使用的Android手机只能作为中央使用和处理数据,接下来介绍下如何去创建一个中央
创建中央(Central)
/**
*第一个参数为上下文,context
*第二个参数为autoConnect,布尔值
*第三个参数为BluetoothAdapter.LeScanCallback对象,连接后回调,在回调中可以获取到手机的蓝牙连接状态
*/
mBluetoothGatt = device.connectGatt(BluetoothCODAService.this, false, mGattCallback);