Comissionamento baseado em intenção para o Matter

Embora o SDK do Matter forneça uma API baseada em Task para iniciar o comissionamento do Matter com parâmetros variáveis, observando o resultado e, opcionalmente, adicionando credenciais, há situações em que um ponto de entrada de apenas um QR code necessários. Por exemplo, em um aplicativo de câmera generalizado que quer forneça um atalho para iniciar o comissionamento quando um QR code for visto no visor de fotos.

Antes de continuar, verifique se Os pré-requisitos foram atendidos.

QR codes do Matter

Os QR codes do Matter assumem a forma geral de MT:Y3.13OTB00KA0648G00, em que o prefixo MT: é uma constante, e o sufixo é uma string codificada de base 38 usando o alfabeto [A-Z0-9.-]. O sufixo precisa sempre ter pelo menos 19 caracteres, mas também pode ser mais longo.

É possível determinar se um QR code representa um QR code do Matter com o seguinte regex em Java:

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

Por exemplo, o QR code a seguir representa MT:Y3.13OTB00KA0648G00:

Exemplo de QR code do Matter

Formato da intent

Esse formato de QR code pode ser usado como URI para iniciar o fluxo de comissionamento: enviando um Intent com ACTION_VIEW, o URI especificado no data e o pacote de destino definido para o Google Play Services:

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 exemplo

Este app de exemplo mostra como começar a comissionar um dispositivo Matter quando um O QR code compatível com o Matter aparece no visor da câmera.

Fazer o download o app de exemplo Comissionamento baseado em intents

O código neste app de exemplo usa as seguintes bibliotecas do Android:

Os documentos a seguir também são úteis para entender o código escrito para esta aplicativo de exemplo:

Uso

Quando o app é iniciado, a visualização da câmera é mostrada na tela. Quando um QR code for detectado em um dispositivo Matter, uma caixa de diálogo aparece para confirmar se comissionamento desse dispositivo Matter deve ser realizado:

visualização da câmera 1 visualização da câmera 2

Se o comissionamento for confirmado, o "Seletor de apps" apoiados pela O SDK para dispositivos móveis do Google Home foi lançado.

Inicialmente, o seletor de apps mostra um conjunto de aplicativos de comissionamento padrão (por exemplo, o app Google Home, como mostrado na primeira captura de tela). Se alguém tocar em "Escolher outro app", serão mostrados outros aplicativos compatíveis com o fluxo de comissionamento do SDK do Google Home para dispositivos móveis. Confira a segunda captura de tela.

Escolha um app: GHA Escolha um app (outros apps)

O aplicativo selecionado é, então, iniciado para executar o comissionamento do dispositivo.