Matter SDK には、さまざまなパラメータを使用して Matter のコミッションを開始、結果のモニタリング、必要に応じて認証情報の追加を行うための Task
ベースの API が用意されていますが、QR コードのみのエントリ ポイントが必要になる場合があります。たとえば、ビューファインダーで QR コードが確認されたときに、コミッションを開始するためのショートカットを提供したい一般化されたカメラアプリなどが該当します。
続行する前に、すべての前提条件を満たしていることを確認してください。
Matter の QR コード
Matter QR コードは MT:Y3.13OTB00KA0648G00
の一般的な形式をとります。ここで MT:
接頭辞は定数、接尾辞はアルファベット [A-Z0-9.-]
を使用して基本の 38 エンコード文字列です。接尾辞は常に 19 文字以上にする必要がありますが、これより長くてもかまいません。
Matter QR コードが QR コードを示しているかどうかを確認するには、Java の次の正規表現を使用します。
fun isMatterQrCode(value: String): Boolean { return value.matches(Regex("""MT:[A-Z0-9.-]{19,}""")) }
たとえば、次の QR コードは MT:Y3.13OTB00KA0648G00
を表します。
インテントの形式
この QR コード形式を 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 準拠の QR コードが表示されたら、Matter デバイスのコミッションを開始する方法を示します。
インテント ベースのコミッション サンプルアプリをダウンロードする
このサンプルアプリのコードでは、次の Android ライブラリを利用します。
次のドキュメントは、このサンプルアプリ用に作成されたコードを理解するためにも役立ちます。
使用方法
アプリが起動すると、カメラ プレビューが画面に表示されます。Matter デバイスの QR コードが検出されると、その Matter デバイスのコミッションを実行するかどうかを尋ねるダイアログが表示されます。
コミッションが確認されると、Google Home Mobile SDK でサポートされている「App Picker」が起動します。
App Picker には、デフォルトでデフォルトのコミッション アプリケーションのセットが表示されます(たとえば、最初のスクリーンショットに示されている Google Home アプリ)。[他のアプリを選択] をタップすると、Google Home Mobile SDK のコミッション フローをサポートするその他のアプリが表示されます(2 つ目のスクリーンショットを参照)。
その後、選択したアプリケーションが起動され、デバイスの試稼働が実行されます。