而 Matter SDK 提供了一个基于 Task
的 API 来开始进行 Matter 调试
并观察结果,并选择性地添加
凭据,但在有些情况下,只有二维码的入口点
所需的资源。例如,如果一个通用的相机应用想要
提供在
取景器
在继续学习之前, 已满足前提条件。
Matter 二维码
Matter 二维码采用通用形式
MT:Y3.13OTB00KA0648G00
,其中 MT:
前缀是一个常量,其后缀是
是一个使用字母 [A-Z0-9.-]
的 base 38 编码字符串。后缀必须
始终至少为 19 个字符,但也可以更长。
可以通过 Java 中的以下正则表达式:
fun isMatterQrCode(value: String): Boolean { return value.matches(Regex("""MT:[A-Z0-9.-]{19,}""")) }
例如,以下二维码代表 MT:Y3.13OTB00KA0648G00
:
intent 格式
此二维码格式可用作 URI 来启动调试流程,
发送带有 ACTION_VIEW
的 Intent
、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 调试流程的其他应用(参见第二张屏幕截图)。
然后,系统会启动所选应用以对设备进行调试。