السمات المبسّطة على Android

لتسهيل الاستخدام، تتوفّر إصدارات مبسّطة من بعض السمات للاستخدام مع واجهة Automation API على Android.

تحلّ السمة المبسّطة محلّ سمة عادية في واجهة برمجة تطبيقات Home، على غرار طريقة عمل نمط الواجهة. توفّر السمات المبسّطة أوامر تسهّل تنفيذ المهام الشائعة لأنواع معيّنة من الأجهزة. السمات المبسّطة هي سمات واجهة برمجة التطبيقات Home API، ومثل سمات واجهة برمجة التطبيقات Home API الأخرى، تعمل هذه السمات مع كل من أجهزة Matter وCloud-to-cloud.

تقدّم السمة المبسّطة مجموعة فرعية بديلة من السمات والأوامر التي تكون أكثر تحديدًا للجهاز من تلك الخاصة بالسمة العادية المقابلة. على سبيل المثال، السمة العادية LevelControl هي سمة عامة يمكن استخدامها لأي جهاز يتضمّن إعدادًا يتغيّر باستمرار على مستوى مجموعة من القيم الرقمية. Brightness هي سمة مبسّطة تمثّل LevelControl وتوفّر فقط الأوامر والسمات التي يتطلّبها جهاز DimmableLight. يحتوي Brightness على أمر moveToBrightness يأخذ وسيطة brightnessPercent واحدة، بينما يحتوي LevelControl على أوامر move متعددة، يحتوي معظمها على أربع مَعلمات على الأقل من أجل استيعاب نطاق أوسع من حالات الاستخدام.

يوضّح الجدول التالي كل سمة مبسّطة والسمات العادية الأساسية. يرتبط كل اسم سمة بمستندات واجهة برمجة التطبيقات المقابلة:

الجدول: السمات المبسّطة
سمة مبسّطة سمة عادية
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) }