برای سهولت استفاده، نسخههای سادهشده برخیاز مشخصهها برای استفاده با «میانای برنامهسازی کاربردی خودکارسازی» در Android دردسترس است.
ویژگی سادهشده جایگزین ویژگی استاندارد «میانای برنامهسازی کاربردی خانه» میشود، مشابه نحوه عملکرد الگوی نمای ساختمان. مشخصههای سادهشده فرمانهایی را ارائه میدهند که انجام کارهای متداول را برای انواع خاصی از دستگاهها آسانتر میکند. ویژگیهای سادهشده ویژگیهای 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
Discovery API ویژگیهای سادهشده و همچنین ویژگیهای استاندارد زیربنایی آنها را گزارش میکند، بهشرطی که هر دو ویژگی در FactoryRegistry ثبت شده باشند. برای مثال، اگر دستگاه DimmableLight در ساختار وجود داشته باشد و توسعهدهنده هر دو ویژگی LevelControl و Brightness را در FactoryRegistry ثبت کرده باشد، «میانای برنامهسازی کاربردی کاوش» وجود هر دو ویژگی را نشان میدهد. توسعهدهنده میتواند انتخاب کند که از کدام ویژگی در خودکارسازیاش استفاده کند.
برای اطلاعات بیشتر، میانای برنامهسازی کاربردی «اکتشاف» در Android را ببینید.
بازیابی دستگاهی که از ویژگی سادهشده پشتیبانی میکند
هنگام استفاده از «میانای برنامهسازی کاربردی دستگاه» برای دریافت دستگاهها در ساختاری که از مشخصه سادهشدهای مثل SimplifiedThermostat پشتیبانی میکند، نمیتوانید از روش has(trait)
استفاده کنید. درعوض، از روش has(deviceType) استفاده کنید:
val thermostat = home.devices().list().first { device -> device.has(ThermostatDevice) }