区域管理

更新时间:2024-06-12 10:22:47下载pdf

获取一级区域列表

接口说明

ThingCommercialLightingProject.newProjectInstance(long projectId)
            .getAreaList(IThingResultCallback<List<AreaBean>> callback);

参数说明

参数 说明
projectId 项目 ID

示例代码

ThingCommercialLightingProject.newProjectInstance(projectId).getAreaList(
            new IThingResultCallback<List<AreaBean>>() {
            @Override
            public void onSuccess(List<AreaBean> result) {
                    //success callback
            }

            @Override
            public void onError(String errorCode, String errorMessage) {
                  // error callback
            }
        });

获取子区域列表

接口说明

ThingCommercialLightingArea.newAreaInstance(long projectId, long areaId).getSubAreaList(
    IThingResultCallback<List<AreaBean>> listener
);

参数说明

参数 说明
projectId 项目 ID
areaId 区域 ID

示例代码

ThingCommercialLightingArea.newAreaInstance(long projectId, long areaId).getSubAreaList(
    new IThingResultCallback<List<AreaBean>>() {
            @Override
            public void onSuccess(List<AreaBean> result) {
                    //success callback
            }

            @Override
            public void onError(String errorCode, String errorMessage) {
                  // error callback
            }
        }
);

获取区域层级列表

接口说明

获取项目下的一级层级列表。

ThingCommercialLightingProject.newProjectInstance(long projectId).getAreaLevels(
    boolean needUnassignedArea,
    boolean needPublicArea,
    IThingResultCallback<AreaListInProjectResponse> callback
) ;

参数说明

参数 说明
projectId 项目 ID
needUnassignedArea 是否返回未分区层级
needPublicArea 是否返回公共区域层级

示例代码

ThingCommercialLightingProject.newProjectInstance(projectId).getAreaLevels(needUnassignedArea, needPublicArea, new IThingResultCallback<AreaListInProjectResponse>() {
            @Override
            public void onSuccess(AreaListInProjectResponse result) {
                //success callback
            }

            @Override
            public void onError(String errorCode, String errorMessage) {
                    //error callback
            }
        });

获取区域信息

接口说明

ThingCommercialLightingArea.newAreaInstance(long projectId, long areaId).getAreaInfo(
    IThingResultCallback<SimpleAreaBean> callback
);

参数说明

参数 说明
projectId 项目 ID
areaId 区域 ID

示例代码

        ThingCommercialLightingArea.newAreaInstance(projectId, areaId).getAreaInfo(new IThingResultCallback<SimpleAreaBean>() {
            @Override
            public void onSuccess(SimpleAreaBean result) {
                //success callback
            }

            @Override
            public void onError(String errorCode, String errorMessage) {
                    //error callback
            }
        });

获取区域对应的关系 ID(gid)

接口说明

SimpleAreaBean # getRelationId()

参数说明

参数 说明
projectId 项目 ID
areaId 区域 ID

示例代码

ThingCommercialLightingArea.newAreaInstance(projectId, areaId).getAreaInfo(new IThingResultCallback<SimpleAreaBean>() {
    @Override
    public void onSuccess(SimpleAreaBean result) {
        long relationId = result.getRelationId();
    }

    @Override
    public void onError(String errorCode, String errorMessage) {
            //error callback
    }
});

获取区域下的设备列表

接口说明

ThingCommercialLightingArea.newAreaInstance(long projectId, long areaId).queryDeviceListInArea(
    String tag, int limit, String offsetKey, IThingResultCallback<LightingDeviceListBean> callback
);

参数说明

参数 说明
tag 设备列表条件分类,默认传空
limit 每页请求的设备数量
offsetKey 当前页码,第一页传 1,后续页数依次递增
callback 结果回调

示例代码

        ThingCommercialLightingArea.newAreaInstance(mProjectId, mAreaId).queryDeviceListInArea("", 20,
                "1", new IThingResultCallback<LightingDeviceListBean>() {
                    @Override
                    public void onSuccess(LightingDeviceListBean result) {
                        //success callback0
                    }

                    @Override
                    public void onError(String errorCode, String errorMessage) {
                            //error callback
                    }
                });

