更新时间:2022-02-17 07:01:49下载pdf
智慧居住 App SDK 致力于为租住业务场景的移动端开发提供各类模块和组件。因此,站点空间是抽象于智能租住场景的概念,表示挂载在某一账号下的可独立操作的 单元,房间和设备等必须要挂载在某一项目下才可进行操作。
站点主要分类:
站点管理能力:
一个账号下可以有不定数量的项目,不同套餐的账号可配置不同数量的项目,新用户在注册登录后默认是没有项目的,需进行项目的创建流程后才可进行项目维度的相关操作。
使用 TuyaSmartResidenceSdk.siteManager()
查询站点管理器,用来调用站点管理的相关方法。
使用 fun fetchSiteList(listener: Business.ResultListener<ArrayList<SiteBean?>?>?)
方法查询站点列表。
示例代码
TuyaSmartResidenceSdk
.siteManager()
.fetchSiteList(object : Business
.ResultListener<ArrayList<SiteBean?>?> {
override fun onFailure(
p0: BusinessResponse?,
p1: ArrayList<SiteBean?>?,
p2: String?,
) {
L.d(TAG, "onFailure BusinessResponse = $p0, ArrayList<SiteBean?> = $p1, " +
"String = $p2")
}
override fun onSuccess(
p0: BusinessResponse?,
siteList: ArrayList<SiteBean?>?,
p2: String?,
) {
L.d(TAG, "onSuccess BusinessResponse = $p0, ArrayList<SiteBean?> =" +
"$siteList, String = $p2")
}
})
SiteBean
属性说明
SiteBean
继承自 HomeBean
,HomeBean
相关字段说明请参考下表:
字段名称 | 类型 | 说明 |
---|---|---|
name | String | 站点名称 |
geoName | String | 站点地理位置名称 |
lon | Double | 经度 |
lat | Double | 纬度 |
homeId | Long | 站点 ID |
admin | Boolean | 管理员身份 |
homeStatus | Integer | 加入站点要求的状态
|
role | Integer | 站点成员权限:
|
rooms | List<RoomBean> | 所有房间列表 |
deviceList | List<DeviceBean> | 所有设备列表 |
groupList | List<GroupBean> | 所有群组 |
meshList | List<BlueMeshBean> | 网关设备 |
sharedDeviceList | List<DeviceBean> | 收到的共享设备 |
sharedGroupList | List<GroupBean> | 收到的共享群组 |
SiteBean
特有字段说明如下:
字段名称 | 类型 | 说明 |
---|---|---|
projectName | String | 项目名称 |
projectLocation | String | 项目地址 |
authStartTime | Long | 授权开始时间 |
authEndTime | Long | 授权结束时间 |
memberLimit | Int | 最大入住人数 |
authStatus | String | 授权状态
|
siteType | String | 站点类型
|
spaceFullName | String | 站点全称 |
includeDeviceGroup | Boolean | 是否包含设备组 |
dgIds | List |
包含的设备组 ID |
查询站点列表接口是没有设备与房间等其他信息的。因此,查询站点列表后,还需根据 homeId
查询设备与房间等其他信息才能得到完整的站点信息。
使用以下方法查询站点详情,房间,设备等信息会自动填入 SiteBean
中。
fun fetchSiteDetail(
siteBean: SiteBean,
callback: ITuyaSiteResultCallback
)
需要注意的是,每次在 App 启动或是断网重连时,都需要重新调用以上方法,否则会出现信息丢失的问题。
示例代码
TuyaSmartResidenceSdk.siteManager().fetchSiteDetail(Global
.currentSite!!, object : ITuyaSiteResultCallback {
override fun onSuccess(bean: SiteBean?) {
L.d(TAG, JSON.toJSONString(bean))
}
override fun onError(errorCode: String?, errorMsg: String?) {
L.d(TAG, "fetchSiteDetailList: errorCode = $errorCode, errorMsg = $errorMsg")
}
})
查询站点列表与站点详情后,您需要保存这两个信息。当需要切换站点进行展示时,需要请求切换后的站点详情,其他相应接口也需要使用切换后的站点 ID 去请求相应的数据。
创建站点可以使用以下方法创建,必选 siteName
与 listener
字段,其余字段可填写空字符串或 0
。
fun createSite(
siteName: String,
geoName: String,
lat: Double,
lon: Double,
rooms: List<String?>?,
listener: Business.ResultListener<HomeResponseBean?>?
)
参数说明
参数名称 | 类型 | 说明 |
---|---|---|
siteName | String | 站点名 |
geoName | String | 所在位置名 |
lat | Double | 经度 |
lon | Double | 纬度 |
rooms | List<String?> | 房间列表 |
listener | Business.ResultListener | 结果回调 |
示例代码
TuyaSmartResidenceSdk.siteManager()
.createSite(homeName, "", lat = lat.toDouble(), lon = lon.toDouble(), split, object :
Business
.ResultListener<HomeResponseBean?> {
override fun onFailure(p0: BusinessResponse?, p1: HomeResponseBean?, p2: String?) {
L.d(
TAG, "onFailure BusinessResponse = $p0, HomeResponseBean = $p1, " +
"String = $p2")
}
override fun onSuccess(p0: BusinessResponse?, p1: HomeResponseBean?, p2: String?) {
L.d(TAG, "onSuccess BusinessResponse = $p0, HomeResponseBean = $p1, " +
"String = $p2")
}
})
如需修改站点信息,如名称、位置、房间名称或数量,可使用以下方法修改。
修改站点信息时,您需要根据不同的站点类型,来限制是否能够修改站点信息。例如 B2C、通行站点等场景下,不允许修改站点信息。
fun updateSiteInfo(
homeId: Long,
name: String?,
lon: Double,
lat: Double,
geoName: String?,
rooms: List<String?>? = null,
overWriteRoom: Boolean? = null,
listener: Business.ResultListener<Boolean?>?
)
参数含义与 createSite
方法相同,overWriteRoom
含义为:
值 | 作用 |
---|---|
true | 删除原房间,使用新传入的房间 |
false | 添加房间 |
示例代码
TuyaSmartResidenceSdk.siteManager()
.updateSiteInfo(Global.currentSite?.homeId ?: return@Button, homeName, lon.toDouble(), lat
.toDouble(), geoName, split, true, object : Business
.ResultListener<Boolean?> {
override fun onFailure(p0: BusinessResponse?, p1: Boolean?, p2: String?) {
L.d(
TAG, "onFailure BusinessResponse = $p0, HomeResponseBean = $p1, " +
"String = $p2")
}
override fun onSuccess(p0: BusinessResponse?, p1: Boolean?, p2: String?) {
L.d(TAG, "onSuccess BusinessResponse = $p0, HomeResponseBean = $p1, " +
"String = $p2")
}
})
由于商家授权站点会有有效期,过期的商家授权站点列表可通过这个方法查询。
fun fetchExpiredList(
pageNo: Int,
pageSize: Int,
listener: Business.ResultListener<SiteExpiredAuthBeans>
)
该方法只能查询过期的商家授权站点列表,普通站点与通行站点并不会返回数据。
SiteExpiredAuthBeans
字段说明
字段名称 | 类型 | 说明 |
---|---|---|
projectId | String | 项目 ID |
spaceId | String | 房源 ID |
projectName | String | 项目名称 |
spaceName | String | 房源名称 |
spaceFullName | String | 房源全称 |
authStartTime | Long | 入住时间 |
authEndTime | Long | 退房时间 |
示例代码
TuyaSmartResidenceSdk.siteManager().fetchExpiredList(1, 20, object : Business
.ResultListener<SiteExpiredAuthBeans> {
override fun onFailure(
p0: BusinessResponse?,
p1: SiteExpiredAuthBeans?,
p2: String?,
) {
L.d(TAG, "fetchExpiredList onFailure: ${p0?.errorMsg}")
}
override fun onSuccess(
p0: BusinessResponse?,
p1: SiteExpiredAuthBeans?,
p2: String?,
) {
}
})
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