راه اندازی موضوع مبتنی بر هدف

در حالی که Matter SDK یک API مبتنی بر Task را برای شروع راه اندازی Matter با پارامترهای مختلف، مشاهده نتیجه و به صورت اختیاری اضافه کردن اعتبار ارائه می کند، شرایطی وجود دارد که یک نقطه ورودی فقط یک کد QR مورد نیاز است. به عنوان مثال، از یک برنامه دوربین تعمیم‌یافته که می‌خواهد وقتی یک کد QR در منظره یاب دیده می‌شود، میانبری برای شروع راه‌اندازی ارائه کند.

قبل از ادامه، مطمئن شوید که تمام پیش نیازها برآورده شده است.

کدهای QR را در نظر بگیرید

کدهای QR ماده شکل کلی MT:Y3.13OTB00KA0648G00 را دارند که در آن پیشوند MT: یک ثابت است و پسوند یک رشته رمزگذاری شده پایه 38 با استفاده از الفبای [A-Z0-9.-] است. پسوند همیشه باید حداقل 19 کاراکتر باشد، اما ممکن است طولانی تر نیز باشد.

تعیین اینکه آیا یک کد QR یک کد QR مهم را نشان می دهد یا خیر، می تواند با regex زیر در جاوا انجام شود:

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

به عنوان مثال، کد QR زیر نشان دهنده MT:Y3.13OTB00KA0648G00 است:

مثال کد QR مهم

فرمت قصد

این قالب کد QR ممکن است به‌عنوان یک URI برای شروع جریان راه‌اندازی با ارسال یک Intent با ACTION_VIEW ، URI مشخص‌شده در data ، و بسته هدف تنظیم‌شده روی خدمات 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 در منظره یاب دوربین مشاهده می شود، نشان می دهد.

برنامه نمونه راه اندازی مبتنی بر هدف را دانلود کنید

کد موجود در این برنامه نمونه از کتابخانه های اندروید زیر استفاده می کند:

اسناد زیر نیز برای درک کد نوشته شده برای این برنامه نمونه مفید هستند:

استفاده

با شروع برنامه، پیش نمایش دوربین روی صفحه نمایش داده می شود. هنگامی که یک کد QR برای یک دستگاه Matter شناسایی می شود، یک گفتگو برای تأیید اینکه آیا راه اندازی برای آن دستگاه Matter باید انجام شود نشان داده می شود:

پیش نمایش دوربین 1پیش نمایش دوربین 2

اگر راه‌اندازی تأیید شد، «انتخاب برنامه» که توسط Google Home Mobile SDK پشتیبانی می‌شود راه‌اندازی می‌شود.

App Picker در ابتدا مجموعه‌ای از برنامه‌های راه‌اندازی پیش‌فرض را نشان می‌دهد (به عنوان مثال، برنامه Google Home همانطور که در تصویر اول نشان داده شده است). اگر روی «انتخاب برنامه دیگر» ضربه بزنید، برنامه‌های دیگری که از جریان راه‌اندازی Google Home Mobile SDK پشتیبانی می‌کنند نشان داده می‌شوند (عکس صفحه دوم را ببینید).

یک برنامه را انتخاب کنید - GHAیک برنامه را انتخاب کنید - برنامه های دیگر

سپس برنامه انتخاب شده برای اجرای راه اندازی دستگاه راه اندازی می شود.