基于意图的诉讼或调查调试

虽然 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

Matter 二维码示例

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 设备。

下载基于 intent 的调试示例应用

此示例应用中的代码利用了以下 Android 库:

以下文档也有助于理解为此示例应用编写的代码:

用法

应用启动时,屏幕上会显示相机预览。检测到 Matter 设备的二维码时,系统会显示一个对话框,确认是否应对该 Matter 设备执行调试:

相机预览 1 相机预览 2

如果确认调试,则会启动 Google Home Mobile SDK 支持的“应用选择器”。

应用选择器最初会显示一组默认调试应用(例如,第一个屏幕截图中所示的 Google Home 应用)。如果用户点按“选择其他应用”,系统会显示支持 Google Home Mobile SDK 调试流程的其他应用(请参阅第二个屏幕截图)。

选择应用 - GHA 选择应用 - 其他应用

然后,系统会启动所选应用,以执行设备调试。