Intent-basierte Inbetriebnahme für Matter

Das Matter SDK bietet zwar eine Task-basierte API, um die Matter-Inbetriebnahme mit verschiedenen Parametern zu starten, das Ergebnis zu beobachten und optional Anmeldedaten hinzuzufügen, es gibt aber Situationen, in denen nur ein QR-Code als Einstiegspunkt erforderlich ist. Beispiel: Eine allgemeine Kamera-App, die eine Verknüpfung zum Starten der Inbetriebnahme bereitstellen möchte, wenn ein QR-Code im Sucher erkannt wird.

Bevor Sie fortfahren, prüfen Sie, ob alle Voraussetzungen erfüllt sind.

Matter-QR-Codes

Matter-QR-Codes haben die allgemeine Form MT:Y3.13OTB00KA0648G00, wobei das Präfix MT: eine Konstante und das Suffix ein Base 38-codierter String mit dem Alphabet [A-Z0-9.-] ist. Das Suffix muss immer mindestens 19 Zeichen lang sein, kann aber auch länger sein.

Mit dem folgenden regulären Ausdruck in Java können Sie feststellen, ob ein QR-Code ein Matter-QR-Code ist:

fun isMatterQrCode(value: String): Boolean {
  return value.matches(Regex("""MT:[A-Z0-9.-]{19,}"""))
}

Der folgende QR-Code steht beispielsweise für MT:Y3.13OTB00KA0648G00:

Beispiel für einen Matter-QR-Code

Intent-Format

Dieses QR-Code-Format kann als URI verwendet werden, um die Einrichtung zu starten. Dazu wird eine Intent mit ACTION_VIEW, der in der data angegebenen URI und dem Zielpaket gesendet, das auf die Google Play-Dienste festgelegt ist:

fun startCommissioning(context: Context, qrCodeString: String): Boolean {
  val intent =
    Intent(Intent.ACTION_VIEW)
      .setData(Uri.parse(qrCodeString))
      .setPackage("com.google.android.gms")

  try {
    context.startActivity(intent)
    return true
  } catch (ex: ActivityNotFoundException) {
    // Supporting Play Services version not available.
    return false
  }
}

Beispiel-App

In dieser Beispielanwendung wird gezeigt, wie die Inbetriebnahme eines Matter-Geräts gestartet wird, wenn ein Matter-kompatibler QR-Code im Sucher der Kamera angezeigt wird.

Beispielanwendung für die beabsichtigte Inbetriebnahme herunterladen

Der Code in dieser Beispiel-App nutzt die folgenden Android-Bibliotheken:

Die folgenden Dokumente sind auch hilfreich, um den Code zu verstehen, der für diese Beispiel-App geschrieben wurde:

Nutzung

Wenn die App gestartet wird, wird die Kameravorschau auf dem Display angezeigt. Wenn ein QR-Code für ein Matter-Gerät erkannt wird, wird ein Dialogfeld angezeigt, in dem Sie bestätigen können, ob die Inbetriebnahme für dieses Matter-Gerät durchgeführt werden soll:

Kameravorschau 1 Kameravorschau 2

Wenn die Inbetriebnahme bestätigt wurde, wird die vom Google Home Mobile SDK unterstützte App-Auswahl gestartet.

In der App-Auswahl werden anfangs eine Reihe von Standard-Einrichtungsanwendungen angezeigt, z. B. die Google Home App (siehe erster Screenshot). Wenn man auf „Andere App auswählen“ tippt, werden andere Anwendungen angezeigt, die die Einrichtung des Google Home Mobile SDK unterstützen (siehe zweiter Screenshot).

App auswählen – GHA App auswählen – Andere Apps

Die ausgewählte Anwendung wird dann gestartet, um die Inbetriebnahme des Geräts durchzuführen.