更新时间:2024-07-18 06:10:56下载pdf
推荐场景 通过场景服务连接设备和用户,赋予设备场景化能力。场景推荐主要包括获取推荐场景列表、获取设备的推荐场景列表、获取推荐场景详情、移除和添加推荐场景在内的相关功能。有关场景推荐业务的介绍,参考 OEM App 场景推荐。
接口说明
获取推荐场景列表。v5.10.0 及以上版本 SDK 支持该接口。
fun getUnifiedRecommendAll(
relationId: Long,
source: String,
size: Int = 10,
withAdded: Boolean = false,
devId: String?,
recommendSource: String,
callback: IResultCallback<List<RecommendScene>?>?
)
参数说明
参数 | 说明 |
---|---|
relationId | 家庭 ID |
source | 接口调用来源,目前固定为 TAB |
size | 可选参数:推荐场景列表的数量。不传默认为 10 条 |
withAdded | 可选参数:是否需要返回已添加的推荐场景。不传默认为 false |
devId | 可选参数:设备 ID。不需要可传 null |
recommendSource | 需检索的推荐类型。例如,linkage,energy,warning ,用逗号分隔 |
callback | 回调 |
其中,RecommendScene
的主要属性定义如下:
字段 | 类型 | 描述 |
---|---|---|
id | Long | 推荐场景 ID |
recommendId | String | 推荐场景 ID,推荐使用 recommendId |
matchType | Int | 条件匹配模式:
|
ownerId | String | 家庭 ID |
name | String | 场景名称 |
coverIcon | String | 存储场景图标的 URL |
background | String | 背景图 |
displayColor | String | 显示的背景色 |
recomDescription | String | 场景推荐描述 |
recomCoefficient | Int | 场景推荐系数 |
hotCount | String | 推荐热点值 |
ruleGenre | Int | 联动类型 |
conditions | List<SceneCondition> |
场景的条件列表 |
actions | List<SceneAction> |
场景的动作列表 |
示例代码
ThingHomeSdk.getSceneServiceInstance().recommendService().getUnifiedRecommendAll(
relationId,
"TAB",
10,
false,
null,
"linkage,energy,warning",
object : IResultCallback<List<RecommendScene>?> {
override fun onSuccess(result: List<RecommendScene>?) {
}
override fun onError(errorCode: String?, errorMessage: String?) {
}
})
接口说明
获取设备相关的推荐场景列表。v3.29.0 及以上版本 SDK 支持该接口。
fun getRecommendsByDevice(
relationId: Long,
deviceId: String,
size: Int,
callback: IResultCallback<List<RecommendScene>?>?
)
参数说明
参数 | 说明 |
---|---|
relationId | 家庭 ID |
deviceId | 设备 ID |
size | 推荐场景的数量。关于数量的限制,参考 场景推荐规则 |
callback | 回调 |
示例代码
v3.34.5 及以上版本 SDK 调用示例:
ThingHomeSdk.getSceneServiceInstance().recommendService().getRecommendsByDevice(
relationId, devId, 3,
object : IResultCallback<List<RecommendScene>?> {
override fun onSuccess(result: List<RecommendScene>?) {
}
override fun onError(errorCode: String?, errorMessage: String?) {
}
})
v3.34.5 以下版本 SDK 调用示例:
TuyaHomeSdk.getSceneManagerInstance().getRecommendSceneListByDev(homeId, devId, 3, new ITuyaResultCallback<List<SceneBean>>() {
@Override
public void onSuccess(List<SceneBean> result) {
}
@Override
public void onError(String errorCode, String errorMessage) {
}
});
接口说明
批量获取设备相关推荐场景,支持节能、告警等推荐类型。v5.10.0 及以上版本 SDK 支持该接口。
fun requestRecommendSceneWithDevList(
relationId: Long,
devIds: String,
from: String? = null,
callback: IResultCallback<DeviceRecommendScene?>?
)
参数说明
参数 | 说明 |
---|---|
relationId | 家庭 ID |
devIds | 设备 ID 列表,以逗号分隔。例如,"6cda1ca75a5a768f5czn9i,6cda1ca75a5a768f5czn9b" |
from | 可选参数:请求来源。不传默认为 null |
callback | 回调 |
其中,DeviceRecommendScene
的类型是一个 Map 结构,key
是设备 ID,value
为List<RecommendSceneData>
,其中 RecommendSceneData
主要属性定义如下:
字段 | 类型 | 描述 |
---|---|---|
recommendId | String | 推荐 ID |
libraryId | String | 模板 ID |
name | String | 场景名称 |
jumpType | String | 跳转类型 |
jumpUrl | String | 跳转地址 |
recommendSource | String | 推荐来源
|
background | String | 背景图 |
displayColor | String | 纯背景色 |
示例代码
ThingHomeSdk.getSceneServiceInstance().recommendService().requestRecommendSceneWithDevList(relationId, devIds, null,
object : IResultCallback<DeviceRecommendScene?> {
override fun onSuccess(result: DeviceRecommendScene?) {
}
override fun onError(errorCode: String?, errorMessage: String?) {
}
})
接口说明
批量获取设备相关推荐场景。v3.34.5 及以上版本 SDK 支持该接口。
fun requestRecommendSceneWithDeviceIds(
relationId: Long,
devIds: String,
source: Int,
callback: IResultCallback<ArrayList<RecommendPlainScene?>?>
)
参数说明
参数 | 说明 |
---|---|
relationId | 家庭 ID |
devIds | 设备 ID 列表,以逗号分隔。例如,"6cda1ca75a5a768f5czn9i,6cda1ca75a5a768f5czn9b" |
source | 来源
|
callback | 回调 |
示例代码
ThingHomeSdk.getSceneServiceInstance().recommendService().requestRecommendSceneWithDeviceIds(relationId, devIds, 1,
object : IResultCallback<ArrayList<RecommendPlainScene?>?> {
override fun onSuccess(result: ArrayList<RecommendPlainScene?>?) {
}
override fun onError(errorCode: String?, errorMessage: String?) {
}
})
接口说明
获取推荐场景详细数据。v3.34.5 及以上版本 SDK 支持该接口。
fun requestRecommendDetail(
relationId: Long,
sceneId: String,
callback: IResultCallback<RecommendScene?>?
)
参数说明
参数 | 说明 |
---|---|
relationId | 家庭 ID |
sceneId | 推荐场景 ID,即 RecommendScene 的 recommendId 字段 |
callback | 回调 |
示例代码
ThingHomeSdk.getSceneServiceInstance().recommendService().requestRecommendDetail(
relationId, recommendId,
object : IResultCallback<RecommendScene?> {
override fun onSuccess(result: RecommendScene?) {
}
override fun onError(errorCode: String?, errorMessage: String?) {
}
})
接口说明
在推荐场景详情内,可以通过添加操作来将推荐场景保存为场景。
添加完成后,需要重新刷新推荐场景列表和普通场景列表。一旦推荐场景保存成普通场景后就不再推荐,同时普通场景列表多了一条记录。v3.21.0 及以上版本 SDK 支持该接口。
fun handleRecommend(
relationId: Long,
sceneId: String,
action: String,
sceneData: NormalScene?,
callback: IResultCallback<Boolean?>?
)
参数说明
参数 | 说明 |
---|---|
relationId | 家庭 ID |
sceneId | 推荐场景 ID,即 RecommendScene 的 recommendId 字段 |
action | 保存或添加(save )推荐场景 |
sceneData | 编辑区的场景数据 |
callback | 回调 |
示例代码
v3.34.5 及以上版本 SDK 调用示例:
ThingHomeSdk.getSceneServiceInstance().recommendService().handleRecommend(
relationId, sceneId, "save", normalScene,
object : IResultCallback<Boolean?> {
override fun onSuccess(result: Boolean?) {
}
override fun onError(errorCode: String?, errorMessage: String?) {
}
})
v3.34.5 以下版本 SDK 调用示例:
final SceneBean bean = new SceneBean();
bean.setActions(smartSceneBean.getActions());
bean.setBackground(smartSceneBean.getBackground());
bean.setCode(smartSceneBean.getCode());
bean.setConditions(smartSceneBean.getConditions());
bean.setEnabled(smartSceneBean.isEnabled());
bean.setStickyOnTop(smartSceneBean.isTop());
bean.setId(smartSceneBean.getId());
bean.setName(smartSceneBean.getName());
bean.setMatchType(smartSceneBean.getMatchType());
bean.setBoundForPanel(smartSceneBean.isBoundForPanel());
bean.setPreConditions(smartSceneBean.getPreConditions());
bean.setNewLocalScene(smartSceneBean.isNewLocalScene());
bean.setLocalLinkage(smartSceneBean.isLocalLinkage());
bean.setStickyOnTop(smartSceneBean.isTop());
bean.setHotCount(smartSceneBean.getHotCount());
bean.setDisplayColor(smartSceneBean.getCoverColor());
bean.setCoverIcon(smartSceneBean.getCoverIcon());
TuyaHomeSdk.getSceneManagerInstance().recommendSceneSave(homeId, Long.parseLong(bean.getId()), bean, new IResultCallback() {
@Override
public void onError(String code, String error) {
}
@Override
public void onSuccess() {
}
});
接口说明
在推荐场景详情内,可以通过该接口将不感兴趣的推荐场景从推荐场景列表中移除。
移除成功后,需要重新刷新推荐场景列表,该推荐场景不再推荐。v3.21.0 及以上版本 SDK 支持该接口。
fun handleRecommend(
relationId: Long,
sceneId: String,
action: String,
sceneData: NormalScene?,
callback: IResultCallback<Boolean?>?
)
参数说明
参数 | 说明 |
---|---|
relationId | 家庭 ID |
sceneId | 推荐场景 ID,即 RecommendScene 的 recommendId 字段 |
action | 取消或者移除(remove )推荐场景 |
sceneData | 编辑区的场景数据,可传参 null |
callback | 回调 |
示例代码
v3.34.5 及以上版本 SDK 调用示例:
ThingHomeSdk.getSceneServiceInstance().recommendService().handleRecommend(
relationId, sceneId, "remove", null,
object : IResultCallback<Boolean?> {
override fun onSuccess(result: Boolean?) {
}
override fun onError(errorCode: String?, errorMessage: String?) {
}
})
v3.34.5 以下版本 SDK 调用示例:
TuyaHomeSdk.getSceneManagerInstance().recommendSceneRemove(homeId, sceneId, null, new IResultCallback() {
@Override
public void onError(String code, String error) {
}
@Override
public void onSuccess() {
}
});
接口说明
在推荐场景详情内,将不感兴趣的推荐场景从推荐场景列表中移除。
移除成功后,需要重新刷新推荐场景列表,该推荐场景不再推荐。v5.5.0 及以上版本 SDK 支持该接口。
fun dislikeRecommend(
relationId: Long,
recommendId: String,
recommendSource: String,
callback: IResultCallback<Boolean>?
)
参数说明
参数 | 说明 |
---|---|
relationId | 家庭 ID |
recommendId | 推荐场景 ID,即 RecommendScene 的 recommendId 字段 |
recommendSource | 推荐来源,即 RecommendScene 的 recommendSource 字段。例如,energy ,或 linkage ,又或 warning |
callback | 回调 |
示例代码
ThingHomeSdk.getSceneServiceInstance().recommendService().dislikeRecommend(
relationId,
recommendId, // 从推荐的场景模型中获取,RecommendScene.getRecommendId
"linkage", // 从推荐的场景模型中获取,RecommendScene.getRecommendSource
object : IResultCallback<Boolean> {
override fun onSuccess(result: Boolean) {
}
override fun onError(errorCode: String?, errorMessage: String?) {
}
})
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