Android 上的簡化特徵

為方便使用,部分特徵的簡化版本可與 Android 上的 Automation API 搭配使用。

簡化特徵會取代標準 Home API 特徵,類似於外觀模式的運作方式。簡化特徵會提供指令,方便特定裝置類型執行常見工作。簡化特徵是 Home API 特徵,與其他 Home API 特徵一樣,適用於 MatterCloud-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 中註冊了 LevelControlBrightness 特徵,Discovery API 就會指出這兩個特徵的存在。開發人員可以在自動化程序中選擇使用任一特徵。

詳情請參閱「Android 上的 Discovery API」。

擷取支援簡化特徵的裝置

使用 Device API 取得支援簡化特徵 (例如 SimplifiedThermostat) 的結構體中的裝置時,無法使用 has(trait) 方法。請改用 has(deviceType) 方法:

val thermostat = home.devices().list().first { device -> device.has(ThermostatDevice) }