设备分享

更新时间:2024-10-22 06:51:18下载pdf

设备分享是指设备的管理者将设备分享给其他人,其他人接受分享后即可使用设备。

主要包括以下功能:

  • 为设备或者群组添加分享,查询设备或者群组当前的被分享用户,删除被分享用户等。
  • 接受设备分享,查询设备或者群组分享者,删除分享者等。

概述

设备分享 SDK 的接口通过 ThingDeviceShareManager 类和 IDeviceShareManager 类提供。下文将详细说明每个接口所需的参数。

接口说明

接口 说明
isSupportDeviceShare 判断设备/群组是否支持分享
addTimer 添加设备/群组定时
editTimer 更新设备/群组定时
deleteTimer 删除设备/群组定时
updateTimerStatus 更新定时状态

获取 manager 示例

IDeviceShareManager mShareManager = DeviceBusinessDataManager.getInstance().getDeviceShareManager();
ThingDeviceShareManager manager = new ThingDeviceShareManager()

分享者相关接口

判断设备/群组是否支持分享

接口说明

fun isSupportDeviceShare(String resId, int resType, IThingResultCallback<Boolean> callback);

参数说明

参数 类型 说明
resId String 设备 ID/群组 ID
resType int 类型
  • 1:设备
  • 2:群组
callback IThingResultCallback<Boolean> 成功回调
  • true:支持
  • false:不支持

调用示例

manager.isSupportDeviceShare(resId, resType, new IThingResultCallback<Boolean>() {
            @Override
            public void onSuccess(Boolean result) {

            }

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

            }
        });

获取设备/群组分享剩余次数

接口说明

fun querySharedCount(resId: String, shareType: int, listener: Business.ResultListener<Long>)

参数说明

参数 类型 说明
resId string 设备 ID/群组 ID
resType int 类型
  • 1:设备
  • 2:群组
listener Business.ResultListener<Long> 回调,成功则返回剩余次数

调用示例

IDeviceShareManager mShareManager  = DeviceBusinessDataManager.getInstance().getDeviceShareManager();

mShareManager.querySharedCount(resId, shareType, new ResultListener<Long>() {
            @Override
            public void onFailure(BusinessResponse bizResponse, Long bizResult, String apiName) {

            }

            @Override
            public void onSuccess(BusinessResponse bizResponse, Long bizResult, String apiName) {

            }
        });

将设备/群组分享给指定用户

接口说明

fun shareToUser(String resId, int resType,Long spaceId,String userAccount,IThingResultCallback<SharedUserInfoBean> callback);

参数说明

参数 类型 说明
resId String 设备 ID/群组 ID
resType int 类型
  • 1:设备
  • 2:群组
userAccount String 被分享者的账号
spaceId Long 设备所在的家庭 ID
callback IThingResultCallback<SharedUserInfoBean> 回调,返回分享结果

调用示例

manager.shareToUser(resId, resType, spaceId, userAccount, new IThingResultCallback<SharedUserInfoBean>() {
            @Override
            public void onSuccess(SharedUserInfoBean result) {

            }

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

            }
        });

SharedUserInfoBean 数据结构

public class SharedUserInfoBean {
    private long memeberId;
    private String remarkName;
    private String userName;
    private String iconUrl;
    private String mobile;
    private long homeId;
    private String headPic;
    private String userAccount;
}

获取设备/群组当前的分享用户

接口说明

fun getReceivers(String resId, int resType, int page, int pageSize, IThingResultCallback<List<ShareMember>> callback);

参数说明

参数 类型 说明
resId String 设备 ID/群组 ID
resType int 类型
  • 1:设备
  • 2:群组
page int 页码
pageSize int 分页大小
callback IThingResultCallback<List<ShareMember>> 回调,成功则返回 ShareMember 列表

ShareMember 数据结构

public class ShareMember {
    private Long memberId;
    private String nickName;
    private String userName;
    private String iconUrl;
    private int shareMode;
    private Long endTime;
    private String uid;
}

调用示例

ThingDeviceShareManager manager = new ThingDeviceShareManager();
        manager.getReceivers(resId,resType, page, pageSize, new IThingResultCallback<List<ShareMember>> {
            @Override
            public void onError(String code, String error) {

            }

            @Override
            public void onSuccess() {

            }
        });

删除设备/群组当前的分享用户

接口说明

fun removeReceiver(Long memberId, String resId, int resType, IResultCallback callback);

参数说明

