BOB(中国)官方入口-BOB平台在线入口

栏目分类
热点资讯
BOB体育首页
你的位置:BOB(中国)官方入口-BOB平台在线入口 > BOB体育首页 > BOB体育首页 一篇晓畅BLE蓝牙开发详解
BOB体育首页 一篇晓畅BLE蓝牙开发详解

发布日期:2021-11-21 08:16    点击次数:191

序言 BOB体育首页

有老铁们私信,要讲解下蓝牙开发,那么今天了;

Android4.3等操作。

BLE矮功耗蓝牙,主要特点是迅速搜索,迅速连接,超矮功耗保持连接和数据传输;

一、BLE开发流程 1、申请权限

安卓手机涉及蓝牙权限题目,蓝牙开发必要在AndroidManifest.xml文件中增补权限声明:

<!-- 蓝牙权限 --> <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> 为适配安卓6.0以及以上版本必要增补一个暧昧定位的权限  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 手机权限管理中批准此权限,否则会展现无法搜索到设备的情况; 

为适配安卓6.0以及以上版本必要增补一个暧昧定位的权限

手机权限管理中批准此权限,否则会展现无法搜索到设备的情况;

2、掀开蓝牙

在搜索设备之前必要咨询掀开手机蓝牙:

//获取体系蓝牙适配器管理类     private BluetoothAdapter mBluetoothAdapter = BluetoothAdapter             .getDefaultAdapter;             }         }     } 
3、搜索设备
mBluetoothAdapter.startLeScan{             //获取现在的设备             targetDevice = device;         }     } }; 
4、连接设备

经历扫描BLE设备,按照设备名称区分出现在的设备targetDevice,下一步实现与现在的设备的连接,在连接设备之前要停留搜索蓝牙;

mBluetoothAdapter.stopLeScan;BOB体育首页

停留搜索清淡必要必定的时间完善,最益调用停留搜索函数之后添以100ms的延时,保证体系能够十足停留搜索蓝牙设备。停留搜索之后启动连接过程;

BLE蓝牙的连接手段相对浅易只需调用connectGatt手段;

mBluetoothAdapter.startLeScan{             //获取现在的设备             targetDevice = device;         }     } }; 

参数表明

返回值BluetoothGatt:BLE蓝牙连接管理类,主要负责与设备进走通信;

booleanautoConnect:提出置为false,能够升迁连接速度;

BluetoothGattCallbackcallback连接回调,主要参数,BLE通信的中央片面;

5、设备通信

与设备竖立连接之后与设备通信,整个通信过程都是在BluetoothGattCallback的异步回调函数中完善;

BluetoothGattCallback中主要回调函数如下:

private BluetoothGattCallback gattCallback = new BluetoothGattCallback {         }     }; 

上述几个回调函数是BLE开发中不走欠缺的;

6、期待设备连接成功

当调用targetdDevice.connectGatt后体系会主动发首与BLE蓝牙设备的连接,若成功连接到设备将回调onConnectionStateChange手段,其处理过程如下:

@Override public void onConnectionStateChange {                 // 连接断开                 /*连接断开后的响答处理*/                   } }; 

判定newState==BluetoothGatt.STATE_CONNECTED外明此时已经成功连接到设备;

7、开启扫描服务

mBluetoothGatt.discoverServices;

扫描BLE设备服务是安卓体系中关于BLE蓝牙开发的主要一步,清淡在设备连接成功后调用,扫描到设备服务后回调onServicesDiscovered函数,函数原型如下:

@Override public void onServicesDiscovered; } 
BLE蓝牙制定下数据的通信手段采用BluetoothGattService、BluetoothGattCharacteristic和BluetoothGattDescriptor三个主要的类实现通信; BluetoothGattService简称服务,是构成BLE设备制定栈的构成单位,一个蓝牙设备制定栈清淡由一个或者众个BluetoothGattService构成; BluetoothGattCharacteristic简称特征,一个服务包含一个或者众个特征,特征行为数据的基本单元; 一个BluetoothGattCharacteristic特征包含一个数据值和附添的关于特征的描述 BluetoothGattDescriptor:用于描述特征的类,BOB体育首页其同样包含一个value值; 8、获取负责通信的BluetoothGattCharacteristic

BLE蓝牙开发主要有负责通信的BluetoothGattService完善的。当且称为通钦佩务。通钦佩务经历硬件工程师挑供的UUID获取。获取手段如下:

BluetoothGattServiceservice=mBluetoothGatt.getService; 通钦佩务中包含负责读写的BluetoothGattCharacteristic且别离称为notifyCharacteristic和writeCharacteristic。其中notifyCharacteristic负责开启监听也就是启动收数据的通道writeCharacteristic负责写入数据;

详细操作手段如下:

BluetoothGattService service = mBluetoothGatt.getService; 
9、开启监听

开启监听即竖立与设备的通信的首发数据通道BLE开发中只有当上位机成功开启监听后才能与下位机收发数据。开启监听的手段如下:

mBluetoothGatt.setCharacteristicNotification; 

若开启监听成功则会回调BluetoothGattCallback中的onDescriptorWrite手段处理手段如下:

@Override public void onDescriptorWrite;         } }; 
10、写入数据

监听成功后经历向writeCharacteristic写入数据实现与下位机的通信。写着手段如下:

//value为上位机向下位机发送的指令 writeCharacteristic.setValue 

其中:value清淡为Hex格式指令其内容由设备通信的蓝牙通信制定规定;

11、授与数据

若写入指令成功则回调BluetoothGattCallback中的onCharacteristicWrite手段表明将数据已经发送给下位机;

@Override public void onCharacteristicWrite; } 

若发送的数据相符通信制定则下位机会向上位机回复响答的数据。发送的数据经历回调onCharacteristicChanged手段获取其处理手段如下:

@Override public void onCharacteristicChanged; } 

经历向下位机发送指令获取下位机的回复数据即可完善与设备的通信过程;

12、断开连接

当与设备完善通信之后之后必定要断开与设备的连接。调用以着手段断开与设备的连接:

mBluetoothGatt.disconnect; 
二、蓝牙操作的仔细事项 蓝牙的写入操作读取操作必须序列化进走.写入数据和读取数据是不及同时进走的倘若调用了写入数据的手段马上调用又调用写入数据或者读取数据的手段第二次调用的手段会立即返回false代外现在无法进走操作; Android连接外围设备的数目有限当不必要连接蓝牙设备的时候必须调用BluetoothGatt#close手段开释资源; 蓝牙API连接蓝牙设备的超往往间也许在20s旁边详细时间望体系实现。未必候某些设备进走蓝牙连接的时间会很长也许十众秒。倘若本身手动竖立了连接超往往间在某些设备上能够会导致接下几次的连接尝试都会在BluetoothGattCallback#onConnectionStateChange返回state==133; 一切的蓝牙操作行使Handler固定在一条线程操作如许能省往许众由于线程分别步导致的麻烦; 总结

蓝牙开发中有许众题目要静下心分析题目肯定能够解决的一首添油;

柔件开发公司行使区块链技术的11栽手段 英特尔联手谷歌云开发数据中央芯片 Nature:哈佛&牛津开发最新AI模型已展望3600万个致命基因突变 物联网云平台实战开发 016:C说话开发系列视频课程之链外

BOB电竞平台 BOB体育首页 BOB综合体育在线