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