参数 类型 说明
memberId Long 用户 ID
resId String 设备 ID/群组 ID
resType int 类型
  • 1:设备
  • 2:群组
callback IResultCallback 回调

调用示例

ThingDeviceShareManager manager = new ThingDeviceShareManager();
        manager.removeReceiver(memberId,resId,resType, new IResultCallback() {
            @Override
            public void onError(String code, String error) {

            }

            @Override
            public void onSuccess() {

            }
        });

修改用户的分享有效期

接口说明

fun updateSharedDeadline(relationId: Long, resId: String, shareType: Int, shareMode:Int, shareEndTime: Long, listener: Business.ResultListener<Boolean>)

参数说明

参数 类型 说明
resId String 设备 ID/群组 ID
resType int 类型
  • 1:设备
  • 2:群组
memberId Long 成员 ID
mode int 模式
  • 0:永久有效
  • 1:一段时间内有效
endTime Long 结束时间戳,单位毫秒
callback ResultListener<Boolean> 回调

调用示例

IDeviceShareManager mShareManager  = DeviceBusinessDataManager.getInstance().getDeviceShareManager();

mShareManager.updateSharedDeadline(memberId, resId, resType, mode, endTime, new ResultListener<Boolean>() {
            @Override
            public void onFailure(BusinessResponse bizResponse, Boolean bizResult, String apiName) {

            }

            @Override
            public void onSuccess(BusinessResponse bizResponse, Boolean bizResult, String apiName) {

            }
        });

获取最近分享过的用户

接口说明

fun getRelationMembers(IThingResultCallback<List<ShareMember>> callback);

参数说明

参数 类型 说明
callback IThingResultCallback<List<ShareMember>> 回调,成功则返回 List<ShareMember>

调用示例

ThingDeviceShareManager manager = new ThingDeviceShareManager();
manager.getRelationMembers(new IThingResultCallback<List<ShareMember>>() {
            @Override
            public void onSuccess(List<ShareMember> result) {

            }

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

            }
        });

移除最近分享过的用户

接口说明

fun deleteSharedContact(hideUserId: String, listener: Business.ResultListener<kotlin.Boolean>)

参数说明

参数 类型 说明
uid String 用户 ID
callback ResultListener<Boolean>() 回调

调用示例

mShareManager.deleteSharedContact(uid, new ResultListener<Boolean>() {
            @Override
            public void onFailure(BusinessResponse bizResponse, Boolean bizResult, String apiName) {

            }

            @Override
            public void onSuccess(BusinessResponse bizResponse, Boolean bizResult, String apiName) {

            }
        });

生成分享短链

接口说明

fun createShareLink(resId: String, shareType: Int, groupId: Long, shareSource: Int, shareCount: Int, listener: Business.ResultListener<ShareDeviceLinkResultBean>)

参数说明

参数 类型 说明
resId string 设备 ID/群组 ID
resType int 类型
  • 1:设备
  • 2:群组
spaceId longlong 设备所在的家庭 ID
shareType int 分享类型
  • 0:账号
  • 1:腾讯 QQ
  • 2:微信
  • 3:消息
  • 4:邮件
  • 5:复制
  • 6:更多
  • 7:联系人
shareCount int 分享次数
callback ResultListener<ShareDeviceLinkResultBean> 回调,成功返回分享信息

调用示例

mShareManager.createShareLink(resId, resType, spaceId, shareType, shareCount, new ResultListener<ShareDeviceLinkResultBean>() {
            @Override
            public void onFailure(BusinessResponse businessResponse, ShareDeviceLinkResultBean shareDeviceLinkBean, String s) {
                if (callback != null) {

                }
            }

            @Override
            public void onSuccess(BusinessResponse businessResponse, ShareDeviceLinkResultBean shareDeviceLinkBean, String s) {
                if (callback != null) {

                }
            }
        });

被分享者相关接口

检查短链有效性

接口说明

fun parseShortLinkAvailability(String code,IThingResultCallback<Boolean> callback);

参数说明

参数 类型 说明
code string 短链 Code
callback IThingResultCallback<Boolean> 成功回调
  • true:有效
  • false:无效

调用示例

private ThingDeviceShareManager manager = new ThingDeviceShareManager();
manager.parseShortLinkAvailability(code, new IThingResultCallback<Boolean>() {
            @Override
            public void onSuccess(Boolean result) {

            }

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

            }
        });

获取短链 Code 内容

接口说明

fun parseSharedDeviceLinkResult(shortCode: String, listener: Business.ResultListener<ShareShortLinkResult>):

