← 返回首页
分布式

📱 Device 设备管理

展示如何管理设备能力,包括设备发现、设备信息获取、分布式数据同步等核心功能

API级别: API 9+ | 项目路径: HarmonyOS_NEXT/DeviceManagement/DeviceManagementCollection

📋 项目简介

设备管理是HarmonyOS分布式能力的基础,本示例展示了设备发现、列表展示、信息获取等核心功能。

核心功能

💻 核心代码示例

1. 创建设备管理器

import deviceManager from '@ohos.deviceManager';

let dmClass: deviceManager.DeviceManager | null = null;

// 创建设备管理器
dmClass = deviceManager.createDeviceManager('com.example.myapp');

2. 开始设备发现

startDeviceDiscovery() {
  try {
    this.dmClass = deviceManager.createDeviceManager('com.example.myapp');
    
    // 设备发现回调
    this.dmClass.on('deviceFound', (deviceInfos) => {
      console.log('发现设备:', JSON.stringify(deviceInfos));
      this.deviceList = deviceInfos;
    });
    
    // 设备离线回调
    this.dmClass.on('deviceOffline', (deviceInfo) => {
      console.log('设备离线:', JSON.stringify(deviceInfo));
    });
    
    // 开始发现
    this.dmClass.startDeviceDiscovery({
      discoverTargetType: 1  // 发现同WiFi下的设备
    });
  } catch (err) {
    console.error('设备发现失败:', err);
  }
}

3. 获取设备信息

getDeviceInfo(deviceId: string) {
  let deviceInfo = this.dmClass.getDeviceInfo(deviceId);
  return deviceInfo;
}

4. 获取设备能力

getDeviceCapabilities(deviceId: string) {
  let capabilities = this.dmClass.getDeviceCapabilities(deviceId);
  return capabilities;
}

5. 释放资源

aboutToDisappear() {
  if (this.dmClass) {
    this.dmClass.release();
    this.dmClass = null;
  }
}

🔧 核心API

API说明
createDeviceManager()创建设备管理器
startDeviceDiscovery()开始设备发现
stopDeviceDiscovery()停止设备发现
getDeviceInfo()获取设备信息
getDeviceCapabilities()获取设备能力
on('deviceFound')设备发现事件
on('deviceOffline')设备离线事件
release()释放设备管理器

📱 设备类型

类型值说明
0未知
1手机
2平板
3智慧屏
4手表
5车机

🔐 权限配置

// module.json5
{
  "module": {
    "requestPermissions": [
      {
        "name": "ohos.permission.DISTRIBUTED_DATASYNC"
      },
      {
        "name": "ohos.permission.GET_DISTRIBUTED_DEVICE_INFO"
      },
      {
        "name": "ohos.permission.MANAGE_DISTRIBUTED_DEVICE_INFO"
      }
    ]
  }
}

⚠️ 注意事项

• 组件销毁时必须释放设备管理器

• 分布式功能需要申请相关权限

• 合理控制设备发现范围和频率

• 需要处理设备离线情况

🔗 参考资料

📎 官方仓库链接