ลักษณะที่เรียบง่ายใน Android

ลักษณะบางรายการมีเวอร์ชันที่เรียบง่ายให้ใช้งานกับ Automation API ใน Android เพื่อให้ใช้งานได้ง่าย

ลักษณะที่เรียบง่ายจะแทนที่ลักษณะ Home API มาตรฐาน ซึ่งคล้ายกับวิธีการทำงานของรูปแบบ Facade ลักษณะที่เรียบง่ายจะมีคำสั่งที่ช่วยให้งานทั่วไปทำได้ง่ายขึ้นสำหรับอุปกรณ์บางประเภท ลักษณะที่เรียบง่ายคือลักษณะของ Home API และเช่นเดียวกับลักษณะอื่นๆ ของ Home API ลักษณะนี้จะใช้ได้กับทั้งอุปกรณ์ Matter และ Cloud-to-cloud

ลักษณะที่เรียบง่ายจะมีชุดย่อยของแอตทริบิวต์และคำสั่งทางเลือกที่เจาะจงอุปกรณ์มากกว่าลักษณะมาตรฐานที่เกี่ยวข้อง เช่น แอตทริบิวต์มาตรฐาน LevelControl เป็นแอตทริบิวต์ทั่วไปที่ใช้กับอุปกรณ์ใดก็ได้ที่มีการตั้งค่าที่เปลี่ยนแปลงอย่างต่อเนื่องในค่าตัวเลขช่วงต่างๆ Brightness เป็นลักษณะที่เรียบง่ายซึ่งใช้แทน LevelControl และระบุเฉพาะคำสั่งและแอตทริบิวต์ที่อุปกรณ์ DimmableLight ต้องการ Brightness มีคำสั่ง moveToBrightness ที่ใช้อาร์กิวเมนต์ brightnessPercent รายการเดียว ส่วน LevelControl มีคำสั่ง move หลายรายการ ซึ่งส่วนใหญ่มีพารามิเตอร์อย่างน้อย 4 รายการเพื่อให้รองรับ Use Case ที่หลากหลายมากขึ้น

ตารางต่อไปนี้แสดงลักษณะที่เรียบง่ายแต่ละรายการและลักษณะมาตรฐานที่เกี่ยวข้อง ชื่อลักษณะแต่ละรายการจะลิงก์ไปยังเอกสารประกอบ API ที่เกี่ยวข้อง

ตาราง: ลักษณะที่เรียบง่าย
ลักษณะที่เข้าใจง่าย ลักษณะมาตรฐาน
SimplifiedThermostat Thermostat
Brightness LevelControl
SimplifiedOnOff OnOff
Volume LevelControl
OnOff

ลักษณะที่เรียบง่ายและ Discovery API

Discovery API จะรายงานลักษณะที่เรียบง่ายและลักษณะมาตรฐานที่เกี่ยวข้อง ตราบใดที่ลักษณะทั้ง 2 รายการได้รับการลงทะเบียนใน FactoryRegistry เช่น หากมีอุปกรณ์ DimmableLight อยู่ในโครงสร้าง และผู้พัฒนาแอปลงทะเบียนทั้งลักษณะ LevelControl และ Brightness ใน FactoryRegistry แล้ว Discovery API จะระบุลักษณะทั้ง 2 รายการ นักพัฒนาแอปสามารถเลือกใช้ลักษณะใดลักษณะหนึ่งในการทำงานอัตโนมัติ

ดูข้อมูลเพิ่มเติมได้ที่ Discovery API ใน Android

เรียกข้อมูลอุปกรณ์ที่รองรับ Trait แบบง่าย

เมื่อใช้ Device API เพื่อรับอุปกรณ์ในโครงสร้างที่รองรับลักษณะที่เรียบง่าย เช่น SimplifiedThermostat คุณจะใช้เมธอด has(trait) ไม่ได้ แต่ให้ใช้เมธอด has(deviceType) แทน

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