更新时间:2022-02-17 07:02:07
可通过如下方法查询当前站点成员列表。
fun fetchSiteResidentList(
homeId: Long, callback: Business.ResultListener<ArrayList<InvitationMemberBean?>?>
)
InvitationMemberBean
字段说明
字段名称 | 类型 | 说明 |
---|---|---|
uid | String | 用户 ID |
gid | Long | 站点 ID |
name | String | 用户昵称 |
admin | Boolean | 是否是管理员 |
id | Long | 默认 ID 编号 |
headPic | String | 头像地址 |
mobile | String | 电话号码 |
username | String | 用户名 |
dealStatus | Int | 授权状态
|
role | Int | 角色
|
validTime | Long | 有效时间 |
invitationId | Long | 邀请 ID |
invitationCode | String | 邀请码 |
示例代码
TuyaSmartResidenceSdk.siteManager().fetchSiteResidentList(Global.currentSite
?.homeId?:return, object : Business.ResultListener<ArrayList<InvitationMemberBean?>?> {
override fun onFailure(
p0: BusinessResponse?,
p1: ArrayList<InvitationMemberBean?>?,
p2: String?
) {
L.d(TAG, "fetchMemberList: onFailure: ${p0?.errorMsg}")
}
override fun onSuccess(
p0: BusinessResponse?,
p1: ArrayList<InvitationMemberBean?>?,
p2: String?
) {
}
})
可以通过邀请码的方式邀请的方式邀请新成员进入空间。
fun invitationMember(
homeId: Long,
listener: Business.ResultListener<InviteMessageBean?>?
)
InviteMessageBean
字段说明
字段名称 | 类型 | 说明 |
---|---|---|
invitationMsgContent | String | 邀请信息 |
invitationCode | String | 邀请码 |
受邀用户可以使用邀请码加入站点,这时需要调用以下方法。
fun joinSite(
code: String?,
listener: Business.ResultListener<Boolean?>?
)
也可以取消这个邀请码。首先通过以下接口查询当前邀请记录:
fun fetchInvitationRecordList(
homeId: Long,
callback: IFamilyDataCallback<List<MemberBean>?>
)
MemberBean
中包含了 invitationId
,将 invitationId
传入下面方法,即可取消该邀请码。
fun cancelInvitation(
invitationId: Long,
callback: Business.ResultListener<Boolean?>?
)
同时,邀请码的有效期为 3 天,您可以通过以下方法重新使邀请码生效:
fun inviteAgainMember(
invitationId: Long,
callback: Business.ResultListener<InviteMessageBean?>?
)
示例代码
fun createInvitationCode() {
TuyaSmartResidenceSdk.siteManager().invitationMember(
Global.currentSite?.homeId?:return,
object: Business.ResultListener<InviteMessageBean?> {
override fun onFailure(p0: BusinessResponse?, p1: InviteMessageBean?, p2: String?) {
L.d(TAG, "createInvitationCode: onFailure: ${p0?.errorMsg}")
}
override fun onSuccess(p0: BusinessResponse?, p1: InviteMessageBean?, p2: String?) {
L.d(TAG, "createInvitationCode: onSuccess: ${p1?.invitationMsgContent}")
invitationCode.value = p1?.invitationCode?:""
fetchInvitationRecordList()
}
})
}
fun fetchInvitationRecordList() {
TuyaSmartResidenceSdk.siteManager().fetchInvitationRecordList(
Global.currentSite?.homeId?:return, object : IFamilyDataCallback<List<MemberBean>?> {
override fun onSuccess(result: List<MemberBean>?) {
L.d(TAG, "inviteAgain: onSuccess: ${result.toString()}")
invitationRecordList.clear()
result?.run { invitationRecordList.addAll(this) }
}
override fun onError(errorCode: String?, errorMessage: String?) {
L.d(TAG, "inviteAgain: onError: errorMessage = $errorMessage")
}
})
}
fun deleteInvitationCode(invitationId: Long) {
TuyaSmartResidenceSdk.siteManager().cancelInvitation(invitationId, object :
Business.ResultListener<Boolean?> {
override fun onFailure(p0: BusinessResponse?, p1: Boolean?, p2: String?) {
L.d(TAG, "deleteInvitationCode: onFailure: ${p0?.errorMsg}")
}
override fun onSuccess(p0: BusinessResponse?, p1: Boolean?, p2: String?) {
L.d(TAG, "deleteInvitationCode: onSuccess: $p1")
fetchInvitationRecordList()
}
})
}
fun inviteAgain(invitationId: Long) {
TuyaSmartResidenceSdk.siteManager().inviteAgainMember(invitationId, object :
Business.ResultListener<InviteMessageBean?> {
override fun onFailure(p0: BusinessResponse?, p1: InviteMessageBean?, p2: String?) {
L.d(TAG, "inviteAgain: onFailure: ${p0?.errorMsg}")
}
override fun onSuccess(p0: BusinessResponse?, p1: InviteMessageBean?, p2: String?) {
L.d(TAG, "inviteAgain: onSuccess: ${p1?.invitationMsgContent}")
invitationCode.value = p1?.invitationCode?:""
fetchInvitationRecordList()
}
})
}
通过调用以下方法邀请成员。
fun addMember(
memberWrapperBean: MemberWrapperBean,
listener: Business.ResultListener<Long?>?
)
MemberWrapperBean
可通过以下方式查询。
val memberWrapperBean = MemberWrapperBean.Builder()
.setAccount(account)
.setCountryCode(countryCode)
.setNickName(nickname)
.setHomeId(Global.currentSite?.homeId ?: return)
.build()
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