蓝牙辅助配网
更新时间:2019-09-10 09:41:21
通过点击品类列表进行配网
1. 通过PK 获取pid 信息
调用接口 获取 入参productKey,返回值中有 productId 即pid
/thing/allProductInfo/getByProductKey
具体可以参考API文档。
2. 设置设备配网信息
DeviceInfo deviceInfo = new DeviceInfo();
deviceInfo.productKey = "xx"; // 商家后台注册的 productKey,不可为空
deviceInfo.deviceName = "xxx";// 设备名, 可为空
deviceInfo.productId = "xxx";// 产品 ID, 蓝牙辅助配网必须
deviceInfo.id= "xxx";// 设备热点的id,在发现热点设备返回到APP的时候会带这个字段
// 设备热点配网 ForceAliLinkTypeSoftAP 蓝牙辅助配网 ForceAliLinkTypeBLE
// 二维码配网 ForceAliLinkTypeQR 手机热点配网 ForceAliLinkTypePhoneAP
// 一键配网 ForceAliLinkTypeBroadcast 零配 ForceAliLinkTypeZeroAP
deviceInfo.linkType = "ForceAliLinkTypeBLE"; // 默认一键配网
//设置待添加设备的基本信息
AddDeviceBiz.getInstance().setDevice(DeviceInfo deviceinfo);
3. 开始配网
需要自己完成界面让用户输入wifi ssid,wifi 密码界面,然后点击开始配网时,先可以判断用户蓝牙是否打开,没打开提示打开;然后调用下面代码进行配网,在 onProvisionPrepare 中调用api 将 wifi 信息填入, 在 onProvisionedResult
会返回配网结果,如果成功则可以获取相关信息进行绑定流程,如果失败可以查看失败code
AddDeviceBiz.getInstance().startAddDevice(context, new IAddDeviceListener(){
@Override
public void onPreCheck(boolean b, DCErrorCode dcErrorCode) {
// 参数检测回调
}
@Override
public void onProvisionPrepare() {
// 提示用户输入账号密码
AddDeviceBiz.getInstance().toggleProvision(ssid, password,60);
}
@Override
public void onProvisioning() {
// 配网中
}
@Override
public void onProvisionStatus(ProvisionStatus provisionStatus) {
// 配网状态
}
@Override
public void onProvisionedResult(boolean b, DeviceInfo deviceInfo, DCErrorCode dcErrorCode) {
// 配网结果
}
});