Messa in servizio basata sull'intent per Matter

L'SDK Matter fornisce un'API basata su Task per avviare la messa in servizio di Matter. con parametri variabili, osservando il risultato e, facoltativamente, aggiungere credenziali, in alcuni casi è necessario specificare un punto di accesso necessaria. Ad esempio, da un'applicazione di fotocamera generalizzata che vuole offrono una scorciatoia per avviare la messa in servizio quando viene visualizzato un codice QR mirino.

Prima di continuare, assicurati che Sono stati soddisfatti i prerequisiti.

Codici QR di Matter

I codici QR di Matter assumono la forma generica 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 deve essere sempre di almeno 19 caratteri, ma può essere anche più lungo.

Per determinare se un codice QR rappresenta un codice QR Matter, utilizza la seguente espressione regolare 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:

Esempio di codice QR Matter

Formato dell'intento

Questo formato di codice QR può essere utilizzato come URI per avviare il flusso di messa in servizio inviando Intent con ACTION_VIEW, l'URI specificato in data e 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 iniziare a mettere in servizio un dispositivo Matter quando Il codice QR compatibile con Matter è visibile nel mirino della fotocamera.

Scarica l'app di esempio per la messa in servizio basata sull'intent

Il codice in questa app di esempio utilizza le seguenti librerie Android:

Anche i seguenti documenti sono utili per comprendere il codice scritto a tal fine app di esempio:

Utilizzo

All'avvio dell'app, sullo schermo viene visualizzata l'anteprima della fotocamera. Quando un codice QR di un dispositivo Matter, viene mostrata una finestra di dialogo per confermare se per il dispositivo Matter, procedi nel seguente modo:

anteprima della fotocamera 1 anteprima della fotocamera 2

Se la messa in servizio viene confermata, viene visualizzato il "Selettore app". supportata dal Lancio dell'SDK Google Home per dispositivi mobili.

Il selettore di app mostra inizialmente una serie di applicazioni di messa in servizio predefinite (ad esempio, l'app Google Home come mostrato nel primo screenshot). Se tocchi "Scegli un'altra app", vengono visualizzate altre applicazioni che supportano il flusso di messa in servizio dell'SDK Google Home per dispositivi mobili (vedi il secondo screenshot).

Scegli un'app - GHA Scegli un'app - Altre app

L'applicazione selezionata viene quindi avviata per eseguire la messa in servizio del dispositivo.