Ввод в эксплуатацию на основе намерений

В то время как Matter SDK предоставляет API на основе Task для запуска Matter в эксплуатацию с различными параметрами, наблюдения за результатом и, при необходимости, добавления учетных данных, бывают ситуации, когда требуется точка входа только с QR-кодом. Например, из универсального приложения камеры, которое хочет предоставить ярлык для начала ввода в эксплуатацию, когда в видоискателе виден QR-код.

Прежде чем продолжить, убедитесь, что выполнены все предварительные условия .

QR-коды материи

QR-коды Matter имеют общую форму MT:Y3.13OTB00KA0648G00 , где префикс MT: является константой, а суффикс представляет собой строку, закодированную с основанием 38 с использованием алфавита [A-Z0-9.-] . Суффикс всегда должен быть не менее 19 символов, но может быть и длиннее.

Определить, представляет ли QR-код QR-код Matter, можно с помощью следующего регулярного выражения в Java:

fun isMatterQrCode(value: String): Boolean {
  return value.matches(Regex("""MT:[A-Z0-9.-]{19,}"""))
}

Например, следующий QR-код представляет MT:Y3.13OTB00KA0648G00 :

Пример QR-кода Matter

Формат намерения

Этот формат QR-кода можно использовать в качестве URI для запуска процесса ввода в эксплуатацию путем отправки Intent с ACTION_VIEW , URI, указанным в data , и целевым пакетом, установленным для сервисов Google Play:

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
  }
}

Пример приложения

В этом примере приложения показано, как начать ввод устройства Matter в эксплуатацию, когда QR-код, совместимый с Matter, отображается в видоискателе камеры.

Загрузите пример приложения для ввода в эксплуатацию на основе намерений

Код в этом примере приложения использует следующие библиотеки Android:

Следующие документы также полезны для понимания кода, написанного для этого примера приложения:

Применение

Когда приложение запускается, на экране отображается предварительный просмотр камеры. При обнаружении QR-кода для устройства Matter отображается диалоговое окно для подтверждения необходимости выполнения ввода в эксплуатацию этого устройства Matter:

предварительный просмотр камеры 1предварительный просмотр камеры 2

Если ввод в эксплуатацию подтвержден, запускается «Средство выбора приложений», поддерживаемое Google Home Mobile SDK.

Средство выбора приложений изначально показывает набор приложений для ввода в эксплуатацию по умолчанию (например, приложение Google Home, как показано на первом снимке экрана). Если нажать «Выбрать другое приложение», отобразятся другие приложения, поддерживающие процесс ввода в эксплуатацию Google Home Mobile SDK (см. второй снимок экрана).

Выберите приложение - ГСГВыберите приложение - Другие приложения

Затем запускается выбранное приложение для ввода устройства в эксплуатацию.