门锁管理

更新时间:2024-03-14 07:01:23下载pdf

本文介绍如何管理门锁。

添加门锁设备

接口说明

//1.扫描附近的蓝牙设备
IThingBleLockActivator # void startScan(int scanTimeOut, IThingResultCallback<ScanDeviceBean> callback);

//2.将扫描到的蓝牙设备进行配网
IThingBleLockActivator # void startActivator(long siteId, ScanDeviceBean scanDeviceBean, IBleActivatorListener listener);

参数说明

参数 说明
siteId 站点 ID
scanDeviceBean 扫描到的设备模型
listener 配网结果回调

示例代码

HashMap<String, ScanDeviceBean> map = new HashMap<>();

ThingOSLock.getBleLockActivator().startScan(60 * 1000, new IThingResultCallback<ScanDeviceBean>() {
    @Override
    public void onSuccess(ScanDeviceBean result) {
        //Scanned device successfully
        if (map.get(result.getUuid()) != null) {
            return;
        }

        map.put(result.getUuid(), result);

        ThingOSLock.getBleLockActivator().startActivator(siteId, result, new IBleActivatorListener() {
            @Override
            public void onSuccess(DeviceBean deviceBean) {
                //Activated device successfully
            }

            @Override
            public void onFailure(int code, String msg, Object handle) {
                //Failed to activate device
            }
        });
    }

    @Override
    public void onError(String errorCode, String errorMessage) {
        //Failed to scan device
    }
});
  • 一个设备可能会多次触发扫描设备的回调,可自行处理同一设备的去重逻辑。
  • 如需获取扫描到的设备的相关信息,可调用 IThingBleLockActivator # getActivatorDeviceInfo 方法。
  • 退出配网流程时,需调用 stopScanstopActivator 方法。

获取已添加的门锁列表

接口说明

ILockSite # void getLockDeviceList(long startId, IThingResultCallback<ArrayList<DeviceBeanWrapper>> callback);

参数说明

参数 说明
start_id 门锁列表分页游标,第一次传 0,后续分页查上一次返回结果中最后一个设备的 gatewayIndexId 的值
callback 门锁列表结果回调

示例代码

ThingOSLock.newSiteInstance(siteId).getLockDeviceList(0L, new IThingResultCallback<ArrayList<DeviceBeanWrapper>>() {
    @Override
    public void onSuccess(ArrayList<DeviceBeanWrapper> result) {
        //Got lock device list successfully
    }

    @Override
    public void onError(String errorCode, String errorMessage) {
        //Failed to get lock device list
    }
});

  • 获取门锁列表接口为分页请求,每页请求设备数为 20
  • 接口中的 start_id 为门锁列表分页游标,第一次传 0,后续分页查上一次返回结果中最后一个设备的 gatewayIndexId 的值。

获取门锁详情

接口说明

ILockDevice # void getLockDetail(long siteId, IThingResultCallback<LockDetailBean> callback);

参数说明

参数 说明
siteId 站点 ID
callback 结果回调

示例代码

ThingOSLock.newLockInstance(deviceId).getLockDetail(siteId, new IThingResultCallback<LockDetailBean>() {
    @Override
    public void onSuccess(LockDetailBean result) {
        //Got lock details successfully
    }

    @Override
    public void onError(String errorCode, String errorMessage) {
        //Failed to get lock details
    }
});

打开门锁

接口说明

ILockDevice # void unlock(long siteId, IThingResultCallback<Boolean> callback);

参数说明

参数 说明
siteId 站点 ID
callback 开锁结果回调

示例代码

ThingOSLock.newLockInstance(deviceId).unlock(siteId, new IThingResultCallback<Boolean>() {
    @Override
    public void onSuccess(Boolean result) {
        //Unlocked successfully
    }

    @Override
    public void onError(String errorCode, String errorMessage) {
        //Failed to unlock
    }
});

修改门锁名称

接口说明

ILockDevice # void updateName(String name, IThingResultCallback<Boolean> callback);

参数说明

参数 说明
name 门锁名称
callback 修改名称结果回调

示例代码

ThingOSLock.newLockInstance(deviceId).updateName(newLockName, new IThingResultCallback<Boolean>() {
    @Override
    public void onSuccess(Boolean result) {
        //Updated name successfully
    }

    @Override
    public void onError(String errorCode, String errorMessage) {
        //Failed to update name
    }
});

删除门锁

接口说明

ILockSite # void deleteLock(String devId, IThingResultCallback<Boolean> callback);

参数说明

参数 说明
devId 要删除的门锁 ID
callback 删除结果回调

示例代码

ThingOSLock.newSiteInstance(siteId).deleteLock(devId, new IThingResultCallback<Boolean>() {
    @Override
    public void onSuccess(Boolean result) {
        //Deleted lock successfully
    }

    @Override
    public void onError(String errorCode, String errorMessage) {
        //Failed to delete lock
    }
});