Хотя 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-кода можно использовать в качестве 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 (см. второй снимок экрана).
Затем запускается выбранное приложение для ввода устройства в эксплуатацию.