Embora o SDK do Matter forneça uma API baseada em Task
para iniciar a ativação do Matter
com parâmetros variados, observando o resultado e, opcionalmente, adicionando
credenciais, há situações em que um ponto de entrada de apenas um código QR é
necessário. Por exemplo, de um aplicativo de câmera generalizado que queira
fornecer um atalho para iniciar a ativação quando um código QR for visto no
visor.
Antes de continuar, verifique se todos os pré-requisitos foram atendidos.
QR codes do Matter
Os códigos QR do Matter têm a forma geral de
MT:Y3.13OTB00KA0648G00
, em que o prefixo MT:
é uma constante, e o sufixo
é uma string codificada em base 38 usando o alfabeto [A-Z0-9.-]
. O sufixo precisa
ser sempre de pelo menos 19 caracteres, mas 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 seguinte código QR representa MT:Y3.13OTB00KA0648G00
:
Formato da intent
Esse formato de código QR pode ser usado como um URI para iniciar o fluxo de comissionamento
enviando um Intent
com ACTION_VIEW
, o URI especificado no data
e o
pacote de destino definido como 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 iniciar a comissionamento de um dispositivo Matter quando um código QR compatível com o Matter aparece no visor da câmera.
Faça o download do app de amostra de comissionamento baseado em intent
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 este app de exemplo:
Uso
Quando o app é iniciado, a visualização da câmera aparece na tela. Quando um QR code para um dispositivo Matter é detectado, uma caixa de diálogo é mostrada para confirmar se a ativação para esse dispositivo Matter precisa ser realizada:
Se a ativação for confirmada, o "App Picker" compatível com o SDK para dispositivos móveis do Google Home será iniciado.
O seletor de apps mostra inicialmente um conjunto de aplicativos de ativação padrão (por exemplo, o app Google Home, conforme mostrado na primeira captura de tela). Se você tocar em "Escolher outro app", outros aplicativos compatíveis com o fluxo de comissionamento do SDK para dispositivos móveis do Google Home serão mostrados (veja a segunda captura de tela).
O aplicativo selecionado é iniciado para realizar a comissionamento do dispositivo.