随着bluetooth的迭代更新,越来越多的设备已经开始支持ble的协议了,当然spp的协议更适合大数据量的传递,总结下之前连接使用ble时遇到的一些问题。
1.在连接ble设备后会有多个service UUID ,如果要进行接下来的读写操作一定是要选好UUID的,它不同于spp经典蓝牙的唯一UUID "00001101-0000-1000-8000-00805F9B34FB"。ble的UUID可以是设备自己定义的,当然安卓手机是没法进行修改操作的,只允许对数据交互对ble设备本身无法修改操作(如果你们没有指定特殊指令去在设备端修改的话)。service UUID,write UUID,notify UUID,read UUID可以询问设备端或者提供设备的厂商。
2.关于ble的特性来说因为是低功耗的数据传输协议,讲究的就是省电、数据传输快、距离近。所以一帧能传输的数据量是有限的 BLE的特征一次读写最大长度20字节,到这你肯定会觉得很少,如果我有100个字,最起码得5次交互。这时候就需要设置 Mtu了
gatt.requestMtu(count);
这个count是有上限的,同样需要设备端确认下,可知的是不会超过240byte。
3.分享一个github上的ble数据交互,扫描,连接的引用
https://github.com/Jasonchenlijian/FastBle