蓝牙围度尺

  • 设备 开关键 短按开机,长按关键;
  • 设备 功能键 短按锁定本次测量数据,长按切换设备单位。

围度尺SDK接入步骤

一、初始化QNSDK

使用QNBleApi.initSdk进行初始化,前文已有相关介绍,请查看

二、设置围度尺回调监听类

在开启蓝牙扫描前,需要设置监听类,方法为QNBleApi.setBleRulerListener,该方法只需要调用一次即可,在确定不需要扫描记得设置为 null/nil

android 示例:

QNBleApi mQNBleApi = QNBleApi.getInstance(context);
mQNBleApi.setBleRulerListener(this)

iOS 示例:

//设置代理
QNBleApi *bleApi = [QNBleApi sharedBleApi];
bleApi.bleRulerListener = self;

三、实现围度尺回调监听方法

实现围度尺回调监听方法, QNSDK会把发现的设置 设备链接状态 以及测量数据结果回调到实现监听的方法中

android 示例:

    @Override
    public void onRulerDeviceDiscover(QNBleRulerDevice device) {
      //发现围度尺
    }

    @Override
    public void onRulerConnecting(QNBleRulerDevice device) {
      //正在连接
    }

    @Override
    public void onRulerConnected(QNBleRulerDevice device) {
      //连接成功
    }

    @Override
    public void onGetReceiveRealTimeData(QNBleRulerData data, QNBleRulerDevice device) {
      //实时测量数据
    }

    @Override
    public void onGetReceiveResultData(QNBleRulerData data, QNBleRulerDevice device) {
      //用户操作确定数据
    }

    @Override
    public void onRulerDisconnected(QNBleRulerDevice device) {
      //断开连接
    }

    @Override
    public void onRulerConnectFail(QNBleRulerDevice device) {
      //链接失败
    }

iOS 示例:

- (void)onRulerDeviceDiscover:(QNBleRulerDevice *)device {
   ///发现围度尺
}

- (void)onRulerConnecting:(QNBleRulerDevice *)device {
   ///正在连接
}

- (void)onRulerConnectFail:(QNBleRulerDevice *)device {
   ///链接失败
}

- (void)onRulerConnected:(QNBleRulerDevice *)device {
   ///连接成功
}

- (void)onRulerDisconnected:(QNBleRulerDevice *)device {
   ///断开连接
}

- (void)onGetReceiveRealTimeData:(QNBleRulerData *)data device:(QNBleRulerDevice *)device {
   ///实时测量数据
}

- (void)onGetReceiveResultData:(QNBleRulerData *)data device:(QNBleRulerDevice *)device {
   ///用户操作确定数据
}

四、启动蓝牙扫描

确认蓝牙已打开,安卓这边还需要检查下定位权限定位开关。如果确认蓝牙已打开,定位权限已授权,定位服务开关已打开,则可以开始蓝牙扫描

安卓 6.0 以后,对 targetSdkVersion>=23 以上的 APP,进行蓝牙扫描需要获取定位权限,详细说明查看关于 定位服务开关不是强制性的,但是某些手机不打开这个开关,也无法扫描到设备,跟各家的手机系统相关

iOS13系统增加了蓝牙使用权限,需要检查是否有使用权限,确认已授权并且蓝牙已打开的情况下,开始扫描

扫描方法为QNBleApi.startBleDeviceDiscovery,扫描到的设备数据,会在上面设置的扫描接口中QNBleDeviceDiscoveryListener回调。

另外有关扫描的一些特性设置,可以在QNConfig进行设置,需要设置的内容已基本覆盖。

android示例:

QNBleApi.getInstance(context).startBleDeviceDiscovery(new QNResultCallback() {
            @Override
            public void onResult(int code, String msg) {
                //该方法并不回到设备,而是表示扫描是否启动成功
                if (code != CheckStatus.OK.getCode()) {
                   ToastMaker.show(ScanActivity.this,code+":"+msg);
                }
            }
        });

iOS示例:

//启动扫描
[[QNBleApi sharedBleApi] startBleDeviceDiscovery:^(NSError *error) {
    //该处回调表示启动扫描方法是否成功
    if (error) {
        NSLog([NSString stringWithFormat:@"启动扫描方法失败,原因: %@",error]);
    }
}];

四、连接围度监听方法回调设备

收到回调设备后,可以判断是否为需要连接的设备(这个属于 APP 的业务逻辑),如果是的话就进行连接QNBleApi.connectRulerDevice

android示例:

        QNBleApi.getInstance(RulerActivity.this).connectRulerDevice(qnBleRulerDevice, new QNResultCallback() {
            @Override
            public void onResult(int code, String msg) {

            }
        });

iOS示例:

   [_bleApi connectRulerDevice:device callback:^(NSError *error) {

    }];

五、接收时时数据与用户确定数据

时时数据,当SDK与围度尺建立好蓝牙连接后, 围度尺会主动上报当前尺子长度数值与单位。 用户确定数据,当用户短按功能键时, 围度尺会主动上报用户按下功能键时尺子长度数值与单位。

六、断开链接

围度尺断开连接,分为:SDK软件主动断开与围度尺设备主动断开两种。两种断开方式都会触发围度尺监听设备断开连接方法。 SDK软件主动断开连接QNBleApi.disconnectDevice android示例:

        QNBleApi.getInstance(RulerActivity.this).disconnectDevice(mac, new QNResultCallback() {
            @Override
            public void onResult(int i, String s) {

            }
        });

iOS示例:

   [_bleApi disconnectDeviceWithMac:_ruler.mac callback:^(NSError *error) {


    }];

results matching ""

    No results matching ""