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

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

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

QR-коды Matter

QR-коды Matter имеют общую форму MT:Y3.13OTB00KA0648G00 , где префикс MT: является константой, а суффикс представляет собой строку в кодировке Base 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 (см. второй снимок экрана).

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

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