Appearance
分布式设备能力管理
鸿蒙设备能力发现、注册、发布与使用。
1. 设备能力管理概述
1.1 核心概念
| 概念 | 说明 | |---|-|-| | 能力发现 | 发现其他设备的能力 | | 能力发布 | 将自身能力暴露给其他设备 | | 能力使用 | 使用其他设备的能力 | | 能力协商 | 设备间能力协商 |
1.2 设备能力类型
设备能力:
├─ 硬件能力
│ ├─ 摄像头
│ ├─ 麦克风
│ ├─ 扬声器
│ ├─ 传感器
│ └─ GPS
├─ 计算能力
│ ├─ CPU
│ ├─ GPU
│ └─ NPU
└─ 存储能力
├─ 可用存储
└─ 带宽2. 能力发现与发布
2.1 发布自身能力
typescript
import { distributedHardware } from '@kit.DistributedHardwareKit'
// 发布设备能力
let capability = {
deviceId: 'my_device',
deviceName: 'My Phone',
deviceType: 'phone',
capabilities: {
camera: {
supported: true,
resolution: ['1920x1080', '1280x720']
},
mic: {
supported: true,
sampleRate: [8000, 16000, 44100]
},
speaker: {
supported: true
},
sensor: {
supported: true,
types: ['accelerometer', 'gyroscope']
}
}
}
await distributedHardware.publishCapabilities(capability)2.2 发现其他设备能力
typescript
// 发现设备能力
distributedHardware.on('capabilityChanged', (deviceId: string, capabilities: any) => {
console.log('设备能力变化:', deviceId, capabilities)
})
// 获取指定设备能力
let capabilities = await distributedHardware.getDeviceCapabilities(targetDeviceId)3. 能力使用
3.1 调用远程能力
typescript
// 使用远程设备的计算能力
let computeResult = await distributedHardware.invokeRemoteService({
deviceId: 'remote_device',
serviceName: 'compute',
data: { operation: 'ai_inference', model: 'resnet50' }
})
// 使用远程设备传感器
let sensorData = await distributedHardware.getSensorData({
deviceId: 'remote_device',
sensorType: 'gyroscope'
})4. 面试高频考点
Q1: 鸿蒙设备能力管理流程?
回答:发现设备 → 获取能力信息 → 发布/订阅能力 → 使用远程能力。
Q2: 如何发布自身设备能力?
回答:通过 distributedHardware.publishCapabilities 暴露摄像头、麦克风、传感器等能力。
🐱 小猫提示:设备能力管理记住 "发现/发布/订阅能力、远程调用、sensor/camera 能力"。