更新时间:2024-11-18 11:33:09
推荐场景 通过场景服务连接设备和用户,赋予设备场景化能力。场景推荐主要包括获取推荐场景列表、获取设备的推荐场景列表、获取推荐场景详情、移除和添加推荐场景在内的相关功能。有关场景推荐业务介绍,请参考 OEM App 场景推荐。
接口说明
在 获取推荐场景列表 前,要求先调用请求匹配推荐场景接口。
该接口存在限流,时效 12 小时,也就是 12 小时内,多次调用云端并不会执行多次匹配逻辑。该接口由 v3.29.0 及以上版本 SDK 支持。
fun requireRecommendMatch(relationId: Long, callback: IResultCallback<Boolean>?)
参数说明
参数 | 说明 |
---|---|
relationId | 家庭 ID |
callback | 回调 |
示例代码
v3.34.5 及以上版本 SDK 调用示例:
TuyaHomeSdk.getSceneServiceInstance().recommendService().requireRecommendMatch(
relationId,
object : IResultCallback<Boolean>() {
override fun onSuccess(result: Boolean) {
}
override fun onError(errorCode: String?, errorMessage: String?) {
}
})
v3.34.5 以下版本 SDK 调用示例:
TuyaHomeSdk.getSceneManagerInstance().requestRecomMore(homeId, new IResultCallback() {
@Override
public void onError(String code, String error) {
}
@Override
public void onSuccess() {
}
});
接口说明
推荐场景列表获取前,需要先 匹配推荐场景,否则获取到的推荐场景不会变。v 3.21.0 及以上版本 SDK 支持该接口。
fun getRecommendAll(relationId: Long, callback: IResultCallback<List<RecommendScene>?>?)
参数说明
参数 | 说明 |
---|---|
relationId | 家庭 ID |
callback | 回调 |
其中,RecommendScene
的主要属性定义如下:
字段 | 类型 | 描述 |
---|---|---|
id | Long | 推荐场景 ID |
recommendId | String | 推荐场景 ID |
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> | 场景的动作列表 |
示例代码
v3.34.5 及以上版本 SDK 调用示例:
TuyaHomeSdk.getSceneServiceInstance().recommendService().getRecommendAll(
relationId,
object : IResultCallback<List<RecommendScene>?>() {
override fun onSuccess(result: List<RecommendScene>?) {
}
override fun onError(errorCode: String?, errorMessage: String?) {
}
})
v3.34.5 以下版本 SDK 调用示例:
TuyaHomeSdk.getSceneManagerInstance().getRecommendSceneList(homeId, new ITuyaResultCallback<List<SceneBean>>() {
@Override
public void onSuccess(List<SceneBean> sceneBeans) {
}
@Override
public void onError(String errorCode, String errorMessage) {
}
});
接口说明
设备配网完成后的需要展示该设备相关的推荐场景,则需要先调用该接口匹配设备的推荐场景。
接口存在限流,时效 12 小时,也就是 12 小时内,不会多次调用匹配接口的逻辑。v3.29.0 及以上版本 SDK 支持。
fun requireRecommendMatchTwo(relationId: Long, callback: IResultCallback<Boolean>?)
参数说明
参数 | 说明 |
---|---|
relationId | 家庭 ID |
callback | 回调 |
示例代码
v3.34.5 及以上版本 SDK 调用示例:
TuyaHomeSdk.getSceneServiceInstance().recommendService().requireRecommendMatchTwo(
relationId,
object : IResultCallback<Boolean>() {
override fun onSuccess(result: Boolean) {
}
override fun onError(errorCode: String?, errorMessage: String?) {
}
})
v3.34.5 以下版本 SDK 调用示例:
TuyaHomeSdk.getSceneManagerInstance().requestRecomMoreNew(homeId, new IResultCallback() {
@Override
public void onError(String code, String error) {
}
@Override
public void onSuccess() {
}
});
接口说明
设备相关的推荐场景列表获取前,需要先 匹配推荐场景,否则获取到的推荐场景不会变。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 调用示例:
TuyaHomeSdk.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) {
}
});
接口说明
批量获取设备相关推荐场景。v3.34.5 及以上版本 SDK 支持该接口。
fun requestRecommendSceneWithDeviceIds(
relationId: Long,
devIds: String,
source: Int,
callback: IResultCallback<ArrayList<RecommendPlainScene?>?>
)
参数说明
参数 | 说明 |
---|---|
relationId | 家庭 ID |
devIds | 设备 ID 列表,以逗号分隔。例如:“6cda1ca75a5a768f5czn9i,6cda1ca75a5a768f5czn9b” |
source |
|
callback | 回调 |
示例代码
TuyaHomeSdk.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 | 回调 |
示例代码
TuyaHomeSdk.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 调用示例:
TuyaHomeSdk.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 | 编辑区的场景数据 |
callback | 回调 |
示例代码
v3.34.5 及以上版本 SDK 调用示例:
TuyaHomeSdk.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() {
}
});
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