Comisión de Matter basada en la intención

El SDK de Matter proporciona una API basada en Task para iniciar la comisión de Matter. con parámetros variables, observar el resultado y, opcionalmente, agregar credenciales, hay situaciones en las que un punto de entrada de solo un código QR se según tus necesidades. Por ejemplo, desde una aplicación de cámara generalizada que desee proporciona un acceso directo para comenzar la comisión cuando se vea un código QR en la visor.

Antes de continuar, asegúrate de que todos Se cumplen los requisitos previos.

Códigos QR de Matter

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

Determinar si un código QR representa un código QR de Matter se puede hacer con el 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 de intent

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

Esta app de ejemplo muestra cómo comenzar a asignar un dispositivo Matter cuando un El código QR compatible con Matter se ve en el visor de la cámara.

Descargar la app de ejemplo de 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 este App de ejemplo:

Uso

Cuando se inicie la app, se mostrará la vista previa de la cámara en la pantalla. Cuando se muestra un código QR cuando se detecta un dispositivo Matter, se muestra un diálogo para confirmar si la puesta en marcha de ese dispositivo Matter se debe realizar:

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

Si se confirma la comisión, el "Selector de apps" respaldada por Se lanza el SDK de Google Home para dispositivos móviles.

Inicialmente, el selector de apps muestra un conjunto de aplicaciones de asignación predeterminadas (por ejemplo, la app de Google Home, como se muestra en la primera captura de pantalla). Si presionas "Elegir otra app", se mostrarán otras aplicaciones que admiten el flujo de comisión del SDK de Google Home Mobile (consulta la segunda captura de pantalla).

Elige una app - GHA Elige una app: Otras apps

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