Sebbene l'SDK Matter fornisca un'API basata su Task
per avviare la commissione Matter con parametri variabili, osservando il risultato e, facoltativamente, aggiungendo credenziali, ci sono casi in cui è necessario un punto di ingresso di un solo codice QR. Ad esempio, da un'applicazione di fotocamera generale che vuole fornire una scorciatoia per avviare la messa in servizio quando viene visualizzato un codice QR nel mirino.
Prima di continuare, assicurati che siano stati soddisfatti tutti i prerequisiti.
Codici QR di Matter
I codici QR di Matter hanno il formato generico
MT:Y3.13OTB00KA0648G00
, dove il prefisso MT:
è una costante, mentre il suffisso
è una stringa di base con codifica 38 che utilizza l'alfabeto [A-Z0-9.-]
. Il suffisso deve essere sempre di almeno 19 caratteri, ma potrebbe essere più lungo.
Determinare se un codice QR rappresenta un codice Matter può essere eseguito con 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 commissione inviando un Intent
con ACTION_VIEW
, l'URI specificato in data
e il pacchetto target 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 viene rilevato un codice QR compatibile con Matter nel mirino della fotocamera.
Scarica l'app di esempio Commissioni basata sull'intent
Il codice in questa app di esempio utilizza 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, l'anteprima della fotocamera viene mostrata sullo schermo. Quando viene rilevato un codice QR per un dispositivo Matter, viene mostrata una finestra di dialogo per confermare se la commissione per quel dispositivo Matter deve essere eseguita:
Se la commissione viene confermata, viene avviato il "Selettore app" supportato dall'SDK Google Home Mobile.
Inizialmente il selettore di app mostra un insieme di applicazioni di commissione predefinite (ad es. l'app Google Home, come mostrato nel primo screenshot). Se una tocca "Scegli un'altra app", vengono visualizzate altre applicazioni che supportano il flusso di commissione dell'SDK Google Home Mobile (vedi il secondo screenshot).
Viene avviata l'applicazione selezionata per eseguire la messa in servizio del dispositivo.