创建区域

创建区域(适用于室内项目和停车场项目)

接口说明

ThingCommercialLightingArea.getLightingAreaManager().createArea(
    long projectId,
    long currentAreaId,
    String name,
    int roomLevel,
    IThingResultCallback<SimpleAreaBean> callback
 );

参数说明

参数 说明
projectId 项目 ID
currentAreaId 当前区域 ID,若无,则传 0
name 区域名称
roomLevel 创建的区域层级 ID

示例代码

ThingCommercialLightingArea.getLightingAreaManager().createArea(projectId, currentAreaId, name, roomLevel, new           IThingResultCallback<SimpleAreaBean>() {
            @Override
            public void onSuccess(SimpleAreaBean result) {
                //success callback
            }

            @Override
            public void onError(String errorCode, String errorMessage) {
                    //error callback
            }
        });

创建区域(适用于户外项目)

接口说明

ThingCommercialLightingArea.getLightingAreaManager().createArea(
    long projectId,
    long currentAreaId,
    String name,
    int roomLevel,
    double longitude,
    double latitude,
    String address,
    IThingResultCallback<SimpleAreaBean> callback
 );

参数说明

参数 说明
projectId 项目 ID
currentAreaId 当前区域 ID,若无,则传 0
name 区域名称
roomLevel 创建的区域层级 ID
longitude 当前区域位置的经度
latitude 当前区域位置的纬度
address 当前区域地址
callback 回调

示例代码

ThingCommercialLightingArea.getLightingAreaManager().createArea(projectId, currentAreaId, name, roomLevel, longitude, latitude, address, new IThingResultCallback<SimpleAreaBean>() {
            @Override
            public void onSuccess(SimpleAreaBean result) {
                //success callback
            }

            @Override
            public void onError(String errorCode, String errorMessage) {
                    //error callback
            }
        });

创建子区域(适用于室内项目、停车场项目)

接口说明

ThingCommercialLightingArea.newAreaInstance(long projectId, long areaId).createSubArea(
    String subAreaName,
    IThingResultCallback<SimpleAreaBean> callback
);

参数说明

参数 说明
projectId 项目 ID
areaId 区域 ID
subAreaName 子区域名称

示例代码

ThingCommercialLightingArea.newAreaInstance(projectId, areaId).createSubArea(subAreaName, new IThingResultCallback<SimpleAreaBean>() {
            @Override
            public void onSuccess(SimpleAreaBean result) {
                //success callback
            }

            @Override
            public void onError(String errorCode, String errorMessage) {
                    //error callback
            }
        });

创建子区域(适用于户外区域)

接口说明

ThingCommercialLightingArea.newAreaInstance(long projectId, long areaId).createSubArea(
        String subAreaName,
    double longitude,
    double latitude,
    String address,
    IThingResultCallback<SimpleAreaBean> callback
);

参数说明

参数 说明
projectId 项目 ID
areaId 区域 ID
subAreaName 子区域名称
longitude 区域位置经度
latitude 区域位置纬度
address 区域实际位置地址,即经纬度定位到的位置

示例代码

ThingCommercialLightingArea.newAreaInstance(projectId, areaId).createSubArea(subAreaName, longitude, latitude, address, new IThingResultCallback<SimpleAreaBean>() {
            @Override
            public void onSuccess(SimpleAreaBean result) {
                //success callback
            }

            @Override
            public void onError(String errorCode, String errorMessage) {
                    //error callback
            }
        });

修改区域

修改区域(适用于室内项目和停车场项目)

接口说明

ThingCommercialLightingArea.newAreaInstance(long projectId, long areaId).updateName(
    String name,
    IThingResultCallback<Boolean> callback
);

参数说明

参数 说明
projectId 项目 ID
areaId 区域 ID
name 区域名称

示例代码

ThingCommercialLightingArea.newAreaInstance(projectId, areaId).updateName(name, new IThingResultCallback<Boolean>() {
            @Override
            public void onSuccess(Boolean result) {
                //success callback
            }

            @Override
            public void onError(String errorCode, String errorMessage) {
                    //error callback
            }
        });

