Wi-Fi AP配网

一、概述

本文主要介绍如何使用配网SDK(含UI)、配网SDK(不含UI)进行Wi-Fi Ap配网。

二、前提条件

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

三、使用

3.1 配网流程

Wi-Fi Ap入网,是指设备开启热点模式后,SDK通过连接设备的热点,发送配网信息给设备,设备通过配网信息中的Wi-Fi账户及密码连接绿米云,最后完成激活操作。

3.2 配网SDK(含UI)

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自行请求云端接口获取,详情参见接口文档

3.3.2 Wi-Fi 搜索

WifiScanner wifiScanner = new WifiScanner(this);
wifiScanner.findDeviceByWifi(2000L)
        .onTerminateDetach()
        .as(AutoDispose.autoDisposable(AndroidLifecycleScopeProvider.from(this)))
        .subscribe(new Consumer<List<android.net.wifi.ScanResult>>() {
            @Override
            public void accept(List<android.net.wifi.ScanResult> scanResults) throws Exception {

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

            }
        });

参数说明

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

3.3.3 连接设备Wi-Fi热点,并发送配网信息

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

AccessAPManager manager = new AccessAPManager.WifiAccessBuilder()
        .setAccessInfo(accessConfigBean)
        .setDeviceAp("设备热点ssid")
        .setAccessMode(AccessAPManager.WifiAccessMode.ACCESS_MODE_UDP)
        .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自行请求接口获取
deviceAp String 设备Wi-Fi热点的ssid 通过wifi搜索获取
accessMode String 设备入网类型 详情参加下面取值

accessMode取值

取值 数据类型 描述
ACCESS_MODE_UDP 枚举 使用UDP进行传输,参见附录支持的入网设备列表
ACCESS_MODE_TCP 枚举 使用TCP进行传输,参见附录支持的入网设备列表
ACCESS_MODE_HTTP 枚举 使用HTTP进行传输,参见附录支持的入网设备列表
Copyright © 2023 深圳绿米联创科技有限公司 all right reserved,powered by Gitbook文档修改时间: 2024-06-05 16:27:09

results matching ""

    No results matching ""