কমিশনিং API

কমিশনিং API একটি অ্যাপকে যেকোনো একটিতে কমিশন করার অনুমতি দেয়:

  • আপনার ফ্যাব্রিক এবং Google ফ্যাব্রিক।
  • শুধুমাত্র গুগল ফ্যাব্রিক.

ম্যাটার কমিশনিংয়ের জন্য সমর্থন নির্দেশ করুন

আপনি কমিশনের জন্য Google Home Mobile SDK ব্যবহার করলে, আপনাকে অবশ্যই Google Home Developer Consoleঅ্যাপ প্যাকেজের নাম যোগ করতে হবে, আমাদের Matter এপিআই প্রয়োগ করতে হবে এবং নির্দেশ করতে হবে যে আপনার অ্যাপ ACTION_COMMISSION_DEVICE উদ্দেশ্য পরিচালনা করে Matter কমিশনিং সমর্থন করে।

আপনার AndroidManifest.xml ফাইলের মধ্যে application ঘোষণায় নিম্নলিখিত intent-filter যোগ করুন:

<intent-filter>
    <action android:name="com.google.android.gms.metadata.MODULE_DEPENDENCIES" />
</intent-filter>

রেফারেন্সের জন্য আমাদের নমুনা অ্যাপের ম্যানিফেস্ট দেখুন।

ম্যাটার ডিভাইস কমিশন করার উপায়

কমিশনিং প্রক্রিয়া শুরু করা যেতে পারে:

আপনার অ্যাপে সরাসরি কমিশন করার অনুরোধ করুন

অ্যাপে সরাসরি কমিশনিংয়ের অনুরোধ অ্যাপের একটি বোতাম দ্বারা ট্রিগার করা যেতে পারে এবং এটি দুটি উপায়ে করা যেতে পারে:

একক কাপড় জন্য

কমিশনের অনুরোধ করতে:

  1. আপনার কার্যকলাপে একটি ActivityResultLauncher শুরু করুন। ব্যবহারকারী যদি Google ফ্যাব্রিকে ডিভাইসটি কমিশন করে থাকেন, তাহলে ফলাফলে ব্যবহারকারীর ডিভাইসটি কমিশন করার সময় নির্ধারিত নাম অন্তর্ভুক্ত হতে পারে।

    private val commissioningLauncher =
      registerForActivityResult(StartIntentSenderForResult()) { result ->
        val resultCode = result.resultCode
        if (resultCode == RESULT_OK) {
            Log.i("CommissioningActivity", "Commissioning success")
      val deviceName =
              CommissioningResult.fromIntentSenderResult(result.resultCode, result.data).deviceName
          } else {
              Log.i("CommissioningActivity", "Commissioning failed")
          }
        }
    
  2. প্রাপ্ত পেলোড ডেটা সহ একটি CommissioningRequest তৈরি করুন এবং setStoreToGoogleFabric ব্যবহার করে Google ফ্যাব্রিকে ডিভাইসটি কমিশন করার বিকল্প সেট করুন:

    val commissioningRequest = CommissioningRequest.builder()
            .setOnboardingPayload(payload)
            .setStoreToGoogleFabric(true)
      // set all other options that you care about
            .build()
    

    আপনি যদি ডিভাইসটিকে Google ফ্যাব্রিকের পাশাপাশি আপনার নিজস্ব ফ্যাব্রিকে কমিশন করতে চান, তাহলে CommissioningRequest রিকোয়েস্টে setCommissioningService এর সাথে আপনার কমিশনিং পরিষেবা সেট করুন।

  3. কমিশনিং শুরু করতে CommissioningClient উদাহরণ ব্যবহার করুন:

    commissioningClient
      .commissionDevice(commissioningRequest)
      .addOnSuccessListener { result ->
        Log.i("CommissioningActivity", "Commissioning success")
    _commissioningIntentSender.postValue(result)
          }
          .addOnFailureListener { error ->
            Log.i("CommissioningActivity", "Commissioning failed")
      }
    

    যেখানে _commissioningIntentSender কে সংজ্ঞায়িত করা হয়েছে:

    private val _commissioningIntentSender = MutableLiveData<IntentSender?>()
        val commissioningIntentSender: LiveData<IntentSender?>
        get() = _commissioningIntentSender
    
  4. CommissioningClient অভিপ্রায় প্রেরককে ফেরত দিলে, প্রেরককে চালু করুন:

    commissioningIntentSender.observe(this) { sender ->
      if (sender != null) {
        commissioningLauncher.launch(IntentSenderRequest.Builder(sender).build())
      }
    }
    

