更新时间: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?) {
}
})
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