设备分组
更新时间:2025-04-01 13:24:21
对用户下的设备进行分组管理
import com.polaris.iot.appsdk.libapiclient.callback.IoTCallback
import com.polaris.iot.appsdk.libuserdevicemgr.model.GroupListRsp
/**
* 设备分组
*/
object IDeviceGroupMgr {
/**
* 创建分组
*
* @param name 分组名称
* @param iotIdList 设备ID列表 可选
* @param ioTCallback
*/
fun groupCreate(name: String, iotIdList: List<String>?, ioTCallback: IoTCallback)
/**
* 删除分组
*
* @param groupId 分组ID
* @param ioTCallback
*/
fun groupDelete(groupId: Long, ioTCallback: IoTCallback)
/**
* 更新分组名称
*
* @param groupId 分组ID
* @param name 分组名称
* @param ioTCallback
*/
fun groupUpdate(groupId: Long, name: String, ioTCallback: IoTCallback)
/**
* 分组列表
*
* @param pageNo 页码
* @param pageSize 每页数量 最大20
* @param ioTCallback [GroupListRsp]
*/
fun groupList(pageNo: Int, pageSize: Int, ioTCallback: IoTCallback)
/**
* 分组添加设备
*
* @param groupId groupId 分组ID
* @param iotIdList 设备ID列表
* @param ioTCallback
*/
fun groupAddDevice(groupId: Long, iotIdList: List<String>, ioTCallback: IoTCallback)
/**
* 分组删除设备
*
* @param groupId groupId 分组ID
* @param iotIdList 设备ID列表
* @param ioTCallback
*/
fun groupDeleteDevice(groupId: Long, iotIdList: List<String>, ioTCallback: IoTCallback)
}
创建分组
/**
* 创建分组
*
* @param name 分组名称
* @param iotIdList 设备ID列表 可选
* @param ioTCallback
*/
fun groupCreate(name: String, iotIdList: List<String>?, ioTCallback: IoTCallback)
示例
DeviceGroupMgr.groupCreate(groupName, selectedIotList, new IoTCallback() {
@Override
public void onFailure(@Nullable IoTRequest request, @NonNull IoTSDKError exception) {
showToast(R.string.tip_operate_failed);
hideLoading();
}
@Override
public void onResponse(@NonNull IoTRequest request, @NonNull IoTResponse response) {
hideLoading();
showToast(R.string.tip_operate_success);
finish();
}
});
删除分组
/**
* 删除分组
*
* @param groupId 分组ID
* @param ioTCallback
*/
fun groupDelete(groupId: Long, ioTCallback: IoTCallback)
示例
DeviceGroupMgr.groupDelete(mGroupInfo.getGroupId(), new IoTCallback() {
@Override
public void onFailure(@Nullable IoTRequest request, @NonNull IoTSDKError exception) {
hideLoading();
showToast(R.string.tip_operate_failed);
}
@Override
public void onResponse(@NonNull IoTRequest request, @NonNull IoTResponse response) {
finish();
}
});
更新分组名称
/**
* 更新分组名称
*
* @param groupId 分组ID
* @param name 分组名称
* @param ioTCallback
*/
fun groupUpdate(groupId: Long, name: String, ioTCallback: IoTCallback)
示例
DeviceGroupMgr.groupUpdate(mGroupInfo.getGroupId(), groupName, new IoTCallback() {
@Override
public void onFailure(@Nullable IoTRequest request, @NonNull IoTSDKError exception) {
showToast(R.string.tip_group_name_failed);
}
@Override
public void onResponse(@NonNull IoTRequest request, @NonNull IoTResponse response) {
}
});
分组列表
/**
* 分组列表
*
* @param pageNo 页码
* @param pageSize 每页数量 最大20
* @param ioTCallback [GroupListRsp]
*/
fun groupList(pageNo: Int, pageSize: Int, ioTCallback: IoTCallback)
示例
private void getGroupList() {
DeviceGroupMgr.groupList(1, 20, new IoTCallback() {
@Override
public void onFailure(@Nullable IoTRequest request, @NonNull IoTSDKError exception) {
showToast(R.string.error_api_failed);
}
@Override
public void onResponse(@NonNull IoTRequest request, @NonNull IoTResponse response) {
GroupListRsp rsp = (GroupListRsp) response.getData();
assert rsp != null;
mGroupList = rsp.getItems();
List<CommonListItem> list = new ArrayList<>();
for (GroupInfo groupInfo : mGroupList) {
String label = groupInfo.getName();
list.add(new CommonListItem(label, "", "", String.valueOf(groupInfo.getGroupId()), true));
}
ThreadManage.runOnUiThread(new Runnable() {
@Override
public void run() {
mCommonListAdapter.setDataList(list);
}
});
}
});
}
GroupListRsp及GroupInfo
/**
* Group info
*
* @property groupId 分组ID
* @property name 分组名称
* @property deviceCount 分组下设备数
* @constructor Create empty Group info
*/
data class GroupInfo(
val groupId: Long,
var name: String,
var deviceCount: Int = 0
) : Serializable
/**
* 设备分组列表返回
*
* @property total 总数
* @property pageNo 页码
* @property pageSize 每页数量
* @property items 返回记录数
* @constructor Create empty Group list rsp
*/
data class GroupListRsp(
var total: Int,
val pageNo: Int,
val pageSize: Int,
val items: List<GroupInfo>
)
分组添加设备
/**
* 分组添加设备
*
* @param groupId groupId 分组ID
* @param iotIdList 设备ID列表
* @param ioTCallback
*/
fun groupAddDevice(groupId: Long, iotIdList: List<String>, ioTCallback: IoTCallback)
示例
private void doAddGroupDevice(List<String> addIotList) {
IoTCallback callback = new IoTCallback() {
@Override
public void onFailure(@Nullable IoTRequest request, @NonNull IoTSDKError exception) {
showToast(R.string.tip_group_device_add_failed);
hideLoading();
}
@Override
public void onResponse(@NonNull IoTRequest request, @NonNull IoTResponse response) {
hideLoading();
showToast(R.string.tip_modify_success);
finish();
}
};
if (addIotList.isEmpty()) {
callback.onResponse(null, null);
return;
}
DeviceGroupMgr.groupAddDevice(mGroupInfo.getGroupId(), addIotList, callback);
}
分组删除设备
/**
* 分组删除设备
*
* @param groupId groupId 分组ID
* @param iotIdList 设备ID列表
* @param ioTCallback
*/
fun groupDeleteDevice(groupId: Long, iotIdList: List<String>, ioTCallback: IoTCallback)
示例
DeviceGroupMgr.groupDeleteDevice(mGroupInfo.getGroupId(), removeIotList, new IoTCallback() {
@Override
public void onFailure(@Nullable IoTRequest request, @NonNull IoTSDKError exception) {
showToast(R.string.tip_group_device_del_failed);
doAddGroupDevice(addIotList);
}
@Override
public void onResponse(@NonNull IoTRequest request, @NonNull IoTResponse response) {
doAddGroupDevice(addIotList);
}
});