为了便于使用,我们提供了部分特征的简化版本,以便在 Android 上与 Automation API 搭配使用。
简化版特征可替代标准 Home API 特征,类似于外观模式的工作方式。简化版特征提供的命令可让某些设备类型更轻松地完成常见任务。简化版特征是 Home API 特征,与其他 Home API 特征一样,它们适用于 Matter 和 Cloud-to-cloud 设备。
简化版特征提供了一组替代属性和命令,与对应的标准版特征相比,这些属性和命令更具设备专用性。例如,标准 LevelControl
特征是一种通用特征,可用于任何具有可在一定数值范围内持续变化的设置的设备。Brightness
是一个简化的特征,可替代 LevelControl
,仅提供 DimmableLight
设备所需的命令和属性。Brightness
具有 moveToBrightness
命令,该命令采用单个 brightnessPercent
实参,而 LevelControl
具有多个 move
命令,其中大多数命令至少有 4 个形参,以便适应更广泛的应用场景。
下表显示了每个简化版特征以及对应的底层标准特征。每个特征名称都链接到相应的 API 文档:
简化版特征 | 标准特征 |
---|---|
SimplifiedThermostat
|
Thermostat
|
Brightness
|
LevelControl
|
SimplifiedOnOff
|
OnOff
|
Volume
|
LevelControl OnOff
|
简化版特征和 Discovery API
只要简化特征及其底层标准特征均已在 FactoryRegistry
中注册,Discovery API 就会报告这两个特征。例如,如果结构中存在 DimmableLight
设备,并且开发者在 FactoryRegistry
中注册了 LevelControl
和 Brightness
特征,则 Discovery API 会指示这两个特征均存在。开发者可以选择在自动化中使用任一特征。
如需了解详情,请参阅 Android 上的 Discovery API。
检索支持简化版特征的设备
使用 Device API 获取支持简化特征(例如 SimplifiedThermostat
)的结构中的设备时,您无法使用 has(trait)
方法。请改用 has(deviceType)
方法:
val thermostat = home.devices().list().first { device -> device.has(ThermostatDevice) }