Matter垂直品类SDK使用

一、概述

本文主要介绍如何使用Matter垂直品类SDK对Aqara Matter中枢进行配网,以及对Matter子设备进行配网。

PS:当前Matter子设备无法直接通过SDK配网接入,需要借助Aqara Matter中枢(使用Aqara私有协议Magic Pair配网)进行接入后,才可以进行设备配网与控制

二、前置条件

  1. 完成准备工作
  2. 完成环境搭建
  3. 完成Matter垂直品类SDK集成

三、使用

Matter子设备的配网及设备控制,依赖于Aqara Matter中枢,因此需要先入网一个Aqara Matter中枢后,才能进行Matter子设备配网及控制。

3.1 初始化配网信息

LumiAccessSDKManager.getInstance().setAccessInfo(
    positionId,
    coapServer,
    false,
    object : LumiResultCallBack {
        override fun fail(errorCode: Int?, errorMessage: String?) {
            Log.e(TAG, "fail: errorCode=$errorCode,errorMessage=$errorMessage")
        }

        override fun success(activity: WeakReference<Activity>, message: String?) {
            Log.e(TAG, "success: message=$message")
        }
    }
)

参数说明

字段 数据类型 描述 获取渠道
positionId String 房间位置 接口获取,详情参见Aqara开发者平台
coapServer String 设备接入服务器 接口获取,详情参见Aqara开发者平台

3.2 Aqara Matter中枢配网

LumiAccessSDKManager.getInstance().gotoAccessConfigModule(
    this,
    "deviceModel",
    object : LumiResultCallBack {
        override fun fail(errorCode: Int?, errorMessage: String?) {
            Log.e(TAG, "fail: errorCode=$errorCode,errorMessage=$errorMessage")
        }

        override fun success(activity: WeakReference<Activity>, message: String?) {
            Log.e(TAG, "success: message=$message")
        }
    }
)

参数说明

字段 数据类型 描述 获取渠道
deviceModel String 设备模型值 参见附录支持的Aqara Matter中枢设备清单

3.3 Aqara Matter中枢设备控制

LumiReactNativeManager.getInstance().startRNPage("deviceModel", "deviceId")

参数说明

字段 数据类型 描述 获取渠道
deviceModel String 设备模型值 参见附录支持的Aqara Matter中枢设备清单
deviceId String 设备Id 设备配网成功后,会生成该设备id

3.4 Matter子设备配网

LumiAccessSDKManager.getInstance().gotoAccessPageByMatter(
    object : LumiResultCallBack {
        override fun fail(errorCode: Int?, errorMessage: String?) {
            Log.e(TAG, "fail: errorCode=$errorCode,errorMessage=$errorMessage")
        }

        override fun success(activity: WeakReference<Activity>, message: String?) {
            Log.e(TAG, "success: message=$message")
        }
    }
)

参数说明

字段 数据类型 描述 获取渠道
matterDeviceModel String 设备模型值 参见附录支持的Matter子设备清单
targetGatwayDeviceId String 设备Id Matter子设备绑定的Matter中枢的设备Id,该字段可以为空,为空的话会自动查询当前网关列表以供选择

3.5 Matter子设备控制

LumiReactNativeManager.getInstance().startRNPage("aqara.matter.devices", "deviceId")

注意:Matter子设备统一使用aqara.matter.devices作为DeviceModel的参数传入。

参数说明

字段 数据类型 描述 获取渠道
deviceId String 设备Id 设备配网成功后,会生成该设备id

3.6 事件监听

当用户在页面操作的过程中,点击某些按钮亦或者满足其他条件时,可以通过事件监听器来获得事件回调。例如点击按钮跳转到宿主App中的页面,或者第三方自定义的事件

3.6.1 注册&解绑

//注册
LumiReactNativeSDK.getInstance().registerRNMessageCallback(object :IRNMessageCallback{
    override fun onHandleMessage(jsonMessage: String, promise: Promise?) {
       //To Do Something
    }
})    

//解绑
LumiReactNativeSDK.getInstance().unregisterRNMessageCallback()

3.6.2 常见事件列表

事件 类型 描述
action_access_success 通知 设备入网成功后的事件,第三方App可以做一些自己的业务
AddGatewway 通知 绑定网关时,如果该账号下没有网关,会触发该事件,第三方App自行处理

3.7 RN插件

3.7.1 依赖本地插件文件

Matter SDK支持加载本地的插件文件,仅需将对应的文件放在目录中即可。

插件文件请放在assets/lumiRNPrefab/bundle目录中

依赖本地插件的情况下,不会从云端进行插件更新,如需更新,则需要开发自行将新版本的RN插件放到assets目录中,重新进行打包发版。

3.7.2 依赖远程插件文件

Matter SDK支持加载放在服务器的远程插件文件,并且支持热更新,可以与本地插件配合使用。

该功能涉及到远程插件文件的管理及下发,暂时不对外使用,如有需求,请联系商务。

lumi LogoCopyright © 2023 深圳绿米联创科技有限公司 all right reserved,powered by Gitbook文档修改时间: 2025-10-27 16:56:31

results matching ""

    No results matching ""