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 統合を作成する際は、ベンダー ID として0xFFF1
、プロダクト ID として0x8000
を使用します。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 リポジトリの [リリース セクション] に移動します。最新のリリースの場合は、[アセット] セクションで
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 へのリンクを含むダイアログが表示されます。[今後このメッセージを表示しない] を選択した場合でも、アプリの [管理] セクションで設定を更新することで、いつでもダイアログを表示できます。
次のステップでは、ローカル Android ファブリックに Matter デバイスと、サンプルアプリにのみローカルな開発ファブリックを追加します。
Matter ファブリックとは
Matter ファブリックは、ホーム ネットワーク内のデバイス間で共有される信頼ドメインであり、デバイス同士の通信を可能にします。
デバイスには、相互に作用するプラットフォーム、アプリ、デバイスのグループに対応する 1 つ以上のファブリックが存在する場合があります。ファブリックには一意の ID があり、デバイスは同じ認証情報と認証局(CA)を共有します。これらの認証情報は、Matter の構成時に割り当てられます。
Matter デバイスを構成する手順は次のとおりです。
[
デバイスを追加] ボタンをタップして、設置プロセスを開始します。次に、制御は Google Play services に移ります。これは、Mobile SDK の呼び出しから起動されます。所有権の証明を行うには、[QR コードをスキャン] をタップするか、[ペア設定コードを使用] をタップします。
構成が完了したら、[デバイス名] を入力し、[完了] をタップします。
これで、デバイスがローカル Android ファブリックと開発ファブリックの両方に接続されました。
デバイスの構成時に、構成作業と関連する画面はすべて Play services によって処理されます。これにより、一貫したユーザー エクスペリエンスが提供され、Wi-Fi や Thread の認証情報などの機密性の高い権限を処理する必要がなくなります。
デバイスを操作する
開発ファブリックは、サンプルアプリから直接 Matter デバイスを制御するための認証情報を作成します。
ホーム画面で、デバイスの電源をオンまたはオフに切り替えることができます。デバイスをタップすると、デバイスの詳細にアクセスできます。
デバイス共有
デバイスの共有は、Matter 仕様ではマルチ管理フローと呼ばれます。デバイスをサンプルアプリに委任すると、他のエコシステムと簡単に共有できます。
Matter デバイスを他のエコシステムと共有するには、Android デバイスに別のプラットフォームをインストールする必要があります。この外部プラットフォームがターゲット コミッショナーになります。ターゲット コミッショナーとして使用できるサンプルアプリの別のインスタンスを作成しました。
Sample App for Matter GitHub リポジトリの [リリース セクション] に移動します。最新のリリースの場合は、[アセット] セクションで
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 でデバイスとユーザーの設定の DataStore リポジトリの内容を確認する手順は次のとおりです。
[リポジトリのコンテンツを記録] をクリックします。
ダイアログで [OK] をクリックし、[Logcat] をオンにします。
フィードバックやご質問
Sample App for Matter での開発の改善点など、ご意見やフィードバックがありましたらお送りください。
Sample App for Matter で問題が発生している場合は、次の手順に沿って環境を確認してください。
サンプルアプリの使用について質問がある場合や、コードのバグを見つけた場合は、GitHub リポジトリの Issue Tracker に問題を送信できます。
技術的な質問について Google から公式のガイダンスを入手するには、スマートホーム デベロッパー フォーラムを使用してください。
コミュニティから技術サポートを受けるには、Stack Overflow で google-smart-home
タグを使用します。