更新时间:2022-02-17 06:14:37下载pdf
通过摄像头设备扫描 App 二维码来传递配网信息的方式来实现配网设备。
开始配网之前,SDK 需要在联网状态下从涂鸦云获取配网 Token,Token 的有效期为10分钟,且配置成功后就会失效(再次配网需要重新获取)。
接口说明
配网 Token 获取接口
TuyaOSActivator.deviceActivator().getActivatorToken(final long homeId, final ITuyaActivatorGetToken activatorGetToken);
参数说明
参数 | 说明 |
---|---|
homeId | 家庭 ID,详情参考家庭管理章节 |
activatorGetToken | 配网 Token 获取回调 |
示例代码
TuyaOSActivator.deviceActivator().getActivatorToken(homeId,
new ITuyaActivatorGetToken() {
@Override
public void onSuccess(String token) {
}
@Override
public void onFailure(String s, String s1) {
}
});
示例代码
TuyaCameraActivatorBuilder builder = new TuyaCameraActivatorBuilder()
.setContext(context)
.setSsid(ssid)
.setPassword(password)
.setToken(token)
.setTimeOut(timeout)
.setListener(new ITuyaSmartCameraActivatorListener() {
@Override
public void onQRCodeSuccess(String qrcodeUrl) {
//返回生成二维码的 URL 链接
}
@Override
public void onError(String errorCode, String errorMsg) {
//配网失败
}
@Override
public void onActiveSuccess(DeviceBean devResp) {
//配网成功
}
}));
参数说明
参数 | 说明 |
---|---|
token | 配网所需要的激活 key |
context | 需要传入 activity 的 context |
ssid | 配网之后,设备工作 Wi-Fi 的名称(家庭网络) |
password | 配网之后,设备工作 Wi-Fi 的密码(家庭网络) |
timeout | 配网的超时时间设置,默认是 100s ,单位是秒 |
配网实现类
ITuyaCameraDevActivator mTuyaActivator = TuyaOSActivator.deviceActivator().newCameraDevActivator(builder);
获取二维码URL链接
mTuyaActivator.createQRCode(); //通过 onQRCodeSuccess 回调返回
根据URL生成二维码
示例:需要依赖 zxing( implementation ‘com.google.zxing:core:3.2.1’ )
public static Bitmap createQRCode(String url, int widthAndHeight)
throws WriterException {
Hashtable hints = new Hashtable();
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
hints.put(EncodeHintType.MARGIN,0);
BitMatrix matrix = new MultiFormatWriter().encode(url,
BarcodeFormat.QR_CODE, widthAndHeight, widthAndHeight, hints);
int width = matrix.getWidth();
int height = matrix.getHeight();
int[] pixels = new int[width * height];
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
if (matrix.get(x, y)) {
pixels[y * width + x] = BLACK;
}
}
}
Bitmap bitmap = Bitmap.createBitmap(width, height,
Bitmap.Config.ARGB_8888);
bitmap.setPixels(pixels, 0, width, 0, 0, width, height);
return bitmap;
}
开始配网
mTuyaActivator.start();
停止配网
mTuyaActivator.stop();
销毁数据
mTuyaActivator.onDestory();
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