Android 上的簡化特徵

為方便使用,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 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) }