好久没更新博客了。
终于忙完了多蓝牙设备多连接通讯库的开发,下面来探讨一下蓝牙开发。
蓝牙主要分为蓝牙2.0版本和蓝牙4.0+版本,在外行人看来,区别在于蓝牙4.0比较省电,也就是BLE;从程序的角度看,蓝牙4.0+改进了通讯实现方式和扫描方式,以达到让CPU在大多无用蓝牙通讯上可以休眠(据说,蓝牙5.0更省电,且通讯距离达到300m,笔者很期待...)。
蓝牙2.0 直接采用Socket通讯;
蓝牙4.0+ 采用Characteristic(特征)通讯;
这里主要讲蓝牙4.0+,并且基于Android系统。
关于蓝牙4.0+的介绍,推荐博客https://www.cnblogs.com/cxk1995/p/5693979.html,这位仁兄介绍的思路比较清晰,且看起来简单。
蓝牙4.0的相关类:
1.BluetoothAdapter 蓝牙适配器,单例,作用:蓝牙模块功能的开关及设备扫描。
2.BluetoothGatt 双方建立的通讯渠道,可多渠道通讯,理解为管道,更为恰当一些,作用:数据及指令通讯。
3.BluetoothGattService 蓝牙服务,可理解为蓝牙设备提供的服务,拥有UUID(唯一标识符),可以通过UUID找到,一个BluetoothGatt 下有多个BluetoothGattService ,作用:提供蓝牙通讯服务。
4.BluetoothGattCharacteristic 蓝牙特征, 蓝牙服务端(蓝牙数据采集设备)和终端(手机)数据交换的载体,拥有UUID(唯一标识符),可以通过UUID找到,一个BluetoothGattService 下有多个BluetoothGattCharacteristic,作用:提供特征值,即通讯内容。
5.BluetoothGattDescriptor 特征描述符,也可以作为数据交换的载体,但隶属于BluetoothGattCharacteristic ,拥有UUID(唯一标识符),可以通过UUID找到,一个BluetoothGattCharacteristic 下有多个BluetoothGattDescriptor ,作用:提供特征值,即通讯内容,设置通知、读、写的通讯方式。
对,还有一个,通讯嘛,最重要的就是设备。
6.BluetoothDevice 蓝牙设备,扫描时获得,也可通过BluetoothGatt 获取。作用:实现蓝牙连接、断开等功能。
好了,该是代码实现蓝牙通讯的时候了。
蓝牙通讯步骤:
需要蓝牙权限:
<!-- 蓝牙 --> <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> |
1.扫描设备:
蓝牙设备扫描在Android5.0后做了一些改进。
//Android4.4以下
| mBluetoothAdapter.startLeScan(mLeScanCallback ) |

本文介绍了Android蓝牙4.0+的开发,强调其省电特性及与蓝牙2.0的区别。蓝牙4.0+使用Characteristic进行通讯,涉及关键类包括BluetoothAdapter、BluetoothGatt、BluetoothGattService、BluetoothGattCharacteristic、BluetoothGattDescriptor和BluetoothDevice。文章概述了蓝牙通讯的六个步骤,包括设备扫描、连接、服务发现、特征寻找、设置通讯方式、数据读写等。

4165

被折叠的 条评论
为什么被折叠?



