لتسهيل الاستخدام، تتوفّر إصدارات مبسّطة من بعض السمات لاستخدامها مع واجهة برمجة التطبيقات Automation API على Android.
تُستخدَم السمة المبسّطة بدلاً من سمة Home API عادية، تمامًا مثل نمط الواجهة. توفّر السمات المبسّطة أوامر تسهّل المهام الشائعة لأنواع معيّنة من الأجهزة. السمات المبسّطة هي سمات Home API، وتعمل على كل من أجهزة Matter و Cloud-to-cloud، تمامًا مثل سمات Home API الأخرى.
تقدّم السمة المبسّطة مجموعة فرعية بديلة من السمات والأوامر التي
تكون أكثر تخصيصًا للأجهزة مقارنةً بالسمة العادية المقابلة لها.
على سبيل المثال، السمة العادية
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 إلى توفُّر سمتَي FactoryRegistry
. يمكن للمطوّر اختيار استخدام أيّ من السمتَين في عملية التشغيل الآلي.
اطّلِع على Discovery API على Android للحصول على مزيد من المعلومات.
استرداد جهاز متوافق مع سمة مبسّطة
عند استخدام Device API للحصول على الأجهزة في بنية تتيح استخدام سمة
مبسّطة مثل SimplifiedThermostat
، لا يمكنك استخدام has(trait)
الطريقة. بدلاً من ذلك، استخدِم الطريقة has(deviceType)
:
val thermostat = home.devices().list().first { device -> device.has(ThermostatDevice) }