共享设备

更新时间:2023-05-22 06:38:26

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

每个设备最多可以分享给 20 个其他用户。

接入

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

添加共享

添加多个设备共享并覆盖

共享多个设备给指定用户,会将指定用户的以前所有共享覆盖掉。另外,每个设备最多可以分享给 20 个其他用户。

接口说明

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,从而使用本方法向该用户快捷共享设备。另外,每个设备最多可以分享给 20 个其他用户。

接口说明

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() {
            }
});

向指定家庭添加设备共享

共享单个或多个设备给指定用户,会将要共享的设备追加到指定用户的所有共享中。另外,每个设备最多可以分享给 20 个其他用户。

接口说明

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) {
            }
        });

移除共享

主动共享者移除共享关系

共享者通过用户 ID(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() {
    }
})

被共享者移除共享关系

被共享者通过用户 ID(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() {}
            });

分享邀请

向其他用户发送共享设备的邀请

接口说明

void inviteShare(String devId, String userAccount, String countryCode, ITuyaResultCallback<Integer> callback);

参数说明

参数 说明
countryCode 国家码
userAccount 用户账号
devId 设备id
success 成功回调
failure 失败回调

示例代码

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

确认分享邀请

接口说明

 void confirmShareInviteShare(int shareId, final IResultCallback callback);

参数说明

参数 说明
shareId 分享 ID,即发送设备共享邀请方法 inviteShare 成功返回的 Integer 值
success 成功回调
failure 失败回调

示例代码

 TuyaHomeSdk.getDeviceShareInstance().confirmShareInviteShare(shareId, new IResultCallback() {
            @Override
            public void onError(String code, String error) {
                
            }

            @Override
            public void onSuccess() {

            }
        });

群组分享

按组ID返回设备共享用户列表

备注:群组ID显示在面板上

接口说明

void queryGroupSharedUserList(long groupId, ITuyaResultCallback<List<SharedUserInfoBean>> callback);

参数说明

参数 说明
groupId 群组id
success 成功回调
failure 失败回调

示例代码

TuyaHomeSdk.getDeviceShareInstance().queryGroupSharedUserList(mGroupId, new ITuyaResultCallback<List<SharedUserInfoBean>>() {
            @Override
            public void onSuccess(List<SharedUserInfoBean> result) {
                
            }

            @Override
            public void onError(String errorCode, String errorMessage) {

            }
        });

分享群组

接口说明

void addShareUserForGroup(long homeId, String countryCode, String userAccount, long groupId, IResultCallback callback);

参数说明

参数 说明
homeId 家庭id
countryCode 国家码
userAccount 用户账号
groupId 群组id
success 成功回调
failure 失败回调

示例代码

    TuyaHomeSdk.getDeviceShareInstance().addShareUserForGroup(homeId, countryCode, userAccount, groupId, new IResultCallback() {
            @Override
            public void onError(String code, String error) {
                
            }

            @Override
            public void onSuccess() {

            }
        });

将设备共享组从成员中移除

接口说明

void removeGroupShare(long groupId, long memberId, IResultCallback callback);

参数说明

参数 说明
memberId 成员id
groupId 群组id
success 成功回调
failure 失败回调

示例代码

      TuyaHomeSdk.getDeviceShareInstance().removeGroupShare(groupId, memberId, new IResultCallback() {
            @Override
            public void onError(String code, String error) {

            }

            @Override
            public void onSuccess() {

            }
        });