Android için Google Home API'leri, geliştiricilerin kullanıcının evindeki varlıkların durumuyla etkileşim kurmasını sağlamak için birleşik bir API yüzeyi sunar. Bu öğeler, bir kullanıcının yapısı ve odalarıyla ilişkili cihazları ve cihaz dışı bilgileri açıklayabilir.
Home API'leri, kullanıcının etkileşimde bulunabileceği aşağıdaki öğeleri tanımlar:
- Yapılar, odalar ve cihazlar içeren bir evi temsil eder.
- Odalar bir yapının parçasıdır ve cihazları içerir.
- Cihazlar, özellikler içeren özellikleri uygular, türlere uyar, etkinlikler yayınlar ve komutlara yanıt verir.
- Otomasyonlar, bir yapının parçasıdır ve evdeki görevleri otomatikleştirmek için ev meta verilerini ve cihazlarını kullanır.
Şekil 1'de bu mimari gösterilmektedir:
Home API cihaz türleri, akıllı ev için açık bir standart olan Matter tarafından desteklenebilir veya Google Home ekosisteminde bir Cloud-to-cloud cihazı olabilir. Bazı cihaz türleri her ikisinin de işlevlerini içerebilir. Daha fazla bilgi için Android'de desteklenen cihaz türleri başlıklı makaleyi inceleyin.
Matter bölümünde cihaz işlevleri, kümeler halinde gruplandırılır. Bu kümeler, Home API'lerinde Matter standart özellikleri olarak gösterilir. Home API'leri, mevcut Matter spesifikasyonunda tanımlandığı gibi standart Matter kümelerini destekler.
Google Home ekosisteminde cihaz işlevleri, akıllı ev özellikleri temelinde gruplandırılır. Bu özellikler, Home API'lerinde Google akıllı ev özellikleri olarak gösterilir. Home API'leri, Cloud-to-cloud programında tanımlanan akıllı ev özelliklerini destekler.
Üreticiye özel kümeler ve platform özellikleri gibi diğer özellikler de kullanılabilir. Daha fazla bilgi için Android'deki veri modeli başlıklı makaleyi inceleyin.
Dil
Android için Home API'leri Kotlin ile yazılmıştır ve durumu ve aboneliği yönetmek için Flow'u kullanan deyimsel bir Kotlin arayüzü sağlar. Bu, standart bir abonelik API'sine göre çeşitli avantajlar sağlar.
Henüz yapmadıysanız eş yordamlar, akış ve Jetpack Compose ile ilgili Kotlin belgelerini incelemenizi öneririz:
- Kotlin ile Android uygulamaları geliştirme
- Android için Kotlin'i öğrenin
- Android'de Kotlin eş yordamları. Aşağıdaki codelab'ler yararlı olabilir:
- Android'de Kotlin akışları ve daha spesifik olarak StateFlow.
- State ve Jetpack Compose, özellikle
collectAsStateWithLifecycle()
işlevi. Bu işlev, durumu gösteren kullanıcı arayüzünün gerçekten ön planda olup olmadığına bağlı olarak akışlara abone olma ve akışlardan çıkma işlemlerini otomatik olarak yönetir. - Automation API ile çalışıyorsanız Automation DSL'nin nasıl çalıştığını anlamak için Kotlin tür güvenli oluşturucular hakkında bilgi edinmeniz faydalı olur.
Varlık tanımlayıcıları
Home API'lerindeki her varlığın, birincil tanımlayıcısını temsil eden bir kimliği vardır. Bu kimlik, öğenin ömrü boyunca asla değişmeyecek benzersiz ve sabit bir tanımlayıcıdır. Bu kimlik, nesneleri önbelleğe almak veya bir öğenin meta verileri değişebileceğinden eşitliği kontrol etmek için kullanılabilir.
Hangi öğelerin kimliği olduğunu öğrenmek için HasId
arayüzüne bakın.
Terminoloji eşleme
Home API'lerindeki öğeler, Matter ve Cloud-to-cloud kavramlarıyla aşağıdaki şekilde eşlenir:
Home API'leri | Matter | Cloud-to-cloud |
---|---|---|
Özellik | Küme | Özellik |
Özellik | Özellik | Özellik, Durum |
Komut | Komut | Komut |
Etkinlik | Etkinlik | Takip yanıtı, Bildirim |