Google Home Sample App for Matter は Google Home Mobile SDK を使用して、Google Home app (GHA) に似た Android アプリを作成します。このサンプルアプリは、次の機能を提供します。
- 物理デバイスと仮想 Matter デバイスをローカル Android ファブリックにコミッションします。
- 実機と仮想デバイスを開発用ファブリックに紹介する
- 開発用ファブリック上のデバイスを操作する(照明をオンにするなど)
- マルチ管理機能を使用すると、開発ファブリック上のデバイスを他のアプリと共有でき、逆に、他のアプリから共有された開発ファブリック デバイスを含めることができます。
- デベロッパー ユーティリティ
このガイドでは、Sample App for Matter APK をインストールし、その APK を使用して Matter デバイスのコミック、コントロール、共有を行う方法について説明します。
ソースコードをダウンロードするには、Mobile SDK を統合する方法、Android Studio で画面をカスタマイズする方法について、Sample App for Matter Codelab をお試しください。
Sample App for Matter Codelab に移動
Prerequisites
- テストに使用できる Android O(8.1、API レベル 27)以降のデバイス。デバイスに最新の Matter サポートを含めるには、Matter モジュールとサービスの検証ガイドをご覧ください。
- オン/オフ機能を備えた Matter デバイスを構築します。このサンプルアプリは、仮想デバイスと ESP32 で動作します。
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-1.4.1-default-debug.apk
という名前の APK を見つけます。targetcommissioner
は選択しないでください。Android Debug Bridge(adb)をインストールします。
Android デバイスを USB に接続し、File Transfer を有効にしてから、APK をインストールします。
$ adb unroot && adb install GHSAFM-1.4.1-default-debug.apk
コミッション デバイス
サンプルアプリを初めて起動すると、Sample App for Matter Codelab へのリンクを含むダイアログが表示されます。[今後このメッセージを表示しない] を選択すると、アプリの [管理] で設定を更新することで、いつでもダイアログを戻すことができます。
次の手順では、Matter デバイスを、Android のローカル ファブリック、およびサンプルアプリ専用のローカルの開発ファブリックに追加します。
Matter ファブリックとは
Matter ファブリックは、ホーム ネットワーク内のデバイス間の共有ドメインであり、デバイス間での通信を可能にします。
デバイスに、プラットフォーム、アプリ、またはデバイスの相互グループに対応するファブリックが 1 つ以上含まれる場合があります。ファブリックには一意の ID があり、デバイスは同じ認証情報のセットと認証局(CA)を共有します。Matter のコミッショニング時にこれらの認証情報が割り当てられます。
Matter デバイスをコミッショニングする手順は次のとおりです。
[
デバイスを追加] ボタンをタップしてコミッショニング プロセスを開始します。次に、制御が Google Play services に転送され、Mobile SDK の呼び出しによって起動されます。本人確認を行うには、[QR コードをスキャン] をタップするか、[ペア設定コードを使用] をタップします。
コミッションが完了したら、[Device Name(デバイス名)] を入力して [完了] をタップします。
デバイスがローカル Android ファブリックと開発ファブリックの両方に接続されました。
コミッショニングの作業と関連する画面はすべて、デバイスのコミッショニング時に Play services によって処理されます。これにより、一貫したユーザー エクスペリエンスが実現し、Wi-Fi や Thread の認証情報などの機密性の高い権限を処理する必要がなくなります。
デバイスを操作する
開発ファブリックは、Matter デバイスをサンプルアプリから直接制御するための認証情報を作成します。
ホーム画面でデバイスのオンまたはオフを切り替えることができます。デバイスの詳細にアクセスするには、デバイスをタップします。
デバイスを共有する
デバイスの共有は、Matter 仕様ではマルチ管理フローと呼ばれます。デバイスがサンプルアプリに commit されると、他のエコシステムと簡単に共有できます。
Matter デバイスを他のエコシステムと共有するには、Android デバイスに別のプラットフォームをインストールする必要があります。この外部プラットフォームがコミッショナーになります。ターゲット コミッショナーとして使用できるサンプルアプリの別のインスタンスを作成しました。
Sample App for Matter GitHub リポジトリの [リリース] セクションに移動します。
GHSAFM-[version]-targetcommissioner
という名前の最新の APK を見つけます(例:GHSAFM-1.4.1-targetcommissioner-debug.apk
)。ターゲット コミッショナーをインストールします。
$ adb unroot && adb install GHSAFM-1.4.1-targetcommissioner-debug.apk
ホーム画面でデバイスをタップして、デバイス情報を表示します。[共有] をタップします。
サンプルアプリが Mobile SDK Share API を呼び出し、もう一度制御が Play services に転送されます。
共有シートが表示され、デバイスをペア設定するアプリまたはプラットフォームを選択できます。この画面では、次の 2 つの方法でデバイスを共有できます。
- ターゲット コミッショナー アプリと共有する設定コードを手動で追加する
- Matter コミッショナーとして登録されているローカル Android アプリの場合
移行先のコミッショナー アプリには GHSAFM-TC というラベルが付きます。サンプルアプリのこのインスタンスをタップして、デバイスを共有します。
次に、外部アプリ(ターゲット コミッショナー)がファブリックへのデバイスのコミッショニングを完了します。
設定
ホーム画面で、設定アイコン
をクリックします。ここでは、ユーザー設定の更新、ヘルプの表示、アプリの詳細情報の確認を行えます。ハーフシート通知
[設定] 画面では、Matter デバイスのプロアクティブ コミッションによる検出通知を無効にできます。
アプリケーションで独自の Matter 検出フローまたはコミッショニング フローを提供する場合は、これらの通知を無効にして中断が発生しないようにすることをおすすめします。詳しくは、コミッションによる検出の通知を抑制するをご覧ください。
デベロッパー ユーティリティ
設定画面からデベロッパー ユーティリティにアクセスすることもできます。
Logcat でデバイスとユーザー設定の DataStore リポジトリの内容を確認するには、次の手順を行います。
[Log repositories content] をクリックします。
ダイアログの [OK] をクリックして、[Logcat] をオンにします。
フィードバックやご質問
Sample App for Matter での開発の改善点など、に対するご意見やフィードバックがございましたら、こちらのフィードバック フォームにご記入ください。
Sample App for Matter で問題が発生した場合は、以下の手順を行い、環境を確認してください。
サンプルアプリの使用について質問がある場合や、コードのバグを発見する場合は、GitHub リポジトリの Issue Tracker に問題を報告してください。
技術的な質問について Google からの公式ガイダンスを取得するには、スマートホーム デベロッパー フォーラムを使用してください。
コミュニティからテクニカル サポートを受けるには、Stack Overflow の google-smart-home
タグを使用します。