Google Home API สำหรับ Android มี API แบบรวมเพื่อช่วยให้นักพัฒนาแอปโต้ตอบกับสถานะของเอนทิตีในบ้านของผู้ใช้ได้ เอนทิตีเหล่านี้สามารถอธิบายอุปกรณ์และข้อมูลที่ไม่ใช่อุปกรณ์ซึ่งเชื่อมโยงกับโครงสร้างและห้องของผู้ใช้
Home API จะกำหนดเอนทิตีต่อไปนี้ที่ผู้ใช้โต้ตอบได้
- โครงสร้างแสดงถึงบ้านที่มีห้องและอุปกรณ์
- ห้องเป็นส่วนหนึ่งของโครงสร้างและมีอุปกรณ์
- อุปกรณ์จะใช้ลักษณะที่มีแอตทริบิวต์ ปฏิบัติตามประเภท ส่ง เหตุการณ์ และตอบสนองต่อคำสั่ง
- การทำงานอัตโนมัติเป็นส่วนหนึ่งของโครงสร้างและใช้ข้อมูลเมตาและอุปกรณ์ในบ้านเพื่อ ตั้งค่าให้งานต่างๆ ในบ้านทำงานโดยอัตโนมัติ
รูปที่ 1 แสดงสถาปัตยกรรมนี้
ประเภทอุปกรณ์ Home API อาจได้รับการสนับสนุนจาก Matter ซึ่งเป็นมาตรฐานเปิดสำหรับ สมาร์ทโฮม หรืออาจเป็นอุปกรณ์ Cloud-to-cloud ในระบบนิเวศของ Google Home อุปกรณ์บางประเภทอาจรวมฟังก์ชันการทำงานจากทั้ง 2 อย่างไว้ด้วยกัน ดูข้อมูลเพิ่มเติมได้ที่ ประเภทอุปกรณ์ที่รองรับใน Android
ใน Matter ฟังก์ชันการทำงานของอุปกรณ์จะจัดกลุ่มตามคลัสเตอร์ ซึ่งแสดงใน Home API เป็นMatter ลักษณะมาตรฐาน Home API รองรับชุดมาตรฐานของคลัสเตอร์ Matter ตามที่กำหนดไว้ในข้อกำหนด Matter ปัจจุบัน
ในระบบนิเวศของ Google Home ฟังก์ชันการทำงานของอุปกรณ์จะจัดกลุ่มตามลักษณะสมาร์ทโฮม ซึ่งแสดงใน Home API เป็นลักษณะสมาร์ทโฮมของ Google Home API รองรับชุดลักษณะของสมาร์ทโฮมตามที่กำหนดไว้ในโปรแกรม Cloud-to-cloud
นอกจากนี้ยังมีลักษณะอื่นๆ เช่น คลัสเตอร์เฉพาะผู้ผลิตและลักษณะของแพลตฟอร์ม หากต้องการดูข้อมูลเพิ่มเติม โปรดดูโมเดลข้อมูลใน Android
ระบบนิเวศ
ระบบนิเวศของ Google Home เป็นรากฐานที่มีประสิทธิภาพสำหรับการสร้าง การจัดการ การรักษาความปลอดภัย และการผสานรวมประสบการณ์การใช้งานสมาร์ทโฮม รูปที่ 2 แสดงให้เห็นว่า คอมโพเนนต์ทั้งหมดทำงานร่วมกันอย่างไร
ระบบนิเวศนี้มี Google Automation Engine ซึ่งจัดเก็บและเรียกใช้การทำงานอัตโนมัติที่ช่วยให้คุณตั้งค่าอุปกรณ์และการตั้งค่าอื่นๆ ในบ้านให้ทำงานโดยอัตโนมัติได้
Home APIs ใช้ OAuth 2.0 เพื่อให้สิทธิ์เข้าถึงอุปกรณ์ในโครงสร้าง OAuth ช่วยให้ผู้ใช้ให้สิทธิ์ แก่แอปหรือบริการได้โดยไม่ต้องเปิดเผยข้อมูลเข้าสู่ระบบ
Google Home Developer Console ใช้เพื่อจัดการทุกขั้นตอนของโปรเจ็กต์ Home APIs ตั้งแต่การยืนยันแบรนด์ การพัฒนา การทดสอบ และการรับรอง ไปจนถึง การเปิดตัวในที่สุด ซึ่งจะช่วยปรับปรุงกระบวนการพัฒนาให้มีประสิทธิภาพยิ่งขึ้น พร้อมมอบ เครื่องมือที่มีประสิทธิภาพและการจัดจำหน่ายผ่านระบบนิเวศของ Google Home
ภาษา
Home API สำหรับ Android เขียนด้วย Kotlin และมีอินเทอร์เฟซ Kotlin ที่เป็นสำนวนซึ่งใช้ Flow เพื่อจัดการสถานะและการสมัครใช้บริการ ซึ่งมีข้อดีหลายประการเหนือกว่า API การสมัครใช้บริการมาตรฐาน
เราขอแนะนำให้คุณทำความคุ้นเคยกับเอกสารประกอบ Kotlin เกี่ยวกับ Coroutine, Flow และ Jetpack Compose หากยังไม่เคยทำ
- พัฒนาแอป Android ด้วย Kotlin
- เรียนรู้ Kotlin สำหรับ Android
- Kotlin Coroutines ใน Android Codelab ต่อไปนี้อาจมีประโยชน์
- Kotlin Flow ใน Android และโดยเฉพาะอย่างยิ่ง StateFlow
- สถานะและ Jetpack Compose โดยเฉพาะฟังก์ชัน
collectAsStateWithLifecycle()ฟังก์ชันนี้จะจัดการการ ติดตามและยกเลิกการติดตามโฟลว์โดยอัตโนมัติ โดยพิจารณาว่า UI ที่แสดงสถานะนั้น อยู่เบื้องหน้าจริงหรือไม่ - หากคุณกำลังทำงานกับ Automation API การอ่านเกี่ยวกับ ตัวสร้างที่ปลอดภัยต่อประเภทของ Kotlin จะเป็นประโยชน์ในการทำความเข้าใจวิธีที่ Automation DSL ทำงาน
ตัวระบุเอนทิตี
เอนทิตีแต่ละรายการใน Home API มีรหัสซึ่งแสดงถึงตัวระบุหลัก รหัสนี้เป็นตัวระบุที่ไม่ซ้ำกันและเสถียรซึ่งจะไม่เปลี่ยนแปลง ตลอดอายุการใช้งานของเอนทิตี คุณสามารถใช้รหัสนี้เพื่อแคชออบเจ็กต์หรือตรวจสอบ ความเท่ากันได้เนื่องจากข้อมูลเมตาของเอนทิตีอาจเปลี่ยนแปลง
ดูอินเทอร์เฟซ HasId เพื่อดูว่าเอนทิตีใดมีรหัส
การแมปคำศัพท์
เอนทิตีใน Home API จะแมปกับแนวคิด Matter และ Cloud-to-cloud ดังนี้
| API สำหรับ Home | Matter | Cloud-to-cloud |
|---|---|---|
| ลักษณะภาษา | คลัสเตอร์ | ลักษณะภาษา |
| แอตทริบิวต์ | แอตทริบิวต์ | แอตทริบิวต์ สถานะ |
| คำสั่ง | คำสั่ง | คำสั่ง |
| กิจกรรม | กิจกรรม | การตอบกลับติดตามผล การแจ้งเตือน |