Mise en service basée sur l'intent

Bien que le SDK Matter fournit une API basée sur Task pour démarrer la mise en service de Matter avec divers paramètres, observer le résultat et éventuellement ajouter des identifiants, il est parfois nécessaire de n'avoir qu'un code QR comme point d'entrée. Par exemple, à partir d'une application d'appareil photo généralisée qui souhaite fournir un raccourci pour démarrer la mise en service lorsqu'un code QR est affiché dans le viseur.

Avant de continuer, assurez-vous que toutes les conditions préalables sont remplies.

Codes QR Matter

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

Pour déterminer si un code QR Matter peut être effectué avec 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 d'intent

Ce format de code QR peut être utilisé comme URI pour démarrer le processus de mise en service en envoyant un Intent avec ACTION_VIEW, l'URI spécifié dans data et le 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 code QR compatible avec Matter s'affiche dans le viseur de l'appareil photo.

Télécharger l'exemple d'application 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 cet exemple d'application:

Utilisation

Lorsque l'application démarre, l'aperçu de la caméra s'affiche à l'écran. Lorsqu'un code QR est détecté pour un appareil Matter, une boîte de dialogue s'affiche pour confirmer la mise en service de cet appareil Matter:

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 compatible avec le SDK Google Home Mobile est lancé.

Le sélecteur d'application affiche initialement 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 l'utilisateur appuie sur "Choisir une autre application", les autres applications compatibles avec le flux de mise en service du SDK Google Home 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 ensuite lancée pour effectuer la mise en service de l'appareil.