---
name: "SmartDevicesManager.init"
mode: "api"
versionRequirements:
  - { name: "@ray-js/panel-sdk", version: "1.16.0" }
title: "init"
summary: "多设备管理器 init 方法说明，介绍如何启动 SmartDevicesManager 的全局事件监听，并在添加设备前预先建立多设备管理监听能力。"
---

## SmartDevicesManager.init

> [VERSION] @ray-js/panel-sdk >= 1.16.0

> 💡 add / batchAdd 会自动调用 init()，因此如需在添加设备前预先注册全局监听（如监听 change 事件），可先手动调用一次 init()。

### 描述

开始监听全局事件（Ray 全局 DP/上下线等），幂等调用。

### 参数

无


### 返回值

无


### 示例代码

#### 预先注册全局监听

```ts
import React, { useEffect } from 'react';
import { SmartDevicesManager, SdmProvider } from '@ray-js/panel-sdk';

const deviceManager = new SmartDevicesManager();

export default function App({ children }) {
  useEffect(() => {
    deviceManager.init(); // 开始监听全局事件
    return () => {
      deviceManager.destroy(); // 组件卸载时清理
    };
  }, []);

  return (
    <SdmProvider deviceManager={deviceManager} isNeedMainDeviceInitialized={false}>
      {children}
    </SdmProvider>
  );
}
```
