以情境為基礎的佣金原則

Matter SDK 提供以 Task 為基礎的 API,透過不同參數啟動 Matter 佣金、觀察結果並新增憑證,但有時只需要一個 QR 圖碼的進入點即可。舉例來說,假設某款一般相機應用程式希望在觀景窗中看到 QR 程式碼時開始提供佣金。

在繼續操作之前,請先確定已符合所有先決條件

Matter QR 圖碼

Matter QR 代碼採用 MT:Y3.13OTB00KA0648G00 的一般形式,其中 MT: 前置字串是常數,後置字串則是使用字母 [A-Z0-9.-] 的基礎 38 編碼字串。字尾必須至少為 19 個字元,但也可能更長。

只要在 Java 中使用下列規則運算式,就能判斷 QR 圖碼是否代表 Matter QR 圖碼:

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

例如,以下 QR 圖碼代表 MT:Y3.13OTB00KA0648G00

Matter 程式碼範例

意圖格式

這個 QR 圖碼可用於使用以下方法傳送 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 圖碼時啟動 Matter 裝置。

下載意圖意圖佣金範例應用程式

這個範例應用程式的程式碼使用下列 Android 程式庫:

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

用量

應用程式啟動後,螢幕上會顯示相機預覽畫面。偵測到 Matter 裝置的 QR 圖碼時,將會顯示一個對話方塊,確認是否應執行該 Matter 裝置的承諾:

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

一旦經過確認,系統就會啟動 Google Home Mobile SDK 支援的「應用程式選擇器」。

應用程式挑選工具一開始會顯示一組預設佣金應用程式,例如第一個螢幕截圖中顯示的 Google Home 應用程式。只要輕觸 [選擇其他應用程式],系統就會顯示支援 Google Home Mobile SDK 委任流程的其他應用程式 (請參閱第二張螢幕截圖)。

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

所選應用程式接著會啟動,以便執行裝置。