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
:
意圖格式
這個 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 裝置的承諾:
一旦經過確認,系統就會啟動 Google Home Mobile SDK 支援的「應用程式選擇器」。
應用程式挑選工具一開始會顯示一組預設佣金應用程式,例如第一個螢幕截圖中顯示的 Google Home 應用程式。只要輕觸 [選擇其他應用程式],系統就會顯示支援 Google Home Mobile SDK 委任流程的其他應用程式 (請參閱第二張螢幕截圖)。
所選應用程式接著會啟動,以便執行裝置。