একাধিক কাপড়ের জন্য (মাল্টি অ্যাডমিন)

আপনি যদি একটি ডিভাইসে একাধিক Matter ফ্যাব্রিক সেট আপ করতে চান, তাহলে মাল্টি-অ্যাডমিন মোডে কমিশনিং APIs কীভাবে ব্যবহার করবেন তা পড়ুন।

ফাস্ট পেয়ার বা QR-কোড স্ক্যানিংয়ের জন্য ম্যাটার কমিশনিং এন্ট্রি পয়েন্ট (শুধুমাত্র অ্যান্ড্রয়েড)

অ্যান্ড্রয়েডে ফাস্ট পেয়ার বা QR কোডের মাধ্যমে কমিশনিংয়ের অনুরোধ দুটি উপায়ে করা যেতে পারে:

একক কাপড় জন্য

GHA প্রয়োজন ছাড়াই একটি অ্যাপের জন্য সম্পূর্ণ কমিশনিং ক্ষমতা প্রদান করতে ACTION_START_COMMISSIONING অভিপ্রায় ফিল্টার ব্যবহার করুন৷ Google ফ্যাব্রিকে কমিশন করার সময়, এতে ব্যবহারকারীকে ডিভাইসে একটি নাম বরাদ্দ করার অনুমতি দেওয়া অন্তর্ভুক্ত।

ACTION_START_COMMISSIONING ব্যবহার করে কমিশনিং ফ্লো
চিত্র 1 : ACTION_START_COMMISSIONING ব্যবহার করে কমিশনিং ফ্লো

Google ফ্যাব্রিক কমিশনিংয়ের জন্য সমর্থন নির্দেশ করতে, আপনার AndroidManifest.xml ফাইলের মধ্যে নির্বাচিত কার্যকলাপ ঘোষণায় নিম্নলিখিত intent-filter যোগ করুন:

<intent-filter>
  <action android:name="com.google.android.gms.home.matter.ACTION_START_COMMISSIONING" />
  <category android:name="android.intent.category.DEFAULT" />
 </intent-filter>

intent-filter কমিশনিং APIs অ্যাপ পিকারে প্রস্তাবিত Matter অ্যাপের তালিকায় আপনার অ্যাপকে অন্তর্ভুক্ত করতে ব্যবহার করা হয়। যদি আপনার অ্যাপটি প্রস্তাবিত অ্যাপগুলির মধ্যে একটি না হয় তবে এটি অন্য অ্যাপ বেছে নিন বিকল্পে প্রদর্শিত হবে।

একবার ব্যবহারকারী আপনার অ্যাপটি নির্বাচন করলে, আপনার অ্যাপটি লঞ্চ করা হয় এবং ACTION_START_COMMISSIONING অভিপ্রায়ে নির্বাচিত কার্যকলাপের দিকে পরিচালিত হয়।

একাধিক কাপড়ের জন্য (মাল্টি অ্যাডমিন)

আপনি মাল্টি-অ্যাডমিন পরিস্থিতিতে FastPair ফ্লো ব্যবহার করতে পারেন। আরও তথ্যের জন্য, মাল্টি-অ্যাডমিন মোডে কমিশনিং APIগুলি কীভাবে ব্যবহার করবেন তা পড়ুন।

আগত অভিপ্রায় হ্যান্ডেল

একবার আপনার কার্যকলাপ চালু হলে, এটি বিদ্যমান ACTION_START_COMMISSIONING অভিপ্রায়ের জন্য পরীক্ষা করা উচিত এবং পেলোড পুনরুদ্ধার করা উচিত:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

val payload = if (Matter.ACTION_START_COMMISSIONING.equals(intent.getAction())) {
      intent.getStringExtra(Matter.EXTRA_ONBOARDING_PAYLOAD)
    } else {
      null
    }
CommissioningRequest.builder()
          .setOnboardingPayload(payload)
          .setStoreToGoogleFabric(true)
    // set all other options that you care about
startCommissioning(commissioningRequest)
}

