ویژگی‌های ساده‌شده در Android

برای سهولت استفاده، نسخه‌های ساده‌شده برخی‌از ویژگی‌ها برای استفاده با Automation API در Android دردسترس است.

یک مشخصه ساده‌شده جایگزین مشخصه استاندارد 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

‫Discovery API ویژگی‌های ساده‌شده و همچنین ویژگی‌های استاندارد زیربنایی آن‌ها را گزارش می‌کند، به‌شرطی که هر دو ویژگی در FactoryRegistry ثبت شده باشند. برای مثال، اگر دستگاه DimmableLight در ساختار وجود داشته باشد و توسعه‌دهنده هر دو مشخصه LevelControl و Brightness را در FactoryRegistry ثبت کرده باشد، Discovery API وجود هر دو مشخصه را نشان می‌دهد. توسعه‌دهنده می‌تواند انتخاب کند که از کدام ویژگی در خودکارسازی‌اش استفاده کند.

برای اطلاعات بیشتر، Discovery API در Android را ببینید.

بازیابی دستگاهی که از ویژگی ساده‌شده پشتیبانی می‌کند

هنگام استفاده از Device API برای دریافت دستگاه‌ها در ساختاری که از مشخصه ساده‌شده‌ای مانند SimplifiedThermostat پشتیبانی می‌کند، نمی‌توانید از روش has(trait) استفاده کنید. درعوض، از روش has(deviceType) استفاده کنید:

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