Matter 设备接入准备

更新时间:2024-02-21 07:25:23

由于 Matter 设备的特性,其一切能力都建立在 Matter Fabric 网络之上。在使用 Matter 设备配网和控制管理等功能前,您需要调用相关接口进行 Matter 基础信息配置。该配置操作需要在进行 Matter 相关业务处理前完成。

Fabric 是 Matter 定义的同一安全域下节点(即设备)的集合,在该安全域下节点能够彼此认证建立安全通信。一个 Fabric 共享同一证书机构(Certificate Authority,CA)的根证书(Root of Trust),同时约定一个 Fabric ID。

限制条件

  • 前提条件

    在开始之前,请确保您已经完成 SDK 的 快速集成 工作。

  • 支持范围

    支持 Matter 协议的设备。

  • 设备要求

    • 操作系统:Android M(6.0,API 级别 23 或更高版本)

    • 所需权限:蓝牙权限、定位权限、Wi-Fi 权限

      若您需要使用 UI 业务包,请确保您集成的智能生活 App SDK 版本和 UI 业务包版本保持一致,以确保配网、控制的稳定。

配置时序

配置时序如下图所示:

UserAppSDK首次加载家庭或者切换家庭加载家庭信息返回家庭信息加载设备列表返回设备列表Matter 能力处理阶段Fabric 信息准备加载 Fabric 信息完成设备信息准备设备信息准备 完成使用 Matter 能力UserAppSDK

Fabric 信息准备

Matter 相关的信息与家庭相关联,因此需在 家庭切换完成家庭首次加载完成 时,调用 - initFabric 查询该家庭对应的 Fabric 信息。

API

void initFabric( Context context, long gid, IThingDataCallback<OpenFabricInfo> callback);

参数说明

参数 说明
Context 上下文 context
gid 当前家庭 HomeID
callback 回调

示例代码

IThingMatterFabricManager fabricManager = ThingHomeSdk.getFabricManager();
fabricManager.initFabric(getContext(), spaceId, new IThingDataCallback<OpenFabricInfo>() {
     @Override
     public void onSuccess(OpenFabricInfo result) {

    }

    @Override
    public void onError(String errorCode, String errorMessage) {

    }
});

设备信息准备

Matter 设备的信息相较于其他类型的设备,有部分信息需要提前处理,必须在 家庭设备Fabric 信息准备 两者加载完成后,调用 getDevicesFabricNodes 处理家庭下的 Matter 设备。

API

void getDevicesFabricNodes(Set<String> devIds, IThingDataCallback<ArrayList<DeviceNodeBean>> listener);

参数说明

参数 说明
devIds 设备 ID 列表

示例代码

List<DeviceBean> deviceList = homeBean.getDeviceList();
Set<String> devIds = new HashSet<>();
devIds.add(deviceBean.getDevId());
fabricManager.getDevicesFabricNodes(devIds, new IThingDataCallback<ArrayList<DeviceNodeBean>>() {
@Override
public void onSuccess(ArrayList<DeviceNodeBean> result) {

}

@Override
public void onError(String errorCode, String errorMessage) {

}
});