Sebbene l'SDK Matter fornisca un'API basata su Task
per avviare la messa in servizio Matter con parametri diversi, osservare il risultato e, facoltativamente, aggiungere credenziali, in alcune situazioni è necessario un punto di contatto costituito solo da un codice QR. Ad esempio, da un'applicazione della fotocamera generica che vuole fornire una scorciatoia per avviare la messa in servizio quando viene visualizzato un codice QR nel mirino.
Prima di continuare, assicurati che tutti i prerequisiti siano soddisfatti.
Codici QR Matter
I codici QR Matter hanno la forma generale
MT:Y3.13OTB00KA0648G00
, dove il prefisso MT:
è una costante e il suffisso
è una stringa codificata in base 38 che utilizza l'alfabeto [A-Z0-9.-]
. Il suffisso deve essere sempre composto da almeno 19 caratteri, ma può essere anche più lungo.
Per determinare se un codice QR rappresenta un codice QR Matter, puoi utilizzare la seguente regex in Java:
fun isMatterQrCode(value: String): Boolean {
return value.matches(Regex("""MT:[A-Z0-9.-]{19,}"""))
}
Ad esempio, il seguente codice QR rappresenta MT:Y3.13OTB00KA0648G00
:
Formato intent
Questo formato di codice QR può essere utilizzato come URI per avviare il flusso di messa in servizio inviando un Intent
con ACTION_VIEW
, l'URI specificato nel data
e il pacchetto di destinazione impostato su 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 di esempio
Questa app di esempio mostra come avviare la messa in servizio di un dispositivo Matter quando nel mirino della fotocamera viene visualizzato un codice QR conforme a Matter.
Scarica l'app di esempio per la messa in servizio basata sugli intent
Il codice di questa app di esempio sfrutta le seguenti librerie Android:
I seguenti documenti sono utili anche per comprendere il codice scritto per questa app di esempio:
Utilizzo
Quando l'app si avvia, sullo schermo viene visualizzata l'anteprima della fotocamera. Quando viene rilevato un codice QR per un dispositivo Matter, viene visualizzata una finestra di dialogo per confermare se deve essere eseguita la messa in servizio del dispositivo Matter:
Se la messa in servizio viene confermata, viene lanciato il "Selettore di app" supportato dall'SDK mobile Google Home.
Inizialmente, il selettore di app mostra un insieme di applicazioni di messa in servizio predefinite (ad esempio l'app Google Home, come mostrato nel primo screenshot). Se si tocca "Scegli un'altra app", vengono mostrate altre applicazioni che supportano il flusso di messa in servizio dell'SDK mobile di Google Home (vedi il secondo screenshot).
L'applicazione selezionata viene quindi avviata per eseguire la messa in servizio del dispositivo.