共享设备

更新时间:2022-02-17 07:08:48下载pdf

当需要将站点下某一个设备单独提供给其他用户操作时,可将设备共享给其他用户,收到共享设备的用户可在自身账号下对设备进行简单操作

类名 说明
ITuyaHomeDeviceShare 提供设备分享相关的功能

添加共享

添加多个设备共享并覆盖

分享多个设备给指定用户,会将指定用户的以前所有分享覆盖掉。

接口说明

void addShare(long homeId, String countryCode, final String userAccount, ShareIdBean bean, boolean autoSharing, final ITuyaResultCallback<SharedUserInfoBean> callback);

参数说明

参数 说明
homeId 设备所属的站点 ID
countryCode 手机区号码,例如中国大陆地区是 86
userAccount 分享对象的账号
bean 分享的设备 ID 列表
autoSharing 自动分享
callback 回调,包括分享成功或失败,不能为 null

此外,ShareIdBean 的数据结构如下所示:

参数 类型 说明
devIds List<String> 分享的设备 ID 列表
meshIds List<String> 分享的 Mesh 设备 ID 列表

示例代码

TuyaHomeSdk.getDeviceShareInstance().addShare(homeId, countryCode, userAccount,
                shareIdBean, autoSharing, new ITuyaResultCallback<SharedUserInfoBean>() {
                    @Override
                    public void onSuccess(SharedUserInfoBean sharedUserInfoBean) {}
                    @Override
                    public void onError(String errorCode, String errorMsg) {}
                });

添加共享但不不覆盖旧的分享

分享多个设备给指定用户,会将要分享的设备追加到指定用户的所有分享中。如果之前向某个指定用户分享过设备,那么您可以通过下面的 分享关系 API 获得目标用户 ID,从而使用本方法向该用户快捷分享设备。

接口说明

void addShareWithMemberId(long memberId,List<String> devIds,IResultCallback callback);

参数说明

参数 说明
memberId 分享目标用户 ID
devIds 分享的设备 ID 列表
callback 回调,包括分享成功或失败,不能为 null

示例代码

TuyaHomeSdk.getDeviceShareInstance().addShareWithMemberId(userId, devIdList, new IResultCallback() {
            @Override
            public void onError(String errorCode, String errorMsg) {
            }
            @Override
            public void onSuccess() {
            }
});

设备添加共享

分享单个或多个设备给指定用户,会将要分享的设备追加到指定用户的所有分享中。

接口说明

void addShareWithHomeId(long homeId, String countryCode, String userAccount, List<String> devIds, ITuyaResultCallback<SharedUserInfoBean> callback);

参数说明

参数 说明
homeId 设备的站点 ID
countryCode 手机区号码,例如中国大陆地区是 86
userAccount 被分享者账号
devIds 分享的设备 ID 列表
callback 回调,包括分享成功或失败,不能为 null

示例代码

TuyaHomeSdk.getDeviceShareInstance().addShareWithHomeId(homeId, countryCode,
                userAccount, devsIdList, new ITuyaResultCallback<SharedUserInfoBean>() {
                    @Override
                    public void onSuccess(SharedUserInfoBean sharedUserInfoBean) {
                    }

                    @Override
                    public void onError(String errorCode, String errorMsg) {
                    }
});

查询分享关系

查询站点下所有主动共享的用户列表

接口说明

void queryUserShareList(long homeId, final ITuyaResultCallback<List<SharedUserInfoBean>> callback);

参数说明

参数 说明
homeId 站点 ID
callback 回调,包括查询成功或失败,不能为 null

示例代码

TuyaHomeSdk.getDeviceShareInstance().queryUserShareList(homeId, new ITuyaResultCallback<List<SharedUserInfoBean>>() {
            @Override
            public void onSuccess(List<SharedUserInfoBean> sharedUserInfoBeans) {}
            @Override
            public void onError(String errorCode, String errorMsg) {}
        });

查询所有收到共享的用户列表

接口说明

void queryShareReceivedUserList(final ITuyaResultCallback<List<SharedUserInfoBean>> callback);

参数说明

参数 说明
callback 回调,包括查询成功或失败,不能为 null

示例代码

TuyaHomeSdk.getDeviceShareInstance().queryShareReceivedUserList(new ITuyaResultCallback<List<SharedUserInfoBean>>() {
    @Override
    public void onSuccess(List<SharedUserInfoBean> sharedUserInfoBeans) {
    }
    @Override
    public void onError(String errorCode, String errorMsg) {
    }
});

查询单个主动共享的用户共享数据

接口说明

void getUserShareInfo(long memberId, final ITuyaResultCallback<ShareSentUserDetailBean> callback);

参数说明

参数 说明
memberId 分享用户的 ID
callback 回调,包括查询成功或失败,不能为 null

示例代码

TuyaHomeSdk.getDeviceShareInstance().getUserShareInfo(mRelationId, new ITuyaResultCallback<ShareSentUserDetailBean>() {
                @Override
                public void onSuccess(ShareSentUserDetailBean shareSentUserDetailBean) {}
                @Override
                public void onError(String errorCode, String errorMsg) {}
            });

