Wi-Fi AP配网
一、概述
本文主要介绍如何使用配网SDK(含UI)、配网SDK(不含UI)进行Wi-Fi Ap配网。
二、前提条件
- 完成准备工作
- 完成环境搭建
- 完成配网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进行传输,参见附录支持的入网设备列表 |