ลักษณะที่เรียบง่ายใน 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

ดึงข้อมูลอุปกรณ์ที่รองรับลักษณะที่ลดความซับซ้อน

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

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