Matter SDK는 다양한 매개변수로 Matter 커미셔닝을 시작하고, 결과를 관찰하고, 원하는 경우 사용자 인증 정보를 추가하는 Task
기반 API를 제공하지만 QR 코드의 진입점만 필요한 경우가 있습니다. 예를 들어 뷰파인더에 QR 코드가 표시될 때 커미셔닝을 시작하는 바로가기를 제공하려는 일반화된 카메라 애플리케이션에서
계속하기 전에 모든 기본 요건을 충족하는지 확인하세요.
Matter QR 코드
Matter QR 코드는 일반적으로 MT:Y3.13OTB00KA0648G00
형식을 취하며 여기서 MT:
접두사는 상수이고 접미사는 알파벳 [A-Z0-9.-]
를 사용하는 base 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 모바일 SDK에서 지원하는 '앱 선택 도구'가 실행됩니다.
앱 선택 도구에는 처음에 기본 커미셔닝 애플리케이션 세트 (예: 첫 번째 스크린샷에 표시된 Google Home 앱)가 표시됩니다. '다른 앱 선택'을 탭하면 Google Home 모바일 SDK 커미셔닝 흐름을 지원하는 다른 애플리케이션이 표시됩니다 (두 번째 스크린샷 참고).
그런 다음 선택한 애플리케이션이 실행되어 기기의 커미셔닝을 실행합니다.