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