看板 OEM SDK集成与使用

修改历史

日期 版本号 修改内容
2026.04.21 v1.0.0 新增看板 OEM SDK集成与使用文档

一、概述

本文介绍如何在宿主 Android 工程中集成看板 OEM SDK,并参考 OEM 示例工程中的 App.kt 完成统一初始化。完成接入后,宿主可基于 OEM 渠道能力加载看板相关页面与业务能力。

二、前提条件

  1. 确认完成准备工作
  2. 确认完成环境搭建
  3. 已获取 AppIdAppKey、用户登录态及区域、多语言等初始化所需参数

三、集成

3.1 编辑 app 目录下 build.gradle

获取最新版本:SDK最新版本

dependencies {

    // 看板 OEM SDK
    implementation "com.lumi.module.oem:home:1.0.3"
}

3.2 初始化说明

看板 OEM SDK 使用绿米 Android SDK 的统一初始化方式,不对 OEM 模块执行单独初始化。宿主在 Application 中通过 LumiCoreManager 完成一次初始化,并将 sdkChannel 指定为 LumiSDKChannel.CHANNEL_OEM_SDK

接入要点如下:

  1. 推荐初始化在 Application.onCreate() 中尽早执行
  2. init(...) 多次调用无效;更新参数时调用统一更新能力
  3. ILumiUserInfo 返回真实的用户 ID、Token、区域、多语言及设备支持地区
  4. extensions 用于补充 H5 地址等扩展配置

四、使用

4.1 Application 中完成 OEM SDK 初始化

参见环境搭建-统一初始化

以下示例参考 OEM 示例工程中的 App.kt 写法整理:

class App : Application() {

    override fun onCreate() {
        super.onCreate()

        val extensions = hashMapOf(
            "BaseH5UrlV2" to "https://cdn.aqara.com/cdn/luoshu/mainland/app-h5/device/index.html#",
            "AQARA_TOOL_BASE_URL" to "https://cdn.aqara.com/cdn/luoshu/mainland/app-test-h5/huiruitong-h5/index.html#"
        )

        LumiCoreManager.getInstance().init(
            this,
            BuildConfig.DEBUG,
            LumiCoreManager.LumiCoreSDKConfig.builder()
                .appId(BuildConfig.AppID)
                .appKey(BuildConfig.AppKey)
                .baseImageUrl("https://cdn.aqara.com/cdn/common/mainland/prd/statics/default")
                .baseDocsUrl("https://cdn.aqara.com/cdn/app/mainland/static/docs/")
                .extensions(extensions)
                .sdkChannel(LumiSDKChannel.CHANNEL_OEM_SDK)
                .userInfo(object : ILumiUserInfo {
                    override fun is12HourFormat(): Boolean {
                        return !DateFormat.is24HourFormat(this@App)
                    }

                    override fun getCountry(): String {
                        return LocationHelper.getCountryCode()
                    }

                    override fun getSupportDeviceArea(): String {
                        return LocationHelper.getSupportDeviceArea()
                    }

                    override fun getCoapServer(): String {
                        return LocationHelper.getFastlinkUrl()
                    }

                    override fun getUserId(): String? {
                        return SessionManager.getInstance().getUser()?.getUserId().orEmpty()
                    }

                    override fun getUserToken(): String? {
                        return SessionManager.getInstance().getUserToken()?.getUserToken().orEmpty()
                    }

                    override fun getArea(): String {
                        return SessionManager.getInstance().getAppConfig()?.getArea().orEmpty()
                    }

                    override fun getLanguage(): String {
                        return LanguageUtil.getLanguage()
                    }
                })
                .build()
        )
    }
}

4.2 关键参数说明

字段 类型 说明 来源
appId String 应用唯一标识 Aqara 开发者平台
appKey String 应用密钥 Aqara 开发者平台
baseImageUrl String 图片资源基础地址 Aqara 平台分配或项目约定
baseDocsUrl String 文档资源基础地址 Aqara 平台分配或项目约定
extensions HashMap<String, String> 扩展配置,如 H5 地址、工具页地址 宿主项目配置
sdkChannel LumiSDKChannel SDK 渠道标识,OEM 场景固定为 CHANNEL_OEM_SDK 宿主设置
is12HourFormat() Boolean 时间制式,决定部分时间展示格式 系统设置
getCountry() String 当前国家码 定位或区域服务
getSupportDeviceArea() String 设备支持接入地区 区域能力服务
getCoapServer() String 局域网配网或 CoAP 服务地址 网络配置服务
getUserId() String? 当前登录用户 ID 宿主登录态
getUserToken() String? 当前登录用户 Token 宿主登录态
getArea() String 当前业务区服 宿主配置中心
getLanguage() String 当前语言 宿主多语言配置

4.3 自动登录

宿主已经拿到用户登录态,并且需要在 SDK 初始化完成后直接恢复账号上下文时,调用账号模块提供的 saveData(...) 方法进行自动登录。

// 自动登录
ARouter.getInstance().navigation(IAccount::class.java)
    ?.saveData(
        token = "",
        userId = "",
        account = "",
        userInfoJson = ""
    )

saveData(...) 方法签名如下:

fun saveData(
    token: String? = "",
    userId: String? = "",
    account: String? = "",
    userInfoJson: String? = ""
)

参数说明:

字段 类型 说明
token String? 用户登录 Token
userId String? 用户唯一标识
account String? 账号信息,填写手机号、邮箱或业务账号
userInfoJson String? 用户扩展信息 JSON 字符串,填写宿主业务透传内容

调用要求:

  1. saveData(...)LumiCoreManager 初始化完成后调用
  2. tokenuserId 应与宿主当前登录态保持一致
  3. 项目没有完整用户信息时,先传 tokenuserIdaccount

4.4 接入要求

  1. 宿主完成账号登录后,确保 SessionManager 中已经具备用户 ID、Token 和区域信息
  2. 如果项目包含多地区、多语言切换,请确保 getArea()getLanguage() 能实时返回当前值
  3. extensions 中的地址统一由 BuildConfig 或配置中心维护,避免硬编码散落在业务代码中
  4. 自动登录或恢复会话时,在统一初始化完成后串联宿主的账号模块

4.5 使用示例项目说明

OEM SDK 使用方式如下:

  1. 通过 LumiCoreManager 完成统一初始化
  2. 使用 LumiCoreSDKConfig.builder() 构建初始化参数
  3. sdkChannel 设置为 LumiSDKChannel.CHANNEL_OEM_SDK
  4. 通过 ILumiUserInfo 将宿主登录态、地区、多语言与时间制式能力注入 SDK
  5. 使用 extensions 补充 OEM 项目的 H5 与工具页扩展地址

完成以上步骤后,宿主工程继续接入看板 OEM SDK 对应页面与业务能力。

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

results matching ""

    No results matching ""