普通蓝牙秤-自主管理蓝牙

该篇章是给对蓝牙有一定了解,并在APP中有自己蓝牙框架的用户使用

如果对蓝牙不熟悉,或者没有自己的蓝牙框架,不建议使用该种方式接入,不然会增加接入的成本

一、启动蓝牙扫描

客户自己进行蓝牙扫描的启动和停止,把扫描到的设备信息传给我们SDK(调用QNBleApi.buildDevice),如果是属于我们的设备,SDK就会构建QNBleDevice,如果不是我们的设备,则会返回null/nil。

通常我们设备的蓝牙名为QN-Scale或QN-Scale1,通常也可以通过该蓝牙名来过滤我们的产品 获取到目标设备后,是否停止扫描由APP自行决定。我们通常建议进行连接之前,最好把蓝牙扫描给停止。

二、创建蓝牙协议代理类

创建自己的蓝牙协议代理类QNBleProtocolDelegate,并实现它的全部方法。具体的实现方式,可以我们的Demo

三、创建蓝牙协议处理类

使用QNBleApi.buildProtocolHandler创建协议处理类 QNBleProtocolHandler

四、自行连接蓝牙

使用系统API或自己的蓝牙框架的连接设备。

该部分的逻辑是由APP自行处理

五、发现服务、使能特征值

我们的秤使用了两套服务,一个设备只会包含其中一套。APP需要遍历所有服务找到其中一套的服务ID,找到一套的,就按照下表中的特征值,把需要回调数据的特征值都使能。

使能特征值后,调用QNBleProtocolHandlerprepare,并传递使用的服务的UUID

第一套

服务ID为:FFE0 在其下面用到好些特征值,分别如下:

UUID 属性 说明
FFE1 Notify 主要的数据回调特征值
FFE3 Write 主要的数据写入特征值
FFE2 Indicate 次要的数据回调特征值,注意这个的属性是Indicate,安卓方面的使能可能会有点差别
FFE4 Write 次要的数据回调特征值
2A19 Read 充电秤电量特征值

这里特征值的UUID只以32位的形式提供,安卓需要使用128位的,则自行拼接
比如 FFE0 的128位是:0000ffe0-0000-1000-8000-00805f9b34fb

第二套

服务ID为:FFF0 在其下面只有两个特征值,一个用来数据回调,一个写入数据

UUID 属性 说明
FFF1 Notify 数据回调特征值
FFF2 Write 数据写入特征值
2A19 Read 充电秤电量特征值

数据交互

使能特征值后,就可以收到秤上传的数据。

APP收到秤端的回调数据后,通过方法QNBleProtocolHandler.onGetBleData发给SDK进行解析,解析的数据会通过QNScaleDataListener回调。

另外,如果需要写入数据,则会通过QNBleProtocolDelegate.writeCharacteristicValue,让APP代为写入。

测量完成

测量完成后,会通过QNScaleDataListener回调完整数据,之后秤端会主动断开连接。

下次连接的时候,需要重新创建QNBleProtocolDelegateQNBleProtocolHandler

results matching ""

    No results matching ""