看板卡片类SDK使用

修改历史

日期 版本号 修改内容
2026.04.06 v1.0.1 补充 IALinkCallBack 接口方法说明,新增推送回调与数据读写控制代理说明
2026.03.31 v1.0.0 新增看板卡片类SDK使用文档,补充 IHomeConfigurationCallbackIPanelPermissionStrategy 新接入方式

一、概述

本文介绍如何在完成集成后,参考宿主工程中的 MainActivityinitHome() 以及宿主回调与策略实现,接入看板卡片类SDK提供的页面、跳转、资源扩展与 Aqara Spec 数据通知能力。

二、前提条件

  1. 确认完成准备工作
  2. 确认完成环境搭建
  3. 确认完成看板卡片类SDK集成
  4. 详情查看看板卡片清单

三、使用

3.1 跳转到看板卡片页面

宿主入口页先判断当前设备形态,再完成 Home 模块初始化,最后加载家庭首页 HomeMainFragment

class MainActivity : BaseActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        // 1. 设置手机 / 平板形态
        LumiRouterManager.instance.isTablet =
            resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE

        // 2. 初始化家庭配置能力
        initHome()

        // 3. 加载家庭首页
        startHome()
    }

    open fun startHome() {
        loadRootFragment(R.id.fl_container, HomeMainFragment())
    }
}

关键参数说明

字段 类型 描述 来源
context Activity 宿主入口页 宿主 App
HomeMainFragment Fragment 家庭首页容器 SDK提供
R.id.fl_container Int 页面容器 ID 宿主布局需预留

跳转到其他页面,例如服务广场、卡片列表等,直接复用宿主中 ARouter.build(...).withString(PATH_KEY, ...).navigation() 的写法,并替换为目标页面路径。

3.2 看板跳转回调

3.2.1 回调说明

看板中的卡片点击、页面跳转、离线处理、Web 打开等能力,统一通过 IHomeConfigurationCallback 对外提供,由宿主实现具体业务逻辑。

接入方式如下:

  1. 宿主实现一个回调类,例如 HomeCallBack
  2. 该类实现 IHomeConfigurationCallback
  3. 通过 ARouter 暴露给看板模块使用

IHomeConfigurationCallback 是看板模块对宿主暴露的统一跳转接口。看板首页中的卡片点击、页面跳转、离线处理、Web 打开、主题切换等行为,最终都会通过这个接口回调给宿主实现。

3.2.2 IHomeConfigurationCallback 接口说明

接口定义的核心特点如下:

  1. 继承自 IProvider,通过 ARouter 服务发现使用
  2. 多数实体参数使用 Any 透传,宿主需要按约定强转为真实类型
  3. 看板模块通过统一路由层调用该接口,不直接依赖宿主业务页面

当前常用方法与参数约定如下:

方法 参数说明 约定实际类型或用途
gotoDeviceHomePage(context, endPointEx) 设备页跳转 endPointEx 实际类型为 EndPointEx
gotoSceneHomePage(context, entity) 场景页跳转 entity 实际类型为 PanelBoardEntity
gotoAutomationHomePage(context, entity) 自动化页跳转 entity 实际类型为 PanelBoardEntity
gotoOfflinePage(context, endPointEx, showDialog) 离线诊断或离线页处理 endPointEx 实际类型为 EndPointExshowDialog 控制是否弹窗
gotoEnergyPage(context, entity) 能耗页跳转 entity 实际类型为 PanelBoardEntity
gotoHomeLocationPage(context, entity) 家庭位置页跳转 entity 实际类型为 WeatherEntity
gotoWebPage(context, url, title, isFullScreen) Web 页面跳转 使用 URL、标题和全屏标记
onChangeTheme() 主题切换回调 宿主收到后执行主题联动处理
gotoLANLinkPage(context, did, model) 局域网链路页跳转 依赖设备 didmodel
gotoLANSettingPage(context) 局域网设置页跳转 无额外业务实体
gotoVideoEventPage(context, homeId) 视频事件页跳转 使用 homeId 标识家庭
gotoServiceSquareDescPage(context, key) 服务广场详情页跳转 使用 key 标识目标内容
gotoMinePage(context) 我的页面跳转 打开个人中心相关页面

