Google Home Sample App for Matter は Google Home Mobile SDK を使用して、Google Home app (GHA) に似た Android アプリを作成します。このサンプルアプリには次の機能があります。
- 物理デバイスと仮想 Matter デバイスをローカル Android ファブリックにコミッショニングする
- 物理デバイスと仮想デバイスを開発ファブリックにコミッショニングする
- ライトをオンにするなど、開発ファブリック上のデバイスを制御する
- マルチ管理機能を使用すると、開発ファブリック上のデバイスを他のアプリと共有でき、逆に、他のアプリと共有される開発ファブリック デバイスに含めることもできます。
- 開発者ユーティリティ
このガイドでは、Sample App for Matter APK をインストールし、それを使用して Matter デバイスのコミッショニング、制御、共有を行う方法について説明します。
ソースコードをダウンロードし、Mobile SDK を統合して Android Studio で画面をカスタマイズする方法を学ぶには、Sample App for Matter Codelab をお試しください。
Sample App for Matter Codelab に移動
前提条件
- テストに利用できる Android O(8.1、API レベル 27)以降のデバイス。デバイスが最新の Matter をサポートしていることを確認するには、Matter のモジュールとサービスの確認ガイドをご覧ください。
- オン/オフ機能を備えた Matter デバイスを作成します。このサンプルアプリは、仮想デバイスと ESP32 と連携して動作します。
- Matter Virtual Device(MVD)。環境の問題を最小限に抑えるため、最初は MVD を使用することを強くおすすめします。問題が発生した場合は、サンプルアプリを MVD に対して使用すると、調査がはるかに容易になります。
rootnode_dimmablelight_bCwGYSDpoe
アプリを使用して Matter 仮想デバイスを作成します。Google Home Developer Console で Matter 統合を作成する場合は、0xFFF1
をベンダー ID として使用し、0x8000
をプロダクト ID として使用します。all-clusters-app
を使用して Espressif デバイスをビルドします。Developer Console で Matter 統合を作成する場合は、ベンダー ID として0xFFF1
、プロダクト ID として0x8001
を使用します。
Sample App for Matter でデバイスのコミッショニングと制御に、Google Nest Hub (2nd gen) などのハブは必要ありません。
インストール
Sample App for Matter GitHub リポジトリのリリース セクションに移動します。最新のリリースについては、[Assets] セクションで
GHSAFM-version-default-debug.apk
という名前の APK を探します。targetcommissioner
は選択しないでください。Android Debug Bridge(adb)をインストールします。
Android デバイスを USB で接続してファイル転送を有効にしてから、APK をインストールします。
$ adb unroot && adb install GHSAFM-version-default-debug.apk
デバイスのコミッション
サンプルアプリを初めて起動すると、Sample App for Matter Codelab へのリンクを含むダイアログが表示されます。[今後このメッセージを表示しない] を選択した場合、アプリの [管理] セクションで設定を更新すれば、いつでもダイアログを再び表示できます。
次のステップでは、Matter デバイスを、サンプルアプリ専用のローカルな開発ファブリックとともに、ローカル Android ファブリックに追加します。
Matter ファブリックとは
Matter ファブリックは、ホーム ネットワーク内のデバイス間で相互通信を可能にする共有信頼ドメインです。
デバイスは、相互にやり取りするプラットフォーム、アプリ、またはデバイスのグループに対応する 1 つ以上のファブリックを持つことができます。ファブリックには一意の ID があり、デバイスは同じ認証情報と認証局(CA)のセットを共有します。これらの認証情報は、Matter の commit 時に割り当てられます。
Matter デバイスをコミッショニングするには、次の手順を行います。
[デバイスを追加] ボタンをタップしてコミッショニング プロセスを開始します。
次に、制御が Google Play services に移行されます。これは Mobile SDK の呼び出しから起動されます。所有証明を確立するには、QR コードをスキャンするか、[ペア設定コードを使用] をタップします。
コミッショニングが完了したら、デバイス名を入力し、[完了] をタップします。
これで、デバイスがローカル Android ファブリックと開発ファブリックの両方に接続されました。
コミッショニング作業と関連する画面はすべて、デバイスのコミッショニング時に Play services によって処理されます。これにより、一貫したユーザー エクスペリエンスを提供でき、Wi-Fi や Thread の認証情報などの機密情報に関わる権限を扱う必要がなくなります。
デバイスを操作する
開発ファブリックは、サンプルアプリから Matter デバイスを直接制御するための認証情報を作成します。
ホーム画面で、デバイスのオンとオフを切り替えることができます。デバイスをタップすると、デバイスの詳細が表示されます。
デバイスを共有する
デバイスの共有は、Matter の仕様ではマルチ管理フローと呼ばれています。デバイスがサンプルアプリ用にコミッショニングされると、他のエコシステムと簡単に共有できます。
Matter デバイスを他のエコシステムと共有するには、Android デバイスに別のプラットフォームをインストールする必要があります。この外部プラットフォームがターゲット コミッショナーになります。ターゲット コミッショナーとして使用できる、サンプルアプリの別のインスタンスを作成しました。
Sample App for Matter GitHub リポジトリのリリース セクションに移動します。最新のリリースについては、[Assets] セクションで
GHSAFM-version-targetcommissioner-debug.apk
という名前の APK を探します。default
は選択しないでください。ターゲット コミッショナーをインストールします。
$ adb unroot && adb install GHSAFM-version-targetcommissioner-debug.apk
ホーム画面でデバイスをタップすると、デバイス情報が表示されます。[共有] をタップします。
サンプルアプリが Mobile SDK Share API を呼び出し、再び制御が Play services に移行されます。
共有シートが表示され、デバイスをペア設定するアプリまたはプラットフォームを選択できます。この画面では、次の 2 つの方法でデバイスを共有できます。
- 設定コードを介して手動で、対象のコミッショナー アプリと共有する
- Matter コミッショナーとして登録されたローカル Android アプリ
対象となるコミッショナー アプリは GHSAFM-TC というラベルが付けられています。サンプルアプリのこのインスタンスをタップして、デバイスを共有します。
次に、外部アプリ(ターゲット コミッショナー)が独自のファブリックへのデバイスのコミッショニングを完了します。
設定
ホーム画面で、設定
アイコンをクリックします。ここでは、ユーザー設定の更新、ヘルプの表示、アプリの詳細の確認を行うことができます。ハーフシートの通知
設定画面で、Matter デバイスに対するコミッション可能な事前検出通知を無効にすることを選択できます。
アプリが独自の Matter 検出フローまたはコミッショニング フローを提供している場合は、中断を防ぐためにこれらの通知を非表示にできます。詳細については、手数料の対象となる検出の通知を抑制するをご覧ください。
デベロッパー ユーティリティ
[設定] 画面から、デベロッパー ユーティリティにアクセスすることもできます。
Logcat で Device and User Preferences DataStore リポジトリの内容を確認するには、次の手順を行います。
[Log repositories content] をクリックします。
ダイアログに対して [OK] をクリックし、[Logcat] をオンにします。
フィードバックやご質問
Sample App for Matter の開発エクスペリエンスを改善するためのご意見をお聞かせください。フィードバック フォームにご記入ください。
Sample App for Matter に問題がある場合は、環境を確認する以下の手順を試してください。
サンプルアプリの使用に関する質問がある場合や、コードのバグを見つけた場合は、GitHub リポジトリの Issue Tracker に問題を送信できます。
技術的な質問について Google から正式なガイダンスを得るには、スマートホーム デベロッパー フォーラムを使用します。
コミュニティからテクニカル サポートを受けるには、Stack Overflow で google-smart-home
タグを使用します。