虽然 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 来启动调试流程,方法是发送 Intent
(包含 ACTION_VIEW
)、在 data
中指定的 URI 以及设置为 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 要求的二维码时如何开始调试 Matter 设备。
此示例应用中的代码利用了以下 Android 库:
以下文档也有助于理解为此示例应用编写的代码:
用法
应用启动时,屏幕上会显示相机预览。检测到 Matter 设备的二维码时,系统会显示一个对话框,确认是否应对该 Matter 设备执行调试:
如果确认调试,则会启动 Google Home Mobile SDK 支持的“应用选择器”。
应用选择器最初会显示一组默认调试应用(例如,第一个屏幕截图中所示的 Google Home 应用)。如果用户点按“选择其他应用”,系统会显示支持 Google Home Mobile SDK 调试流程的其他应用(请参阅第二个屏幕截图)。
然后,系统会启动所选应用,以执行设备调试。