查询单个收到共享的用户共享数据

接口说明

void getReceivedShareInfo(long memberId, final ITuyaResultCallback<ShareReceivedUserDetailBean> callback);

参数说明

参数 说明
memberId 用户 ID
callback 回调,包括查询成功或失败,不能为 null

示例代码

 TuyaHomeSdk.getDeviceShareInstance().getReceivedShareInfo(mRelationId, new ITuyaResultCallback<ShareReceivedUserDetailBean>() {
                @Override
                public void onSuccess(ShareReceivedUserDetailBean shareReceivedUserDetailBean) {}
                @Override
                public void onError(String errorCode, String errorMsg) {}
            });

查询单设备共享用户列表

接口说明

void queryDevShareUserList(String devId, final ITuyaResultCallback<List<SharedUserInfoBean>> callback);

参数说明

参数 说明
devId 分享的设备 ID
callback 回调,包括查询成功或失败,不能为 null

示例代码

TuyaHomeSdk.getDeviceShareInstance().queryDevShareUserList(mDevId, new ITuyaResultCallback<List<SharedUserInfoBean>>() {
        @Override
        public void onError(String errorCode, String errorMsg) {}
        @Override
        public void onSuccess(List<SharedUserInfoBean> shareUserBeen) {}
    });

查询设备分享来源

接口说明

void queryShareDevFromInfo(String devId, final ITuyaResultCallback<SharedUserInfoBean> callback);

参数说明

参数 说明
devId 设备 ID
callback 回调,包括查询成功或失败,不能为 null

示例代码

TuyaHomeSdk.getDeviceShareInstance().queryShareDevFromInfo(devId, new ITuyaResultCallback<SharedUserInfoBean>() {
            @Override
            public void onSuccess(SharedUserInfoBean result) {
            }
            @Override
            public void onError(String errorCode, String errorMessage) {
            }
        });

移除共享

删除主动共享者

共享者通过 memberId 删除与这个关系用户的所有共享关系(用户维度删除)。

接口说明

void removeUserShare(long memberId, IResultCallback callback);

参数说明

参数 说明
memberId 分享用户 ID
callback 回调,包括删除成功或失败,不能为 null

示例代码

TuyaHomeSdk.getDeviceShareInstance().removeUserShare(memberId, new IResultCallback() {
    @Override
    public void onError(String code, String error) {
    }
    @Override
    public void onSuccess() {
    }
})

删除收到共享者

被共享者通过 memberId 查询收到这个关系用户的所有共享设备信息。

接口说明

void removeReceivedUserShare(long memberId, IResultCallback callback);

参数说明

参数 说明
memberId 收到分享的用户 ID
callback 回调,包括删除成功或失败,不能为 null

示例代码

TuyaHomeSdk.getDeviceShareInstance().removeReceivedUserShare(memberId, new IResultCallback() {
    @Override
    public void onError(String code, String error) {
    }
    @Override
    public void onSuccess() {
    }
})

单设备删除共享

接口说明

void disableDevShare(String devId, long memberId, IResultCallback callback);

参数说明

参数 说明
devId 分享设备的 ID
memberId 分享用户的 ID
callback 回调,包括删除成功或失败,不能为 null

示例代码

TuyaHomeSdk.getDeviceShareInstance().disableDevShare (devId, memberId, new IResultCallback() {
    @Override
    public void onError(String code, String error) {
    }
    @Override
    public void onSuccess() {
    }
});

删除收到的共享设备

接口说明

void removeReceivedDevShare(String devId, IResultCallback callback);

参数说明

参数 说明
devId 分享的设备 ID
callback 回调,包括删除成功或失败,不能为 null

示例代码

TuyaHomeSdk.getDeviceShareInstance().removeReceivedDevShare(devId,new IResultCallback() {
    @Override
    public void onError(String code, String error) {}
    @Override
    public void onSuccess() {}
})

修改备注名

修改主动共享者的昵称

接口说明

void renameShareNickname(long memberId, String name, IResultCallback callback);

参数说明

参数 说明
memberId 分享用户的 ID
name 分享用户的新昵称
callback 回调,包括修改成功和失败,不能为 null

示例代码

TuyaHomeSdk.getDeviceShareInstance().renameShareNickname(mRelationId, inputText, new IResultCallback() {
                @Override
                public void onError(String s, String s1) {}
                @Override
                public void onSuccess() {}
            });

修改收到共享者的昵称

接口说明

void renameReceivedShareNickname(long memberId, String name, IResultCallback callback);

参数说明

参数 说明
memberId 共享者站点 ID 从 SharedUserInfoBean 中查询
name 分享用户的新昵称
callback 回调,包括修改成功和失败,不能为 null

示例代码

TuyaHomeSdk.getDeviceShareInstance().renameReceivedShareNickname(mRelationId, inputText, new IResultCallback() {
                @Override
                public void onError(String s, String s1) {}
                @Override
                public void onSuccess() {}
            });