设备分组
更新时间:2026-08-06 10:40:56
对用户下的设备进行分组管理与家庭管理,家庭下可创建多个设备分组。
// 导入头文件
import 'package:airtc_engine/src/device_center/rtcx_device_group.dart';
class RTCXFluDeviceGroupApi {
/// 创建家庭
@async
RTCXFluGroupResult homeCreate(RTCXFluHomeCreateReq req);
/// 删除家庭
@async
RTCXFluGroupResult homeDelete(RTCXFluHomeDeleteReq req);
/// 更新家庭信息
@async
RTCXFluGroupResult homeUpdate(RTCXFluHomeUpdateReq req);
/// 家庭列表
@async
RTCXFluHomeListRsp homeList(RTCXFluHomeListReq req);
/// 创建设备分组
@async
RTCXFluGroupResult groupCreate(RTCXFluGroupCreateReq req);
/// 删除设备分组
@async
RTCXFluGroupResult groupDelete(RTCXFluGroupDeleteReq req);
/// 更新设备分组信息
@async
RTCXFluGroupResult groupUpdate(RTCXFluGroupUpdateReq req);
/// 设备分组列表
@async
RTCXFluGroupListRsp groupList(RTCXFluGroupListReq req);
/// 添加设备到分组
@async
RTCXFluGroupResult groupAddDevice(RTCXFluGroupAddDeviceReq req);
/// 分组中删除设备
@async
RTCXFluGroupResult groupDeleteDevice(RTCXFluGroupDeleteDeviceReq req);
}
// 设备分组api
final RTCXFluDeviceGroupApi deviceGroupApi = RTCXFluDeviceGroupApi();
使用RTCXFluDeviceGroupApi调用示例如下:
创建家庭
void homeCreate() {
List<RTCXFluGroupCreateReq> groupList = [];
RTCXFluGroupCreateReq greq1 = RTCXFluGroupCreateReq(name: '家庭下子分组1');
groupList.add(greq1);
RTCXFluGroupCreateReq greq2 = RTCXFluGroupCreateReq(name: '家庭下子分组2');
groupList.add(greq2);
RTCXFluHomeCreateReq req = RTCXFluHomeCreateReq(
name: "家庭分组名称", groupList: groupList,
);
groupApi
.homeCreate(req)
.then((result) {
print("homeCreate result:$result");
getHomeList();
})
.catchError((err) {
if (err is PlatformException) {
PlatformException exception = err;
print("homeCreate catchError:${exception.code}--${exception.message} typeof:${err.runtimeType}");
} else {
print("homeCreate catchError:$err");
}
});
}
删除家庭
void homeDelete(int homeId) {
RTCXFluHomeDeleteReq req = RTCXFluHomeDeleteReq(homeId: homeId);
groupApi
.homeDelete(req)
.then((result) {
print("homeDelete result:$result");
getHomeList();
})
.catchError((err) {
print("homeDelete catchError:$err");
});
}
更新家庭信息
void homeUpdate(int homeId, String name) {
RTCXFluHomeUpdateReq req = RTCXFluHomeUpdateReq(
homeId: homeId,
name: name,
);
groupApi
.homeUpdate(req)
.then((result) {
print("homeUpdate result:$result");
getHomeList();
})
.catchError((err) {
print("homeUpdate catchError:$err");
});
}
家庭列表
void getHomeList() {
RTCXFluHomeListReq req = RTCXFluHomeListReq(pageNo: 1, pageSize: 20);
groupApi
.homeList(req)
.then((RTCXFluHomeListRsp data) {
if (data.items != null) {
homeInfoItems = data.items!;
}
setState(() {});
})
.catchError((err) {
print("getHomeList catchError:$err");
});
}
创建设备分组
void groupCreate() {
RTCXFluGroupCreateReq req = RTCXFluGroupCreateReq(
name: "分组名称",
);
// 如果有家庭分组,则传homeId,有homeId, 则创建于该家庭下子分组
if(widget.homeInfoRsp != null && widget.homeInfoRsp!.homeId != null) {
req.homeId = widget.homeInfoRsp!.homeId!;
}
deviceGroupApi
.groupCreate(req)
.then((result) {
print("groupCreate result:$result");
})
.catchError((err) {
print("groupCreate catchError:$err");
});
}
删除设备分组
void groupDelete(int groupId) {
RTCXFluGroupDeleteReq req = RTCXFluGroupDeleteReq(groupId: groupId);
deviceGroupApi
.groupDelete(req)
.then((result) {
print("groupDelete result:${result.result}");
})
.catchError((err) {
print("groupDelete catchError:$err");
});
}
更新设备分组信息
void groupUpdate(int groupId) {
RTCXFluGroupUpdateReq req = RTCXFluGroupUpdateReq(
groupId: groupId,
name: "更改后的名字",
);
deviceGroupApi
.groupUpdate(req)
.then((result) {
print("groupUpdate result:$result");
})
.catchError((err) {
print("groupUpdate catchError:$err");
});
}
设备分组列表
void getGroupList() {
RTCXFluGroupListReq req = RTCXFluGroupListReq(pageNo: 1, pageSize: 20);
print("getGroupList");
if(widget.homeInfoRsp != null && widget.homeInfoRsp!.homeId != null) {
// 如果传homeId,查询的是家庭下的子分组列表
req.homeId = widget.homeInfoRsp!.homeId!;
}
deviceGroupApi
.groupList(req)
.then((RTCXFluGroupListRsp data) {
if (data.items != null) {
groupInfoItems = data.items!;
}
setState(() {});
})
.catchError((err) {
print("getGroupList catchError:$err");
});
}
添加设备到分组
void addDeviceToGroup(int groupId, List<String> iotIdList) {
RTCXFluGroupAddDeviceReq req = RTCXFluGroupAddDeviceReq(groupId: groupId, iotIdList: iotIdList);
deviceGroupApi
.groupAddDevice(req)
.then((result) {
print("groupAddDevice result:$result");
})
.catchError((err) {
print("groupAddDevice catchError:$err");
});
}
分组中删除设备
void deleteDeviceFromGroup(int groupId, List<String> iotIdList) {
RTCXFluGroupDeleteDeviceReq req = RTCXFluGroupDeleteDeviceReq(groupId: groupId, iotIdList: iotIdList);
deviceGroupApi
.groupDeleteDevice(req)
.then((result) {
print("groupDeleteDevice result:$result");
})
.catchError((err) {
print("groupDeleteDevice catchError:$err");
});
}