补充说明:

  1. 看板模块会根据卡片类型决定调用哪个接口方法
  2. 例如设备卡片会走 gotoDeviceHomePage(...),场景卡片会走 gotoSceneHomePage(...)
  3. 宿主实现时,需要正确识别 Any 参数的真实类型,否则无法拿到看板透传的业务数据

3.2.3 接入要求

  1. 梳理宿主现有页面,确认设备详情、家庭管理、场景、自动化和 Web 容器等页面路径及参数
  2. IHomeConfigurationCallback 的实现类中逐个补齐跳转逻辑,改成调用 ARouter 或宿主自有路由
  3. 项目只做看板展示时,先实现设备页、场景页和 Web 页跳转,其他接口保留占位处理

3.3 IALinkCallBack 接口说明

3.3.1 接口职责

看板卡片类SDK通过 IALinkCallBack 与宿主的设备链路层对接,用于承接 Aqara Spec 相关的数据通知与控制能力。宿主需要在该接口中实现以下几类方法:

  1. 推送回调方法:接收设备 trait 的实时变更通知
  2. 数据读取代理方法:按设备、功能或 trait 读取当前值
  3. trait write 方法:用于修改设备 trait 属性值
  4. 命令下发方法:用于执行独立于 trait write 的设备命令

3.3.2 重点方法说明

方法或能力 用途 说明
onTraitPush 推送回调 用于接收 Aqara Spec 的实时数据通知。当设备 trait 值变化时,宿主可在该回调中解析设备标识、trait 标识与最新值,并联动首页卡片刷新、缓存更新或业务通知分发。
read 数据查询 用于看板模块主动获取设备当前状态,覆盖首页首屏渲染、页面回前台刷新、卡片主动拉取最新值等场景。宿主复用已有设备中心或本地缓存能力,返回最新 trait 数据。
write 属性修改 用于修改设备某个 trait 的当前值,适用于开关切换、亮度调整、模式设置、温度设定等可直接映射到 trait 的属性修改场景。宿主收到请求后,应按 Aqara Spec 的 trait 写入方式执行。
cmd 命令控制 用于执行与 trait write 不同的设备命令,例如触发一次性动作、发起某类执行指令或调用设备命令能力。该类方法属于命令下发链路,不应与 trait 属性修改混用。

3.3.3 相关实体说明

IALinkCallBack 接入时涉及以下几个核心实体:

实体 用途 说明
TraitPushEntity 推送数据实体 用于承载设备 trait 实时上报的数据内容。该对象封装一次 trait 变更通知,包含设备标识、trait 标识、最新值、时间戳和相关上下文信息,用于首页卡片刷新、缓存同步和消息分发。
Trait trait 描述实体 表示 Aqara Spec 中某一个可读、可写、可上报的能力点。该对象重点关注 deviceIdpathvalue 三个字段:deviceId 标识目标设备,path 标识目标能力路径,value 表示当前 trait 值。pathendpointId.functionId.trait 组成。宿主据此执行读取、写入或渲染逻辑。
AqaraSpecConfigCmdEntity 命令配置实体 用于描述一次 Aqara Spec 命令下发请求。该对象用于 cmd 链路,封装目标设备、目标能力、命令标识及附加参数等信息,用于执行一次性动作或复杂控制指令,不用于简单的 trait 属性写入。

补充说明:

  1. TraitPushEntity 更偏向“设备上报结果”,适用于被动通知场景
  2. Trait 使用 deviceIdpathvalue 表达目标设备、目标能力和当前值,适用于读、写、展示等通用链路
  3. AqaraSpecConfigCmdEntity 更偏向“控制指令描述”,适用于命令下发场景

