Google Home Sample App for Matter verwendet Google Home Mobile SDK, um eine Android-App zu erstellen, die Google Home app (GHA) ähnelt. Diese Beispiel-App bietet folgende Funktionen:
- Physische und virtuelle Matter-Geräte in der lokalen Android-Struktur in Betrieb nehmen
- Physische und virtuelle Geräte in einer Entwicklungsstruktur in Betrieb nehmen
- Geräte in der Entwicklungsstruktur steuern, z. B. ein Licht einschalten
- Mit Multi-Admin-Funktionen können Sie Geräte in der Entwicklungsstruktur für andere Anwendungen freigeben und umgekehrt in die Entwicklungsfabric-Geräte einbeziehen, die von anderen Anwendungen gemeinsam genutzt werden.
- Dienstprogramme für Entwickler
In dieser Anleitung wird beschrieben, wie du das Sample App for Matter-APK installierst und es zum Inbetriebnahme, Steuern und Freigeben von Matter-Geräten verwendest.
Im Codelab zu Sample App for Matter können Sie den Quellcode herunterladen, erfahren, wie Sie Mobile SDK einbinden und Bildschirme in Android Studio anpassen.
Zum Sample App for Matter-Codelab
Voraussetzungen
- Ein Gerät mit Android O (8.1, API-Level 27) oder höher, das zum Testen verfügbar ist. Wie Sie prüfen, ob Ihr Gerät die neueste Matter-Unterstützung hat, erfahren Sie im Leitfaden Matter-Module und -Dienste prüfen.
- Erstellen Sie ein Matter-Gerät, das aktiviert bzw. deaktiviert werden kann. Diese Beispiel-App funktioniert mit einem virtuellen Gerät und einem ESP32.
- Matter Virtual Device (MVD) Wir empfehlen dir dringend, zuerst einmal MVD zu verwenden, um Umgebungsprobleme zu minimieren. Sollten Probleme auftreten, ist es viel einfacher, zu untersuchen, ob die Beispiel-App für MVD verwendet wird.
- Erstellen Sie mit der
rootnode_dimmablelight_bCwGYSDpoe
App ein virtuelles Matter-Gerät. Wenn Sie in der Google Home Developer Console eine Matter-Integration erstellen, verwenden Sie0xFFF1
als Anbieter-ID und0x8000
als Produkt-ID. - Erstellen Sie ein Espressif-Gerät mit der
all-clusters-app
. Wenn Sie eine Matter-Integration in der Developer Console erstellen, verwenden Sie0xFFF1
als Anbieter-ID und0x8001
als Produkt-ID.
Sie benötigen keinen Hub wie z. B. Google Nest Hub (2nd gen), um Geräte mit Sample App for Matter in Betrieb zu nehmen und zu steuern.
Installieren
Rufen Sie im GitHub-Repository Sample App for Matter den Abschnitt „Releases“ auf. Suchen Sie für die neueste Version im Abschnitt „Assets“ das APK mit dem Namen
GHSAFM-version-default-debug.apk
. Wählen Sie nichttargetcommissioner
aus.Android Debug Bridge (ADB) installieren:
Verbinden Sie Ihr Android-Gerät über USB, aktivieren Sie File Transfer und installieren Sie dann das APK:
$ adb unroot && adb install GHSAFM-version-default-debug.apk
Geräte für die Provision
Wenn Sie die Beispiel-App zum ersten Mal starten, wird ein Dialogfeld mit einem Link zum Sample App for Matter-Codelab angezeigt. Wenn Sie Diese Meldung nicht mehr anzeigen auswählen, können Sie das Dialogfeld jederzeit wieder einblenden. Aktualisieren Sie dazu die Einstellungen im Bereich „Verwaltung“ der App.
In den nächsten Schritten fügen Sie der lokalen Android-Struktur ein Matter-Gerät zusammen mit einer Entwicklungsstruktur hinzu, die nur für die Beispiel-App lokal ist.
Was sind Matter-Gewebe?
Eine Matter-Struktur ist eine gemeinsame Vertrauensdomäne zwischen Geräten in einem Heimnetzwerk, die die Kommunikation untereinander ermöglichen.
Geräte können eine oder mehrere Strukturen haben, die einer Plattform, App oder Gruppe von Geräten entsprechen, die miteinander interagieren. Fabrics haben eine eindeutige ID und Geräte verwenden dieselben Anmeldedaten und dieselbe Zertifizierungsstelle (CA). Diese Anmeldedaten werden bei der Inbetriebnahme von Matter zugewiesen.
Führe die folgenden Schritte aus, um ein Matter-Gerät in Betrieb zu nehmen:
Tippen Sie auf die Schaltfläche
Gerät hinzufügen, um die Inbetriebnahme zu starten.Als Nächstes wird die Steuerung an Google Play services übertragen, der durch einen Aufruf an Mobile SDK gestartet wird. Um einen Besitznachweis zu erhalten, scannen Sie den QR-Code oder tippen Sie auf Kopplungscode verwenden.
Wenn die Inbetriebnahme abgeschlossen ist, geben Sie einen Gerätenamen ein und tippen Sie auf Fertig.
Dein Gerät ist jetzt sowohl mit der lokalen Android-Struktur als auch mit der Entwicklungsstruktur verbunden.
Alle Inbetriebnahmearbeiten und die zugehörigen Bildschirme werden von Play services bei der Inbetriebnahme der Geräte ausgeführt. Dies sorgt für eine konsistente Nutzererfahrung und macht es überflüssig, vertrauliche Berechtigungen wie WLAN- und Thread-Anmeldedaten zu verwalten.
Geräte steuern
Die Entwicklungsstruktur erstellt die Anmeldedaten für die Steuerung von Matter-Geräten direkt über die Beispiel-App.
Auf dem Startbildschirm kannst du dein Gerät ein- oder ausschalten. Tippe auf das Gerät, um auf die Gerätedetails zuzugreifen.
Geräte gemeinsam verwenden
Die Freigabe eines Geräts wird in der Matter-Spezifikation als Vorgang mit mehreren Administratoren bezeichnet. Sobald ein Gerät für die Beispiel-App in Betrieb genommen wurde, können Sie es problemlos mit anderen Ökosystemen teilen.
Wenn Sie Ihr Matter-Gerät mit anderen Plattformen teilen möchten, muss auf Ihrem Android-Gerät eine weitere Plattform installiert sein. Diese externe Plattform wird zum Zielbeauftragten. Wir haben eine weitere Instanz der Beispiel-App erstellt, die Sie als Target Commissioner verwenden können.
Rufen Sie im GitHub-Repository Sample App for Matter den Abschnitt „Releases“ auf. Suchen Sie für die neueste Version im Abschnitt „Assets“ das APK mit dem Namen
GHSAFM-version-targetcommissioner-debug.apk
. Wählen Sie nichtdefault
aus.Installieren Sie den Zielbeauftragten.
$ adb unroot && adb install GHSAFM-version-targetcommissioner-debug.apk
Tippen Sie auf dem Startbildschirm auf das Gerät, um die Geräteinformationen aufzurufen. Tippen Sie auf Teilen.
Die Beispiel-App ruft die Mobile SDK Share API auf. Auch hier wird die Steuerung an Play services übertragen.
Es wird ein Share Sheet angezeigt, in dem Sie die App oder Plattform auswählen können, mit der Sie das Gerät koppeln möchten. Über diesen Bildschirm können Sie das Gerät auf zwei Arten freigeben:
- Manuell über einen Einrichtungscode, der mit der Zielkommissions-App geteilt wird
- Mit einer lokalen Android-App, die als Matter-Provisioner registriert ist
Sie trägt das Label GHSAFM-TC. Tippe auf diese Instanz der Beispiel-App, um dein Gerät zu teilen.
Als Nächstes schließt die externe Anwendung (Zielkommission) die Inbetriebnahme des Geräts in einer eigenen Struktur ab.
Einstellungen
Klicken Sie auf dem Startbildschirm auf das Symbol „Einstellungen“
. Hier haben Sie die Möglichkeit, die Nutzereinstellungen zu aktualisieren, Hilfe zu erhalten und mehr über die App zu erfahren.Halbseitige Benachrichtigung
Auf dem Bildschirm „Einstellungen“ können Sie proaktive Benachrichtigungen zur Erkennung von Provisionen, die auf Matter-Geräten erkannt werden, deaktivieren.
Wenn Ihre Anwendung einen eigenen Matter-Erkennungs- oder Inbetriebnahmefluss bietet, können Sie diese Benachrichtigungen unterdrücken, um Unterbrechungen zu vermeiden. Weitere Informationen finden Sie unter Benachrichtigungen zur Provisionserkennung unterdrücken.
Entwickler-Dienstprogramme
Über den Bildschirm „Einstellungen“ können Sie auch auf die Entwicklerdienstprogramme zugreifen.
Führen Sie die folgenden Schritte aus, um den Inhalt der DataStore-Repositories für Geräte und Nutzereinstellungen in Logcat zu überprüfen:
Klicken Sie auf Log Repositories-Inhalte.
Klicken Sie im Dialogfeld auf OK und dann auf Logcat.
Feedback und Hilfe
Wenn du uns Feedback geben oder uns Feedback senden möchtest, wie wir die Entwicklung mit Sample App for Matter verbessern können, fülle unser Feedbackformular aus.
Wenn Sie Probleme mit Sample App for Matter haben, führen Sie die Schritte zum Prüfen Ihrer Umgebung aus:
Wenn Sie Fragen zur Verwendung der Beispiel-App haben oder einen Codefehler entdecken, können Sie den Issue Tracker im GitHub-Repository einreichen:
Offizielle Hilfestellungen von Google zu technischen Fragen erhalten Sie im Smart-Home-Entwicklerforum:
Verwenden Sie das Tag google-smart-home
auf Stack Overflow, um technischen Support von der Community zu erhalten: