Android 適用的 Home API 總覽

Android 適用的 Google Home API 提供統一的 API 介面,可讓開發人員與使用者住家中的實體狀態互動。這些實體可以描述與使用者住家和房間相關聯的裝置和非裝置資訊。

Home API 定義了使用者可互動的下列實體:

  • 結構代表包含房間和裝置的住家。
  • 房間是架構的一部分,內含裝置。
  • 裝置會實作包含屬性的特徵、符合類型、發出事件,以及回應指令。
  • 自動化動作是結構的一部分,會使用住家相關中繼資料和裝置,自動執行住家中的工作。

圖 1 說明此架構:

圖表:Android 應用程式的 Home API 架構
圖 1:Android 應用程式的住家 API 架構

Home API 裝置類型可能由Matter (智慧住宅開放標準) 支援,也可能是 Google Home 生態系統中的 Cloud-to-cloud 裝置。部分裝置類型可能會同時採用這兩種技術的功能。詳情請參閱「Android 支援的裝置類型」。

Matter 中,裝置功能會依叢集分組,並以 Matter 標準特徵的形式呈現於 Home API。Home API 支援目前 Matter 規格中定義的標準叢集集。Matter

在 Google Home 生態系統中,裝置功能會依智慧住宅特徵分組,這些特徵在 Home API 中會以 Google 智慧住宅特徵表示。Home API 支援 Cloud-to-cloud 計畫中定義的一組智慧住宅特徵。

此外,您也可以使用其他特徵,例如製造商專屬叢集和平台特徵。詳情請參閱「Android 上的資料模型」。

生態系統

Google Home 生態系統提供簡化的基礎架構,方便您建構、管理、保護及整合智慧住宅體驗。圖 2 顯示所有元件如何協同運作。

顯示 Android 應用程式適用的 Home API 生態系統圖表
圖 2:Android 應用程式的 Home API 生態系統

這個生態系統包含 Google 自動化引擎,可儲存及執行自動化動作,方便你自動執行住家中的工作和裝置設定。

Home API 會使用 OAuth 2.0 授權存取結構中的裝置。使用者可以透過 OAuth 授權應用程式或服務,不必提供登入憑證。

Google Home Developer Console 可用於管理 Google Home API 專案的所有階段,從品牌驗證、開發、測試和認證,到最終發布,都能一手掌握。這項服務可簡化開發程序,同時透過 Google Home 生態系統提供強大的工具和發布功能。

語言

Android 適用的 Home API 是以 Kotlin 編寫而成,提供慣用的 Kotlin 介面,可使用 Flow 管理狀態和訂閱項目。相較於標準的訂閱 API,這項功能有許多優點。

如果您還不熟悉,建議先參閱 Kotlin 說明文件,瞭解協同程式、流程和 Jetpack Compose:

實體 ID

每個 Home API 實體都有 ID,代表其主要 ID。這個 ID 是專屬的穩定 ID,實體存在期間不會變更。這個 ID 可用於快取物件或檢查是否相等,因為實體的中繼資料可能會變更。

如要瞭解哪些實體有 ID,請參閱 HasId 介面。

術語對應

Home API 中的實體會對應至 MatterCloud-to-cloud 概念,如下所示:

Home API Matter Cloud-to-cloud
特徵 叢集 特徵
屬性 屬性 屬性、狀態
指令 指令 指令
事件 事件 後續回覆、通知