법적 사안의 인텐트 기반 커미셔닝

Matter SDK는 Task 기반 API를 제공하여 다양한 매개변수를 사용하여 Matter 입찰을 시작하고 결과를 관찰하며 선택적으로 사용자 인증 정보를 추가합니다. 하지만 QR 코드만의 진입점이 필요한 경우도 있습니다. 예를 들어 뷰파인더에 QR 코드가 표시될 때 작동을 시작하는 바로가기를 제공하고자 하는 일반화된 카메라 애플리케이션의 경우

계속하기 전에 모든 기본 요건이 충족되었는지 확인합니다.

Matter QR 코드

Matter QR 코드는 MT:Y3.13OTB00KA0648G00의 일반 형태를 취하며, 여기서 MT: 접두사는 상수이고 접미사는 알파벳 [A-Z0-9.-]를 사용하는 기본 38 인코딩 문자열입니다. 서픽스는 항상 19자(영문 기준) 이상이어야 하지만 더 길 수도 있습니다.

자바에서 다음 정규식을 사용하여 QR 코드가 Matter QR 코드를 나타내는지 확인할 수 있습니다.

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

예를 들어 다음 QR 코드는 MT:Y3.13OTB00KA0648G00를 나타냅니다.

Matter QR 코드 예시

인텐트 형식

이 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 모바일 SDK에서 지원하는 '앱 선택 도구'가 실행됩니다.

앱 선택 도구는 처음에 기본 수수료 애플리케이션 집합을 표시합니다 (예: 첫 번째 스크린샷에 표시된 Google Home 앱). '다른 앱 선택'을 탭하면 Google Home Mobile SDK 위임 절차를 지원하는 다른 애플리케이션이 표시됩니다 (두 번째 스크린샷 참고).

앱 선택 - GHA 앱 선택 - 기타 앱

그러면 선택한 애플리케이션이 실행되어 기기의 의뢰가 이루어집니다.