3.3.4 接入要求

  1. 宿主需确保 IALinkCallBack 已完成注册,并由统一链路层正常回调
  2. onTraitPush(...) 作为实时更新入口,用于处理设备上报和被动刷新
  3. 数据读取代理方法复用宿主现有设备缓存、设备中心或查询接口,减少重复实现
  4. trait write 方法统一收口到宿主已有写入链路,便于做权限校验、节流、日志和失败重试
  5. 命令下发方法走独立的命令控制链路,实现上与 trait write 分开处理,避免接口语义混淆
  6. trait 变更频率较高时,增加去重、节流或按设备维度合并刷新,减少 UI 抖动与重复渲染

3.3.5 使用说明

  1. IALinkCallBack 是看板模块接入 Aqara Spec 数据通知与控制能力的核心接口
  2. 推送回调、数据读取代理、trait write、命令下发由宿主统一规划,且实现上区分不同链路
  3. 其中 trait write 用于属性修改,命令下发用于执行独立设备命令,两者不是同一种控制方式
  4. 宿主未正确实现该接口时,会出现卡片不刷新、首屏状态不准确、控制行为异常或状态不同步等问题

3.4 看板功能开关

3.4.1 IPanelPermissionStrategy 说明

看板能力是否展示、是否允许点击、是否允许编辑等,统一通过 IPanelPermissionStrategy 控制。

该接口用于控制家庭配置页面中哪些功能可用或可见,宿主可在初始化时注入自己的策略实现。

LMHomeManager.getInstance().setPanelPermissionStrategy(object : IPanelPermissionStrategy {
    override fun supportVoice() = false
    override fun supportAddDeviceSceneAutomation() = true
    override fun supportCardClick() = false
    override fun supportEditCard() = true
    override fun supportSwitchHome() = true
    override fun supportStatistics() = true
    override fun supportThemePanel() = false
    override fun supportLAN() = true
    override fun supportCardType() = getSupportCardType()
})

3.4.2 常用策略项说明

方法 返回值示例 含义
supportVoice() false 是否展示语音能力
supportAddDeviceSceneAutomation() true 是否允许新增设备、场景、自动化
supportCardClick() false 卡片是否允许点击跳转
supportEditCard() true 是否允许编辑卡片
supportSwitchHome() true 是否允许切换家庭
supportStatistics() true 是否展示统计能力
supportThemePanel() false 是否展示主题面板
supportLAN() true 是否展示局域网相关内容
supportCardType() getSupportCardType() 使用默认支持卡片类型或自定义卡片白名单

3.4.3 使用要求

只面向看板项目内容时,优先确认以下几个开关:

  1. supportCardClick():决定首页卡片是否可进入详情或执行跳转
  2. supportEditCard():决定用户能否编辑卡片
  3. supportSwitchHome():决定是否允许跨家庭切换
  4. supportCardType():决定看板允许展示哪些卡片类型

目标是“只展示不跳转”时,将 supportCardClick() 设为 false,并保留编辑、切换家庭等开关。

3.5 资源扩展

3.5.1 本地资源扩展(可选)

覆盖默认皮肤、图片或文案时,参考 Demo 中的 resourcesassets 目录放置自定义内容,并通过 ThemeStyle.getInstance().getBaseThemePack()ResourcesWrapper 等扩展点进行注入。

3.5.2 远程资源(可选)

看板卡片类SDK支持通过远程配置下发卡片皮肤、文案等内容。当前版本由内部配置中心维护。对外开通请联系商务支持。

以上示例基于宿主工程中的 Demo 结构。业务接入时按业务范围裁剪,保持 onCreate -> initHome -> startHome 的调用链,完成家庭首页与核心卡片能力接入。

lumi LogoCopyright © 2023 深圳绿米联创科技有限公司 all right reserved,powered by Gitbook文档修改时间: 2026-04-21 15:19:58

results matching ""

    No results matching ""