蓝牙配网

一、概述

本文主要介绍如何使用配网SDK(含UI)、配网SDK(不含UI)进行蓝牙配网

二、前提条件

  1. 完成准备工作
  2. 完成环境搭建
  3. 完成配网SDK(含UI)或者配网SDK(不含UI)集成

三、使用

3.1 配网流程

蓝牙配网是指App通过蓝牙发现设备后,通过蓝牙连接设备,并将配网信息发送给设备,最终完成设备注册、绑定等操作

3.2 配网SDK(含UI),API调用

3.2.1 跳转到配网设备列表页

跳转到选择设备列表页,里面列举了当前SDK支持的所有设备

   LMAccessSDKManager.Companion.getInstance()
                .gotoAccessListPage(
                        this,
                        "homeId",
                        "roomId",
                        "coapServer",
                        new LumiResultCallBack() {
                            @Override
                            public void success(@NonNull WeakReference<Activity> weakReference, @Nullable String s) {

                            }

                            @Override
                            public void fail(@Nullable Integer integer, @Nullable String s) {

                            }
                        }
                );

参数说明

字段 数据类型 描述 获取渠道
homeId String 家庭位置 接口获取,详情参见Aqara开发者平台
roomId String 房间位置 接口获取,详情参见Aqara开发者平台
coapServer String 设备入网域名(设备入网到哪个服务器) 接口获取,详情参见Aqara开发者平台

3.2.2 跳转到指定的设备配网页面

LMAccessSDKManager.Companion.getInstance()
        .gotoAccessConfigModule(
                this,
                "deviceModel",
                "homeId",
                "roomId",
                "coapServer",
                new LumiResultCallBack() {
                    @Override
                    public void success(@NonNull WeakReference<Activity> weakReference, @Nullable String s) {

                    }

                    @Override
                    public void fail(@Nullable Integer integer, @Nullable String s) {

                    }
                }

        );

参数说明

字段 数据类型 描述 获取渠道
deviceModel String 设备模型值 参见附录支持的入网设备列表
homeId String 家庭位置 接口获取,详情参见Aqara开发者平台
roomId String 房间位置 接口获取,详情参见Aqara开发者平台
coapServer String 设备入网域名(设备入网到哪个服务器) 接口获取,详情参见Aqara开发者平台

3.3 配网SDK(不含UI)

3.3.1 获取bindKey

需要第三方App自行实现接口请求,详情请查看Aqara开发者平台

3.3.2 蓝牙发现

BleScanner bluetoothLeScanner = new BleScanner(this);
bluetoothLeScanner.findDeviceByBle(2000L)
        .onTerminateDetach()
        .as(AutoDispose.autoDisposable(AndroidLifecycleScopeProvider.from(this)))
        .subscribe(new Consumer<List<ScanResult>>() {
            @Override
            public void accept(List<ScanResult> scanResults) throws Exception {

            }
        }, new Consumer<Throwable>() {
            @Override
            public void accept(Throwable throwable) throws Exception {

            }
        });

参数说明

字段 数据类型 描述 说明
intervalTime long 间隔时间 每隔多少毫秒SDK回调一次结果

3.3.3 发送配网信息

AccessConfigBean accessConfigBean = new AccessConfigBean(
        "ssid",
        "password",
        "coapServer",
        "bindKey"
);

AccessBleManager manager = new AccessBleManager.BLEAccessBuilder()
        .setAccessInfo(accessConfigBean)
        .setAccessMode(AccessBleManager.BleAccessMode.ACCESS_MODE_BLE_SUB_DEVICE)
        .setBleMac("deviceBleMac")
        .setAccessListener(new IAccessListener() {
            @Override
            public void connectSuccess() {

            }

            @Override
            public void accessResult(@Nullable String s) {

            }

            @Override
            public void accessFail(int i, @Nullable String s) {

            }
        })
        .build(this);

//开始配网
manager.startAccess();

//在适当时候调用资源回收,否则可能会出现配网数据缓存,导致不成功的问题
manager.onDestroy();

参数说明

字段 数据类型 描述 获取渠道
ssid String 配网Wi-Fi名称 Wi-Fi搜索获取
password String 配网Wi-Fi密码 用户输入
coapServer String 设备入网服务器 接口获取,详情参见Aqara开发者平台
bindKey String 设备入网唯一标识 第三方App自行请求接口获取
bleMac String 设备蓝牙地址 通过蓝牙搜索获取
accessMode String 设备入网类型 详情参加下面取值

accessMode取值

取值 数据类型 描述
ACCESS_MODE_GATEWAY 枚举 蓝牙网关,参见附录支持的入网设备列表
ACCESS_MODE_BLE_SUB_DEVICE 枚举 蓝牙子设备,参见附录支持的入网设备列表
ACCESS_MODE_BLE_ZIGBEE_SUB_DEVICE 枚举 蓝牙/zigbee双模子设备,参见附录支持的入网设备列表
Copyright © 2023 深圳绿米联创科技有限公司 all right reserved,powered by Gitbook文档修改时间: 2024-09-27 21:51:47

results matching ""

    No results matching ""