適用於 Matter 的意圖式調校

雖然 Matter SDK 提供以 Task 為基礎的 API,可透過各種參數啟動 Matter 調試、觀察結果,以及視需要新增憑證,但在某些情況下,您可能只需要 QR code 做為進入點。例如,從一般相機應用程式提供捷徑,在觀景窗中看到 QR code 時啟動調試作業。

繼續操作前,請確認已符合所有必要條件

Matter QR code

Matter QR code 採用 MT:Y3.13OTB00KA0648G00 的一般格式,其中 MT: 前置字串是常數,而後置字串則是使用字母 [A-Z0-9.-] 的 38 進位編碼字串。後置字串的長度必須至少為 19 個字元,但也可以更長。

如要判斷 QR code 是否代表 Matter QR code,可以使用 Java 中的以下規則運算式:

fun isMatterQrCode(value: String): Boolean {
 
return value.matches(Regex("""MT:[A-Z0-9.-]{19,}"""))
}

舉例來說,以下 QR code 代表 MT:Y3.13OTB00KA0648G00

Matter QR code 範例

意圖格式

您可以使用這個 QR code 格式做為 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 規範的 QR code 時,開始委派 Matter 裝置。

下載意圖為基礎的調試範例應用程式

這個範例應用程式中的程式碼會運用下列 Android 程式庫:

下列文件也能協助您瞭解為這個範例應用程式編寫的程式碼:

用量

應用程式啟動時,螢幕上會顯示相機預覽畫面。偵測到 Matter 裝置的 QR code 時,系統會顯示對話方塊,確認是否要為該 Matter 裝置執行調試:

相機預覽 1 相機預覽畫面 2

如果確認已完成委派作業,系統就會啟動 Google Home Mobile SDK 支援的「App Picker」。

應用程式挑選工具一開始會顯示一組預設的委派應用程式 (例如第一張螢幕截圖所示的 Google Home 應用程式)。如果輕觸「選擇其他應用程式」,系統會顯示支援 Google Home Mobile SDK 委派流程的其他應用程式 (請參閱第二張螢幕截圖)。

選擇應用程式 - GHA 選擇應用程式 - 其他應用程式

系統會啟動所選應用程式,執行裝置的調試作業。