Mise en service basée sur l'intention pour Matter

Le SDK Matter fournit une API basée sur Task pour lancer la mise en service avec Matter avec des paramètres variables, observer le résultat et éventuellement ajouter des identifiants, il peut arriver qu'un seul point d'entrée d'un code QR nécessaires. Par exemple, d'une application appareil photo généralisée qui souhaite fournir un raccourci pour démarrer la mise en service lorsqu'un code QR est détecté dans la viseur.

Avant de continuer, assurez-vous Les conditions préalables sont remplies.

Codes QR Matter

Les codes QR Matter se présentent sous la forme générale MT:Y3.13OTB00KA0648G00, où le préfixe MT: est une constante et le suffixe est une chaîne encodée en base38 avec l'alphabet [A-Z0-9.-]. Le suffixe doit comporter toujours au moins 19 caractères, mais peut également être plus long.

Pour déterminer si un code QR représente un code QR Matter, vous pouvez utiliser l'expression régulière suivante en Java:

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

Par exemple, le code QR suivant représente MT:Y3.13OTB00KA0648G00:

Exemple de code QR Matter

Format de l'intent

Ce format de code QR peut être utilisé comme URI pour lancer le flux de mise en service en envoyant une Intent avec ACTION_VIEW, l'URI spécifié dans data et package cible défini sur les services Google Play:

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

Application exemple

Cet exemple d'application montre comment mettre en service un appareil Matter lorsqu'un Le code QR conforme à Matter apparaît dans le viseur de l'appareil photo.

Télécharger l'application exemple de mise en service basée sur l'intent

Le code de cet exemple d'application exploite les bibliothèques Android suivantes:

Les documents suivants sont également utiles pour comprendre le code écrit pour cette application exemple:

Utilisation

Au démarrage de l'application, l'aperçu de l'appareil photo s'affiche à l'écran. Lorsqu'un code QR pour un appareil Matter, une boîte de dialogue s'affiche pour confirmer la mise en service de cet appareil Matter doit être:

aperçu de l'appareil photo 1 aperçu de l'appareil photo 2

Si la mise en service est confirmée, l'outil de sélection d'applications pris en charge par Lancement du SDK Google Home pour mobile.

Au départ, le sélecteur d'applications affiche un ensemble d'applications de mise en service par défaut (par exemple, l'application Google Home, comme illustré sur la première capture d'écran). Si vous appuyez sur "Choisir une autre application", les autres applications compatibles avec le processus de mise en service du SDK Google Home pour mobile s'affichent (voir la deuxième capture d'écran).

Choisir une application – GHA Sélectionner une application – Autres applications

L'application sélectionnée est alors lancée pour effectuer la mise en service de l'appareil.