為方便使用,Android 上的 Automation API 提供部分特性的簡化版本。
簡化特徵代表標準 Home API 特徵,運作方式類似外觀模式。簡化版特性能提供指令,讓特定裝置類型更輕鬆地執行常見工作。簡化特徵是 Home API 特徵,與其他 Home API 特徵一樣,適用於 Matter 和 Cloud-to-cloud 裝置。
簡化特性的屬性和指令與對應的標準特性不同,更符合特定裝置的需求。舉例來說,標準 LevelControl 特性是通用特性,可用於任何設定會在一系列數值中持續變化的裝置。Brightness 是簡化的特性,代表 LevelControl,僅提供 DimmableLight 裝置所需的指令和屬性。Brightness 具有 moveToBrightness 指令,可接受單一 brightnessPercent 引數,而 LevelControl 則有多個 move 指令,其中大多數指令至少有四個參數,以因應更廣泛的用途。
下表列出各項簡化特徵和基礎標準特徵。每個特徵名稱都會連結至對應的 API 說明文件:
| 簡化版特徵 | 標準特徵 |
|---|---|
SimplifiedThermostat
|
Thermostat
|
Brightness
|
LevelControl
|
SimplifiedOnOff
|
OnOff
|
Volume
|
LevelControlOnOff
|
簡化特徵和 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) }