Matter SDK には、さまざまなパラメータで Matter の設置を開始し、結果をモニタリングし、必要に応じて認証情報を追加するための Task
ベースの API が用意されていますが、QR コードのみのエントリ ポイントが必要な場合があります。たとえば、ビューファインダーに QR コードが表示されたときに、構成を開始するためのショートカットを提供する一般的なカメラ アプリケーションから。
続行する前に、すべての前提条件が満たされていることを確認してください。
Matter の QR コード
Matter QR コードの一般的な形式は MT:Y3.13OTB00KA0648G00
です。ここで、MT:
接頭辞は定数で、接尾辞はアルファベット [A-Z0-9.-]
を使用したベース 38 エンコード文字列です。接尾辞は常に 19 文字以上である必要がありますが、それ以上でもかまいません。
QR コードが Matter QR コードを表すかどうかを判断するには、Java で次の正規表現を使用します。
fun isMatterQrCode(value: String): Boolean {
return value.matches(Regex("""MT:[A-Z0-9.-]{19,}"""))
}
たとえば、次の QR コードは MT:Y3.13OTB00KA0648G00
を表します。
インテント フォーマット
この QR コード形式は、ACTION_VIEW
、data
で指定された URI、Google Play 開発者サービスに設定されたターゲット パッケージを含む Intent
を送信することで、構成フローを開始する URI として使用できます。
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 の設定フローをサポートする他のアプリが表示されます(2 番目のスクリーンショットをご覧ください)。
選択したアプリケーションが起動され、デバイスのコミッショニングが実行されます。