Comissões com base na intenção para casos

Embora o SDK do Matter forneça uma API baseada em Task para iniciar a ativação da matéria com parâmetros variáveis, observando o resultado e adicionando credenciais, mas há situações em que um ponto de entrada apenas de um código QR é necessário. Por exemplo, de um aplicativo de câmera generalizado que quer fornecer um atalho para iniciar o comissionamento quando um código QR é visto no visualizador de telas.

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

Códigos QR do Matter

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

Para determinar se um código QR representa um código QR do Matter, faça o seguinte regex no Java:

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

Por exemplo, o código QR a seguir representa MT:Y3.13OTB00KA0648G00:

Exemplo de código QR do Matter

Formato da intent

Esse formato de código QR pode ser usado como URI para iniciar o fluxo de comissionamento enviando um Intent com ACTION_VIEW, o URI especificado em 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 ativar um dispositivo Matter quando um código QR compatível com o Matter é visto no visor da câmera.

Faça o download do app de exemplo de comissão baseado em intents

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

Os documentos abaixo também são úteis para entender o código escrito para este app de exemplo:

Uso

Quando o app é iniciado, a visualização da câmera é mostrada na tela. Quando um código QR de um dispositivo Matter é detectado, uma caixa de diálogo é mostrada para confirmar se a comissão precisa ser feita:

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

Se o comissionamento for confirmado, o "Seletor de aplicativos" suportado pelo SDK do Google Home para dispositivos móveis será iniciado.

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

Escolher um app: GHA Escolher um app: outros apps

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