参数说明

参数 类型 说明
code string 短链 Code
Callback ResultListener<ShareShortLinkResult> 回调,成功则返回 ShareShortLinkResult 模型

调用示例

mShareManager.parseSharedDeviceLinkResult(shortCode, new ResultListener<ShareShortLinkResult>() {
            @Override
            public void onFailure(BusinessResponse bizResponse, ShareShortLinkResult bizResult, String apiName) {

            }

            @Override
            public void onSuccess(BusinessResponse bizResponse, ShareShortLinkResult bizResult, String apiName) {

            }
        });

接受分享

接口说明

fun acceptShare(String code,IResultCallback callback);

参数说明

参数 类型 说明
code string 短链 Code
callback IResultCallback() 回调

调用示例

manager.acceptShare(code, new IResultCallback() {
            @Override
            public void onError(String code, String error) {

            }

            @Override
            public void onSuccess() {

            }
        });

查看分享者名称

接口说明

fun getSharerName(String resId, int resType,IThingResultCallback<String> callback);

参数说明

参数 类型 说明
resId string 设备 ID/群组 ID
resType int 类型
  • 1:设备
  • 2:群组
callback IThingResultCallback<String> 回调,成功则返回分享者名称
  • 如果存在 name,则优先返回 name
  • 如果 name 不存在,则返回 mobile
  • 如果 mobile 也不存在,则返回 email

请注意,mobileemail 均已进行脱敏处理。

调用示例

manager.getSharerName(resId, resType, new IThingResultCallback<String>() {
            @Override
            public void onSuccess(String result) {

            }

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

            }
        });

删除分享

接口说明

fun removeReceivedShare(String resId, int resType,IResultCallback callback);

参数说明

参数 类型 说明
resId string 设备 ID/群组 ID
resType int 类型
  • 1:设备
  • 2:群组
callback IResultCallback() 回调

调用示例

manager.removeReceivedShare(resId, resType, new IResultCallback() {
            @Override
            public void onError(String code, String error) {

            }

            @Override
            public void onSuccess() {

            }
        });

查看分享者列表

接口说明

fun getShareReceivedUserList(IThingResultCallback<List<SharedUserInfoBean>> callback);

参数说明

参数 类型 说明
callback IThingResultCallback<List<SharedUserInfoBean>> 回调,成功返回 SharedUserInfoBean 列表

SharedUserInfoBean 数据结构

public class SharedUserInfoBean {
    private long memeberId;
    private String remarkName;
    private String userName;
    private String iconUrl;
    private String mobile;
    private long homeId;
    private String headPic;
    private String userAccount;
}

调用示例

manager.getShareReceivedUserList(new IThingResultCallback<List<SharedUserInfoBean>>() {
            @Override
            public void onSuccess(List<SharedUserInfoBean> result) {

            }

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

            }
        });

获取分享者信息及其分享的设备

接口说明

fun getSharerInfoDetail(Long memberId,IThingResultCallback<ShareReceivedUserDetailBean> callback);

参数说明

参数 类型 说明
memberId long 成员 ID
callback IThingResultCallback<ShareReceivedUserDetailBean> 回调,成功返回 ShareReceivedUserDetailBean 模型

ShareReceivedUserDetailBean 数据结构

public class ShareReceivedUserDetailBean {
    private String mobile;
    private List<DeviceShareBean> devices;
    private String remarkName;
    private String nameWithoutRemark;
}

调用示例

manager.getSharerInfoDetail(memberId, new IThingResultCallback<ShareReceivedUserDetailBean>() {
            @Override
            public void onSuccess(ShareReceivedUserDetailBean result) {

            }

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

            }
        });

删除分享者及其分享的所有设备

接口说明

fun removeReceivedUserShare(Long memberId,IResultCallback callback);

参数说明

参数 类型 说明
memberId long 成员 ID
callback IResultCallback() 回调

调用示例

manager.removeReceivedUserShare(memberId, new IResultCallback() {
            @Override
            public void onError(String code, String error) {

            }

            @Override
            public void onSuccess() {

            }
        });

修改分享者的昵称

接口说明

fun renameReceivedShareNickname(Long memberId,String name,IResultCallback callback);

参数说明

参数 类型 说明
memberId long 成员 ID
name String 新的昵称
callback IResultCallback() 回调

调用示例

manager.renameReceivedShareNickname(memberId, name, new IResultCallback() {
            @Override
            public void onError(String code, String error) {

            }

            @Override
            public void onSuccess() {

            }
        });