推荐场景

更新时间:2024-05-15 03:28:06下载pdf

推荐场景 通过场景服务连接设备和用户,赋予设备场景化能力。场景推荐主要包括获取推荐场景列表、获取设备的推荐场景列表、获取推荐场景详情、移除和添加推荐场景在内的相关功能。有关场景推荐业务介绍,请参考 OEM App 场景推荐

匹配推荐场景

接口说明

获取推荐场景列表 前,要求先调用请求匹配推荐场景接口。

该接口存在限流,时效 12 小时,即在 12 小时内,多次调用云端并不会执行多次匹配逻辑。

fun requireRecommendMatch(relationId: Long, callback: IResultCallback<Boolean>?)

参数说明

参数 说明
relationId 家庭 ID
callback 回调

示例代码

  • 5.9.0-cube 版本 SDK 调用示例:

        ThingHomeSdk.getSceneServiceInstance().recommendService().requireRecommendMatch(
                relationId,
                object : IResultCallback<Boolean>() {
                    override fun onSuccess(result: Boolean) {
    
                    }
                    override fun onError(errorCode: String?, errorMessage: String?) {
    
                    }
                })
    

获取推荐场景

接口说明

推荐场景列表获取前,需要先 匹配推荐场景,否则获取到的推荐场景不会变。

fun getRecommendAll(relationId: Long, callback: IResultCallback<List<RecommendScene>?>?)

参数说明

参数 说明
relationId 家庭 ID
callback 回调

其中,RecommendScene 的主要属性定义如下:

字段 类型 描述
id Long 推荐场景 ID
recommendId String 推荐场景 ID
matchType Int 条件匹配模式:
  • 1:满足所有
  • 0:满足其一
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> 场景的动作列表

示例代码

  • 5.9.0-cube 版本 SDK 调用示例:

        ThingHomeSdk.getSceneServiceInstance().recommendService().getRecommendAll(
                relationId,
                object : IResultCallback<List<RecommendScene>?>() {
                    override fun onSuccess(result: List<RecommendScene>?) {
    
                    }
                    override fun onError(errorCode: String?, errorMessage: String?) {
    
                    }
                })
    

匹配设备的推荐场景

接口说明

设备配网完成后的需要展示该设备相关的推荐场景,则需要先调用该接口匹配设备的推荐场景。

接口存在限流,时效 12 小时,也就是 12 小时内,不会多次调用匹配接口的逻辑。

fun requireRecommendMatchTwo(relationId: Long, callback: IResultCallback<Boolean>?)

参数说明

参数 说明
relationId 家庭 ID
callback 回调

示例代码

  • 5.9.0-cube 版本 SDK 调用示例:

        ThingHomeSdk.getSceneServiceInstance().recommendService().requireRecommendMatchTwo(
                relationId,
                object : IResultCallback<Boolean>() {
                    override fun onSuccess(result: Boolean) {
    
                    }
                    override fun onError(errorCode: String?, errorMessage: String?) {
    
                    }
                })
    

获取设备的推荐场景

接口说明

设备相关的推荐场景列表获取前,需要先 匹配推荐场景,否则获取到的推荐场景不会变。

fun getRecommendsByDevice(
    relationId: Long,
    deviceId: String,
    size: Int,
    callback: IResultCallback<List<RecommendScene>?>?
)

参数说明

参数 说明
relationId 家庭 ID
deviceId 设备 ID
size 推荐场景的数量。关于数量的限制,请参考 场景推荐规则
callback 回调

示例代码

  • 5.9.0-cube 版本 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?) {
    
                    }
                })
    

批量获取设备的推荐场景

接口说明

批量获取设备相关推荐场景。

fun requestRecommendSceneWithDeviceIds(
    relationId: Long,
    devIds: String,
    source: Int,
    callback: IResultCallback<ArrayList<RecommendPlainScene?>?>
)

参数说明

参数 说明
relationId 家庭 ID
devIds 设备 ID 列表,以逗号分隔。例如:"6cda1ca75a5a768f5czn9i,6cda1ca75a5a768f5czn9b"
source
  • 1:表示来自设备列表
  • 2:表示来自设备详情,该值尚未起效
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?) {

                }
    })

获取推荐场景详情

接口说明

获取推荐场景详细数据。

fun requestRecommendDetail(relationId: Long, sceneId: String, callback: IResultCallback<RecommendScene?>?)

参数说明

参数 说明
relationId 家庭 ID
sceneId 推荐场景 ID,即 RecommendScenerecommendId 字段
callback 回调

示例代码

      ThingHomeSdk.getSceneServiceInstance().recommendService().requestRecommendDetail(
            relationId, recommendId,
            object : IResultCallback<RecommendScene?>() {
                override fun onSuccess(result: RecommendScene?) {

                }
                override fun onError(errorCode: String?, errorMessage: String?) {

                }
            })

添加推荐场景

接口说明

在推荐场景详情内,可以通过添加操作来将推荐场景保存为场景。

添加完成后,需要重新刷新推荐场景列表和普通场景列表。一旦推荐场景保存成普通场景后就不再推荐,同时普通场景列表多了一条记录。

fun handleRecommend(
        relationId: Long,
        sceneId: String,
        action: String,
        sceneData: NormalScene?,
        callback: IResultCallback<Boolean?>?
    )

参数说明

参数 说明
relationId 家庭 ID
sceneId 推荐场景 ID,即 RecommendScenerecommendId 字段
action 保存或添加(save)推荐场景
sceneData 编辑区的场景数据
callback 回调

示例代码

  • 5.9.0-cube 版本 SDK 调用示例:

        ThingHomeSdk.getSceneServiceInstance().recommendService().handleRecommend(
                relationId, sceneId, "save", normalScene,
                object : IResultCallback<Boolean?>() {
                    override fun onSuccess(result: Boolean?) {
    
                    }
                    override fun onError(errorCode: String?, errorMessage: String?) {
    
                    }
                })
    

移除推荐场景

接口说明

在推荐场景详情内,可以通过该接口将不感兴趣的推荐场景从推荐场景列表中移除。

移除成功后,需要重新刷新推荐场景列表,该推荐场景不再推荐。

fun handleRecommend(
        relationId: Long,
        sceneId: String,
        action: String,
        sceneData: NormalScene?,
        callback: IResultCallback<Boolean?>?
    )

参数说明

参数 说明
relationId 家庭 ID
sceneId 推荐场景 ID,即 RecommendScenerecommendId 字段
action 取消或者移除(remove)推荐场景
sceneData 编辑区的场景数据,可传参 null
callback 回调

示例代码

  • 5.9.0-cube 版本 SDK 调用示例:

        ThingHomeSdk.getSceneServiceInstance().recommendService().handleRecommend(
                relationId, sceneId, "remove", null,
                object : IResultCallback<Boolean?>() {
                    override fun onSuccess(result: Boolean?) {
    
                    }
                    override fun onError(errorCode: String?, errorMessage: String?) {
    
                    }
                })