একটি পেলোড মান যা null নয় তা নির্দেশ করে যে ব্যবহারকারী ইতিমধ্যেই ডিভাইসের QR কোডটি স্ক্যান করেছেন বা পেয়ারিং কী প্রবেশ করেছেন৷ একটি null পেলোড মান এর অর্থ এই নয় যে কমিশনিং বাতিল করা উচিত।

কমিশনযোগ্য আবিষ্কারের বিজ্ঞপ্তি দমন করুন

একটি Android হাফশীট বিজ্ঞপ্তির উদাহরণ
চিত্র 1: একটি Android হাফশীট বিজ্ঞপ্তির উদাহরণ

ডিফল্টরূপে, Android Google Play services "হাফশিট" বিজ্ঞপ্তিগুলি ব্যবহার করে যা একটি মোবাইল ডিভাইসের স্ক্রিনের নীচের অর্ধেক কভার করে যাতে ব্যবহারকারীদের একটি সক্রিয় ইঙ্গিত দেয় যে কমিশনযোগ্য Matter ডিভাইসগুলি কাছাকাছি রয়েছে৷

আপনার অ্যাপটি ফোরগ্রাউন্ডে থাকাকালীন বাধাগুলি প্রতিরোধ করতে, আপনি Mobile SDKsuppressHalfSheetNotification() পদ্ধতিতে কল করে এই বিজ্ঞপ্তিগুলি দমন করতে পারেন৷ আরও তথ্যের জন্য API ডকুমেন্টেশন দেখুন।

যদি আপনার অ্যাপটি 15 মিনিটের বেশি সময়ের জন্য অগ্রভাগে থাকে তবে এই API দ্বারা সক্ষম দমনের সময় শেষ হয়ে যায়। একটি টাইমআউটের পরে দমন পুনরায় সক্ষম করতে, আবার suppressHalfSheetNotification() কল করুন, অন্যথায় হাফশীট বিজ্ঞপ্তিগুলি উপস্থিত হতে শুরু করবে।

এই API-এর একটি বাস্তবায়ন Google Home Sample App for Matter পাওয়া যাবে। আরও তথ্যের জন্য HalfSheetSuppressionObserver.kt দেখুন।

আপনার ফ্যাব্রিকে ম্যাটার ডিভাইসগুলি কীভাবে Google-এর সাথে শেয়ার করা উচিত?

Google দৃঢ়ভাবে সুপারিশ করে যে আপনি কমিশনিং API ব্যবহার করুন এমন একটি ডিভাইস শেয়ার করার প্রাথমিক মাধ্যম হিসেবে যা আপনি ইতিমধ্যেই আপনার নিজের ফ্যাব্রিকে Google ফ্যাব্রিকের সাথে সেট আপ করেছেন৷ Share API এর সীমাবদ্ধতা রয়েছে এবং অন্যান্য ব্যবহারের ক্ষেত্রে সংরক্ষিত হওয়া উচিত।

কেন আপনি শেয়ার API এর পরিবর্তে কমিশনিং API ব্যবহার করবেন?

কমিশনিং এপিআই আপনাকে সরাসরি Google ফ্যাব্রিকের সাথে একটি ডিভাইস ভাগ করে নেওয়ার ট্রিগার করতে দেয়, যা কার্যকরী হলে পছন্দের পদ্ধতি। শেয়ার API এর সাথে, শেষ ব্যবহারকারীর জন্য আরও পদক্ষেপের প্রয়োজন। উদাহরণস্বরূপ, শেষ ব্যবহারকারীর অবশ্যই GHA ইনস্টল থাকতে হবে এবং সাফল্য নিশ্চিত করার জন্য তাদের অবশ্যই প্রক্রিয়া চলাকালীন GHA নির্বাচন করতে হবে।

কমিশনিং এপিআই ব্যবহার করতে, আপনার কমিশনিং উইন্ডোটি খুলতে হবে এবং কমিশনিং এপিআই-কে কল করতে হবে, যেমনটি সেকেন্ডারি ম্যাটার কমিশনার হিসাবে কমিশনিং API কীভাবে ব্যবহার করবেন

কখন আপনার শেয়ার API ব্যবহার করা উচিত?

আপনি শেষ-ব্যবহারকারীকে অন্যান্য Matter ইকোসিস্টেমের সাথে সাধারণভাবে একটি ডিভাইস ভাগ করার জন্য একটি যোগ্য অ্যাপ্লিকেশন বাছাই করতে দেওয়ার জন্য শেয়ার API ব্যবহার করতে পারেন।