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
:
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:
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.
O aplicativo selecionado é, então, iniciado para executar o comissionamento do dispositivo.