Comisión de Matter basada en la intención

Si bien el SDK de Matter proporciona una API basada en Task para iniciar la comisión de Matter con diferentes parámetros, observar el resultado y, de manera opcional, agregar credenciales, hay situaciones en las que se necesita un punto de entrada de solo un código QR. Por ejemplo, desde una aplicación de cámara generalizada que desea proporcionar un acceso directo para iniciar la comisión cuando se ve un código QR en el visor.

Antes de continuar, asegúrate de que se cumplan todos los requisitos previos.

Códigos QR de Matter

Los códigos QR de Matter tienen el formato general de MT:Y3.13OTB00KA0648G00, en el que el prefijo MT: es una constante y el sufijo es una cadena codificada en base 38 con el alfabeto [A-Z0-9.-]. El sufijo siempre debe tener al menos 19 caracteres, pero también puede ser más largo.

Para determinar si un código QR representa un código QR de Matter, puedes usar la siguiente regex en Java:

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

Por ejemplo, el siguiente código QR representa MT:Y3.13OTB00KA0648G00:

Ejemplo de código QR de Matter

Formato del intent

Este formato de código QR se puede usar como URI para iniciar el flujo de comisión. Para ello, envía un Intent con ACTION_VIEW, el URI especificado en data y el paquete de destino establecido en los Servicios de 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
 
}
}

App de ejemplo

En esta app de ejemplo, se muestra cómo comenzar a comisionar un dispositivo Matter cuando se ve un código QR compatible con Matter en el visor de la cámara.

Descarga la app de ejemplo de la comisión basada en intents

El código de esta app de ejemplo aprovecha las siguientes bibliotecas de Android:

Los siguientes documentos también son útiles para comprender el código escrito para esta app de ejemplo:

Uso

Cuando se inicia la app, se muestra la vista previa de la cámara en la pantalla. Cuando se detecta un código QR para un dispositivo Matter, se muestra un diálogo para confirmar si se debe realizar la comisión para ese dispositivo Matter:

vista previa de la cámara 1 vista previa de la cámara 2

Si se confirma la comisión, se inicia el "Selector de apps" compatible con el SDK de Google Home para dispositivos móviles.

En un principio, el selector de apps muestra un conjunto de aplicaciones de comisión predeterminadas (por ejemplo, la app de Google Home, como se muestra en la primera captura de pantalla). Si se presiona "Elegir otra app", se muestran otras aplicaciones que admiten el flujo de comisión del SDK de Google Home para dispositivos móviles (consulta la segunda captura de pantalla).

Elige una app: GHA Elige una app: Otras apps

Luego, se inicia la aplicación seleccionada para realizar la puesta en marcha del dispositivo.