电子钥匙管理

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

本文介绍如何管理电子钥匙。

获取已创建的电子钥匙列表

接口说明

ILockDevice # void getEKeyList(EKeyListParams params, IThingResultCallback<EKeyListResp> callback);

参数说明

参数 说明
params 请求电子钥匙列表参数 Bean
params.groupId 站点 ID,传入 siteId
params.deviceId 当前门锁的设备 ID
params.ekeyName 电子钥匙名称
params.periodType 时间段类型
params.pageNo 请求的列表页数
params.pageSize 每页返回的数量
callback 结果回调

示例代码

EKeyListParams params = new EKeyListParams();
params.groupId = siteId;
params.pageNo = 1;
params.pageSize = 20;
params.deviceId = deviceId;
ThingOSLock.newLockInstance(deviceId).getEKeyList(params, new IThingResultCallback<EKeyListResp>() {
    @Override
    public void onSuccess(EKeyListResp result) {
        // Got ekey list successfully
    }

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

创建永久电子钥匙

接口说明

ILockDevice # void createPermanentEKey(PermanentEKeyCreateParams params, IThingResultCallback<EKeyResp> callback);

参数说明

参数 说明
params 创建永久电子钥匙参数 Bean
params.countryCode 国家码,传当前登录账号所属国家的国家码,例如中国传 86
params.deviceId 当前门锁的设备 ID
params.siteId 当前门锁所属站点的 ID
params.ekeyName 电子钥匙名称
params.account 电子钥匙账户信息,可传手机号或邮箱
callback 结果回调

示例代码

PermanentEKeyCreateParams params = new PermanentEKeyCreateParams();
params.account = "xxx@163.com"
params.countryCode = "86";
params.ekeyName = "Test EKey Name";
params.deviceId = deviceId;
params.siteId = siteId;
ThingOSLock.newLockInstance(deviceId).createPermanentEKey(params, new IThingResultCallback<EKeyResp>() {
    @Override
    public void onSuccess(EKeyResp result) {
        //Created permanent ekey successfully
    }

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

创建限时电子钥匙

接口说明

ILockDevice # void createPeriodicityEKey(PeriodicityEKeyCreateParams params, IThingResultCallback<EKeyResp> callback);

参数说明

参数 说明
params 创建限时电子钥匙参数 Bean
params.countryCode 国家码,传当前登录账号所属国家的国家码,例如中国传 86
params.deviceId 当前门锁的设备 ID
params.siteId 当前门锁所属站点的 ID
params.ekeyName 电子钥匙名称
params.account 电子钥匙账户信息,可传手机号或邮箱
params.effectiveTime 电子钥匙生效开始时间戳,单位为毫秒
params.invalidTime 电子钥匙失效时间戳,单位为毫秒
params.workingDay 循环周期,是一个长度为 7 的只包含 01 的字符串。
0 表示当天不参与循环,1 表示当天参与循环,字符串中从 1 位到 7 位分别对应从周日到周六
params.startMinuteFormat 电子钥匙生效时间段,是一个格式为 hh:mm 的字符串,例如 03:30,表示从 3 点 30 分开始生效
params.endMinuteFormat 电子钥匙失效时间段,是一个格式为 hh:mm 的字符串,例如 18:30,表示到 18 点 30 分后失效
callback 结果回调

示例代码

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

PeriodicityEKeyCreateParams params = new PeriodicityEKeyCreateParams();
params.account = "xxx@163.com";
params.countryCode = "86";
params.ekeyName = "Account name";
params.deviceId = deviceId;
params.siteId = siteId;
try {
    params.effectiveTime = dateFormat.parse("2023-03-01 10:00:00").getTime();
    params.invalidTime = dateFormat.parse("2024-01-02 18:00:00").getTime();
} catch (ParseException e) {
   
}
params.startMinuteFormat = startTimeEditText.getText().toString().trim();
params.endMinuteFormat = endTimeEditText.getText().toString().trim();
params.workingDay = getWorkingDay();
ThingOSLock.newLockInstance(deviceId).createPeriodicityEKey(params, new IThingResultCallback<EKeyResp>() {
    @Override
    public void onSuccess(EKeyResp result) {
        //Created time-limited ekey successfully
    }

    @Override
    public void onError(String errorCode, String errorMessage) {
        //Failed to create time-limited ekey 
    }
});

创建单次电子钥匙

接口说明

ILockDevice # void createOnceEKey(OnceEKeyCreateParams params, IThingResultCallback<EKeyResp> callback);

参数说明

参数 说明
params 创建单次电子钥匙参数对象 Bean
params.countryCode 国家码,传当前登录账号所属国家的国家码,例如中国传 86
params.deviceId 当前门锁的设备 ID
params.siteId 当前门锁所属站点的 ID
params.ekeyName 电子钥匙名称
params.account 电子钥匙账户信息,可传手机号或邮箱
callback 结果回调

示例代码

OnceEKeyCreateParams params = new OnceEKeyCreateParams();
params.account = "xxx@163.com";
params.countryCode = "86";
params.ekeyName = "Once EKey name";
params.deviceId = deviceId;
params.siteId = siteId;
ThingOSLock.newLockInstance(deviceId).createOnceEKey(params, new IThingResultCallback<EKeyResp>() {
    @Override
    public void onSuccess(EKeyResp result) {
        //Created one-time ekey successfully
    }

    @Override
    public void onError(String errorCode, String errorMessage) {
        //Failed to create one-time ekey
    }
});

获取电子钥匙详情

接口说明

ILockDevice # void getEKeyDetail(long siteId, String eKeyId, IThingResultCallback<EKeyBean> callback);

参数说明

参数 说明
siteId 当前设备所在站点的 ID
ekeyId 电子钥匙 ID
callback 结果回调

示例代码

ThingOSLock.newLockInstance(deviceId).getEKeyDetail(siteId, ekeyId, new IThingResultCallback<EKeyBean>() {
    @Override
    public void onSuccess(EKeyBean result) {
        //Got ekey details successfully
    }

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

修改电子钥匙信息

接口说明

ILockDevice # void updateEKey(EKeyUpdateParams params, IThingResultCallback<Boolean> callback);

参数说明

参数 说明
params 修改电子钥匙参数 Bean
params.deviceId 当前门锁的设备 ID
params.groupId 当前门锁所属站点的 ID
params.ekeyId 电子钥匙 ID
params.ekeyName 电子钥匙名称
params.effectiveTime 电子钥匙生效开始时间戳,单位为毫秒
params.invalidTime 电子钥匙失效时间戳,单位为毫秒
params.workingDay 循环周期,是一个长度为 7 的只包含 01 的字符串。
0 表示当天不参与循环,1 表示当天参与循环,字符串中从 1 位到 7 位分别对应从周日到周六
params.startMinute 电子钥匙生效时间戳,计算方式为小时数 × 60 + 分钟数,例如 03:30 为 3 × 60 + 30 = 210
params.endMinute 电子钥匙失效时间戳,计算方式为小时数 × 60 + 分钟数,例如 23:59 为 23 × 60 + 59 = 1439
callback 结果回调

示例代码

EKeyUpdateParams params =...

ThingOSLock.newLockInstance(deviceId).updateEKey(params, new IThingResultCallback<Boolean>() {
    @Override
    public void onSuccess(Boolean result) {
        //Updated ekey successfully
    }

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

删除电子钥匙

接口说明

ILockDevice # void removeEKey(long siteId, String eKeyId, IThingResultCallback<Boolean> callback);

参数说明

参数 说明
siteId 站点 ID
ekeyId 电子钥匙 ID
callack 结果回调

示例代码

ThingOSLock.newLockInstance(deviceId).removeEKey(siteId, ekeyId, new IThingResultCallback<Boolean>() {
    @Override
    public void onSuccess(Boolean result) {
        //Removed ekey successfully
    }

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