為方便使用,部分特徵的簡化版本可與 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) }