Intent-basierte Provision für Matter

Das Matter-SDK bietet eine Task-basierte API, um die Inbetriebnahme von Matter mit verschiedenen Parametern zu starten, das Ergebnis zu beobachten und optional Anmeldedaten hinzuzufügen. Es gibt Situationen, in denen ein Einstiegspunkt nur einen QR-Code benötigt. Zum Beispiel von einer allgemeinen Kameraanwendung, die eine Verknüpfung zum Starten der Inbetriebnahme bereitstellen soll, wenn ein QR-Code im Sucher erkannt wird.

Prüfen Sie zuerst, 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 ist und das Suffix ein base 38-codierter String mit dem Alphabet [A-Z0-9.-] ist. Das Suffix muss immer mindestens 19 Zeichen lang sein, aber auch länger.

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

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 den Provisionsablauf zu starten. Dazu wird ein Intent mit ACTION_VIEW, der in data angegebene URI und das auf Google Play-Dienste festgelegte Zielpaket gesendet:

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
  }
}

Beispielanwendung

Diese Beispiel-App zeigt, wie Sie ein Matter-Gerät in Betrieb nehmen, wenn im Sucher der Kamera ein Matter-kompatibler QR-Code angezeigt wird.

Beispiel-App für absichtsbasierte Provisionen herunterladen

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

Die folgenden Dokumente sind auch hilfreich, um den Code für diese Beispielanwendung zu verstehen:

Nutzung

Wenn die App gestartet wird, wird die Kameravorschau auf dem Bildschirm angezeigt. Wenn ein QR-Code für ein Matter-Gerät erkannt wird, wird in einem Dialogfeld bestätigt, ob die Provision für dieses Matter-Gerät ausgeführt werden soll:

Kameravorschau 1 Kameravorschau 2

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

Die App-Auswahl zeigt anfangs eine Reihe standardmäßiger Inbetriebnahme-Anwendungen an, z. B. die Google Home App (siehe Screenshot). Wenn ein Nutzer auf „Andere App auswählen“ tippt, werden andere Apps angezeigt, die den Provisionsprozess des Google Home Mobile SDK unterstützen (siehe Screenshot).

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

Die ausgewählte Anwendung wird dann gestartet, um das Gerät in Betrieb zu nehmen.