修改区域(适用于户外项目)

接口说明

ThingCommercialLightingArea.newAreaInstance(long projectId, long areaId).updateAreaInfo(
    String name,
    double longitude,
    double latitude,
    String address,
    IThingResultCallback<Boolean> callback
);

参数说明

参数 说明
projectId 项目 ID
areaId 区域 ID
name 区域名称
longitude 区域位置经度
latitude 区域位置纬度
address 区域实际位置地址,即经纬度定位到的位置

示例代码

ThingCommercialLightingArea.newAreaInstance(projectId, areaId).updateAreaInfo(name,longitude,latitude,address, new IThingResultCallback<Boolean>() {
            @Override
            public void onSuccess(Boolean result) {
                //success callback
            }

            @Override
            public void onError(String errorCode, String errorMessage) {
                    //error callback
            }
        });

删除区域

接口说明

ThingCommercialLightingArea.newAreaInstance(long projectId, long areaId).delete(
    IThingResultCallback<Boolean> callback
);

参数说明

参数 说明
projectId 项目 ID
areaId 区域 ID

示例代码

ThingCommercialLightingArea.newAreaInstance(long projectId, long areaId).delete(
   new IThingResultCallback<Boolean>() {
            @Override
            public void onSuccess(Boolean result) {
                //success callback
            }

            @Override
            public void onError(String errorCode, String errorMessage) {
                    //error callback
            }
        }
);

设备转移

设备转移是指将部分设备从一个区域转移到另外一个区域的操作,设备转移过程较复杂。下图为设备转移的大致流程:

区域管理

接口说明

ThingCommercialLightingArea
        .newAreaInstance(long projectId, long areaId)
        .transferDevices(List<String> devIds,DefaultDeviceTransferListener transferListener)

参数说明

参数 说明
devIds 设备 ID 集合
transferListener 区域转移过程及结果回调

其中,DefaultDeviceTransferListener 回调各方法说明如下:

public abstract class DefaultDeviceTransferListener implements IDeviceTransferListener {

    @Override
    public void onFilterMeshDeviceFail(String errorMsg, String errorCode) {
            //过滤 mesh 设备失败回调
    }

    @Override
    public void removeDeviceFromGroupByLocalError(long groupId, List<String> devIds, String errorMsg, String errorCode) {
            //将设备从本地群组中移除操作失败
    }

    @Override
    public void removeDeviceFromGroupByCloudError(long groupId, List<String> devIds, String errorMsg, String errorCode) {
            //将设备从云端群组中移除失败
    }

    @Override
    public void saveDevicesToNewAreaError(long areaId, List<String> devIds, String errorMsg, String errorCode) {
            //将设备分配到新区域下操作失败
    }

    @Override
    public void createNewGroupError(long areaId, List<String> devIds, String errorMsg, String errorCode) {
               //创建新群组失败
   }

    @Override
    public void bindDeviceToGroupByLocalError(long groupId, String devId, String errorMsg, String errorCode) {
            //本地将 mesh 设备绑定到群组中操作失败
    }

    @Override
    public void bindDeviceToGroupByGroupError(long groupId, List<String> devId, String errorMsg, String errorCode) {
            //云端将设备绑定到群组中操作失败
    }

    @Override
    public void onTransferStateChanged(@TransferState int state) {
            //无须关注
    }

    @Override
    public void onDeviceOperationByLocal(@TransferState int state, @DeviceOperationType int operationType,
                                         List<ComplexDeviceBean> deviceBeans, boolean success) {
        //无须关注
    }

    @Override
    public void onResult(List<FilterGroup> filterGroups) {
            //过时的结果回调,请勿使用,可使用 handleResult 回调
    }

        //最终结果回调,流程结束后会调用该回调
    @Override
    public abstract void handleResult(TransferResultSummary transferResultSummary);


        //异常回调,调用该回调表示设备转移操作出现异常,此时不会触发 handleResult 回调
    @Override
    public abstract void onError(String errorMsg, String errorCode);
}