展示如何管理设备能力,包括设备发现、设备信息获取、分布式数据同步等核心功能
API级别: API 9+ | 项目路径: HarmonyOS_NEXT/DeviceManagement/DeviceManagementCollection
设备管理是HarmonyOS分布式能力的基础,本示例展示了设备发现、列表展示、信息获取等核心功能。
import deviceManager from '@ohos.deviceManager';
let dmClass: deviceManager.DeviceManager | null = null;
// 创建设备管理器
dmClass = deviceManager.createDeviceManager('com.example.myapp');
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);
}
}
getDeviceInfo(deviceId: string) {
let deviceInfo = this.dmClass.getDeviceInfo(deviceId);
return deviceInfo;
}
getDeviceCapabilities(deviceId: string) {
let capabilities = this.dmClass.getDeviceCapabilities(deviceId);
return capabilities;
}
aboutToDisappear() {
if (this.dmClass) {
this.dmClass.release();
this.dmClass = null;
}
}
| 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"
}
]
}
}
• 组件销毁时必须释放设备管理器
• 分布式功能需要申请相关权限
• 合理控制设备发现范围和频率
• 需要处理设备离线情况
📎 官方仓库链接