虽然 Matter SDK 提供了基于 Task
的 API,可用于使用不同的参数启动 Matter 配置、观察结果,以及根据需要添加凭据,但在某些情况下,只需使用二维码作为入口点即可。例如,从希望在取景器中看到二维码时提供用于启动调试的快捷方式的通用相机应用。
在继续操作之前,请确保已满足所有前提条件。
Matter 二维码
Matter 二维码采用 MT:Y3.13OTB00KA0648G00
的一般形式,其中 MT:
前缀是常量,后缀是使用字母 [A-Z0-9.-]
的基于 38 的编码字符串。后缀始终必须至少包含 19 个字符,但也可以更长。
您可以使用 Java 中的以下正则表达式确定二维码是否表示 Matter 二维码:
fun isMatterQrCode(value: String): Boolean {
return value.matches(Regex("""MT:[A-Z0-9.-]{19,}"""))
}
例如,以下二维码表示 MT:Y3.13OTB00KA0648G00
:
intent 格式
此二维码格式可用作 URI,通过发送包含 ACTION_VIEW
、data
中指定的 URI 和目标软件包(设为 Google Play 服务)的 Intent
来启动配置流程:
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 标准的二维码时,如何开始调试 Matter 设备。
此示例应用中的代码利用了以下 Android 库:
以下文档对于了解为此示例应用编写的代码也很有用:
用法
应用启动后,屏幕上会显示相机预览。检测到 Matter 设备的二维码后,系统会显示一个对话框,用于确认是否应为该 Matter 设备执行调试:
如果确认已委托,系统会启动 Google Home 移动 SDK 支持的“应用选择器”。
应用选择器最初会显示一组默认的配置应用(例如,第一个屏幕截图中显示的 Google Home 应用)。如果用户点按“选择其他应用”,系统会显示支持 Google Home 移动 SDK 配置流程的其他应用(请参阅第二张屏幕截图)。
然后,系统会启动所选应用以执行设备调试。